zoukankan      html  css  js  c++  java
  • 在线考试系统系统开发文档

    1.  概述

    系统基于.Net 4.0开发,采用C#语言,开发工具为Microsoft Visual Studio 2010;数据库采用了Sqlserver2005。

    整个系统基于B/S架构,采用了传统的三层开发模型,数据层采用了ORM,使用的是Mysoft.Data的组件;业务层与表现层之间用了spring.net的IOC组件;表现层采用了Vtemplate组件进行模型与控制、视图的分离。

    2.  解决方案描述

    在解决方案中,共分为五个项目。如下图

    2.1.    业务层

    BLL解决方案文件夹下,是业务层的两个项目;

    Song.ServiceInterfaces是所有业务层的接口

    Song.ServiceImpls 是业务层(Song.ServiceInterfaces)的接口实现。

    之所以分成两个项目,是为了基于面向接口编程,例如当业务层代码需要变动时,只需要改动实现,不用改动接口。实口与实现类的关系是在Song.Site项目中的web.config中配置的。如下图

     

    上图定义了接口名称,以及其实现类。这里是用了Spring.net的IOC(控制反转)组件。

    2.2.    数据层

    Song.Entities是数据实体。

    数据层的处理采用了ORM方式处理,这里是用了Mysoft.Data开源组件,网上可以找到下载。使用方法如下:

    在Lib解决方案文件夹下,有WeiSha.Data.Generete.exe,双击打开。如下图步骤操作。

     

    生成实体后,在Song.ServiceImpls项目中引用Song.Entities

    在编写时,例如增加一个记录

            /// <summary>

            /// 添加

            /// </summary>

            /// <param name="entity">业务实体</param>

            public void Add(Accessory entity)

            {

                entity.As_CrtTime = DateTime.Now;

                Song.Entities.Organization org = Business.Do<IOrganization>().OrganCurrent();

                if (org != null)

                {

                    entity.Org_ID = org.Org_ID;

                    entity.Org_Name = org.Org_Name;

                }

                Gateway.Default.Save<Accessory>(entity);

            }

    其中关键性语句是 Gateway.Default.Save<Accessory>(entity);

    2.3.    表现层

    Song.Site是表现层,主要是aspx网页,Js,css等文件构成。

    当在表现层调用业务层代码时,采用如下示例代码

    Song.Entities.Subject[] subj = Business.Do<ISubject>().SubjectCount(Organ.Org_ID, true, 0);

    上述代码是调用专业的接品,取当前机构下所有专业。

    Vtemplate组件的使用

    Vtemplate组件实现了模型与视图的分离,可以通过它来实现更换模板风格等操作。

    使用方法是,在Song.Site项目中的.ashx文件继承于Basepage.cs类,Basepage实现了一个模型与视图的匹配控制。例如About.ashx的视图是指向Templates/(当前选中的模板库)/ About.htm

    2.4.    其它项目

    Song.Extend是一些扩展类,其中包括用户登录等。

  • 相关阅读:
    docker
    ibus
    看懂gradle
    tcp
    这丫头也的还真清楚,但是跑不通呢,换3.0.3的mybatis也不行
    lsb_release -a
    js中的整型都是用double存储的,有时候不精确,如,
    浏览器缓存及优化
    web即时通信技术
    css 变量
  • 原文地址:https://www.cnblogs.com/Jeely/p/11349704.html
Copyright © 2011-2022 走看看