在線考試系統系統開發文檔


 

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是一些擴展類,其中包括用戶登錄等。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM