在线考试系统系统开发文档

 

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是一些扩展类,其中包括用户登录等。

 

posted @ 2019-08-14 08:44  DarJeely  阅读(1227)  评论(0编辑  收藏  举报