摘要 學(xué)生選課管理是學(xué)校教務(wù)管理工作的重要組成部分,學(xué)生選課管理的信息化是現(xiàn)代學(xué)校人力資源開發(fā)和管理的主要手段。本文在介紹ASP.NET技術(shù)的基礎(chǔ)上,設(shè)計(jì)和實(shí)現(xiàn)了基于ASP.NET三層體系結(jié)構(gòu)的網(wǎng)上選課系統(tǒng)。
關(guān)鍵字 ASP.NET;選課系統(tǒng);三層體系結(jié)構(gòu);選課管理
中圖分類號(hào): TP302 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-489X(2006)12-0060-03
隨著校園數(shù)字化建設(shè)的發(fā)展,學(xué)生選課管理已由手工處理方式轉(zhuǎn)換為計(jì)算機(jī)管理方式,學(xué)生選課管理的信息化成為學(xué)校人力資源開發(fā)和管理的主要手段。傳統(tǒng)的網(wǎng)上選課管理系統(tǒng)大部分采用ASP,PHP,JSP,VBScript,JavaScript等編程技術(shù),用這些編程技術(shù)開發(fā)的網(wǎng)上選課系統(tǒng)均在不同程度上存在著程序復(fù)用程度低、重復(fù)勞動(dòng)大、瀏覽速度慢、系統(tǒng)安全性差等缺陷和不足,嚴(yán)重制約了選課系統(tǒng)建設(shè)工程的發(fā)展。ASP.NET是微軟公司2002年2月正式推出的新一代編程語言,與傳統(tǒng)的網(wǎng)上選課系統(tǒng)開發(fā)技術(shù)相比,ASP.NET具有許多重要的優(yōu)點(diǎn),如簡(jiǎn)易性、安全性、可管理性等,能夠大大加快開發(fā)效率,從而為網(wǎng)上選課系統(tǒng)的開發(fā)提供強(qiáng)有力的技術(shù)支持和保障。
1 ASP.NET技術(shù)概述
ASP NET又叫ASP+,但不僅僅是ASP的簡(jiǎn)單升級(jí),而是微軟公司最新推出的基于通用語言的編程框架,可以在服務(wù)器端架構(gòu)強(qiáng)大的網(wǎng)絡(luò)程序,是新一代編制企業(yè)級(jí)網(wǎng)絡(luò)的平臺(tái)。其核心技術(shù)是通用語言運(yùn)行時(shí)( Common Language Runtime),利用它可以在服務(wù)器后端為用戶建立強(qiáng)大的企業(yè)級(jí)Web應(yīng)用服務(wù)的編程框架。ASP. NET的推出,為建立動(dòng)態(tài)、穩(wěn)定、性能強(qiáng)大且易于升級(jí)和維護(hù)的網(wǎng)絡(luò)應(yīng)用程序奠定了良好的技術(shù)基礎(chǔ)。
作為新一代企業(yè)級(jí)網(wǎng)絡(luò)平臺(tái),ASP.NET具有很多優(yōu)點(diǎn):ASP.NET程序中頁面顯示部分和控制邏輯可以被分別存儲(chǔ)在.asp文件和.cs文件中,從而實(shí)現(xiàn)了頁面顯示部分與控制邏輯的分離,大大提高了應(yīng)用程序的可維護(hù)性;由于ASP.NET代碼是預(yù)先編譯過的,腳本代碼運(yùn)行于服務(wù)器端,因而執(zhí)行效率和性能幅度得到提高;可以支持C#、C++、VB.Net等多種語言,提高了程序的通用性;提供了豐富的基類函數(shù)庫,提高了程序開發(fā)效率;ASP.Net提供多種認(rèn)證授權(quán)的安全控制,使開發(fā)人員更容易管理站點(diǎn)資源。
2 網(wǎng)上選課系統(tǒng)的設(shè)計(jì)
2.1網(wǎng)上選課系統(tǒng)的模塊設(shè)計(jì)
網(wǎng)上選課系統(tǒng)按功能劃分可以分為4個(gè)模塊:學(xué)生選課模塊、教師開課模塊、管理員模塊和通用功能模塊,如圖1所示。
每個(gè)模塊負(fù)責(zé)相對(duì)獨(dú)立的功能。學(xué)生選課模塊實(shí)現(xiàn)學(xué)生選課、查看已選課程信息列表、查看用戶信息等功能;教師開課模塊實(shí)現(xiàn)教師用戶設(shè)置授課班級(jí)、顯示開設(shè)班級(jí)、顯示教師信息和確認(rèn)刪除課程等功能;管理員模塊中的管理員擁有最高權(quán)限,可以為教師和學(xué)生分配賬號(hào)、創(chuàng)建課程和指定任課教師、為課程班級(jí)設(shè)定最大人數(shù)和選課結(jié)束時(shí)間、對(duì)學(xué)生選課信息進(jìn)行統(tǒng)計(jì)等功能;通用功能模塊包括用戶注銷和用戶修改密碼的操作,實(shí)現(xiàn)模塊的公共事務(wù)處理功能。
2.2網(wǎng)上選課系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)
由于網(wǎng)上選課系統(tǒng)的網(wǎng)絡(luò)用戶較多,為了提高系統(tǒng)的安全性和訪問效率,整個(gè)系統(tǒng)采用三層式體系結(jié)構(gòu)進(jìn)行開發(fā),即表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)層。利用ASP.NET可以快速方便地部署三層體系結(jié)構(gòu),通過在網(wǎng)頁中使用基于事件的處理,可以指定處理的后臺(tái)代碼文件。顯示層放在 ASP.NET頁面中,數(shù)據(jù)庫操作和邏輯層用組件來實(shí)現(xiàn),可以方便的實(shí)現(xiàn)三層架構(gòu)。網(wǎng)上選課系統(tǒng)的三層體系結(jié)構(gòu)如圖2所示。
其中,表示層(客戶端)又叫應(yīng)用界面層,為用戶提供應(yīng)用界面,該層一方面向用戶呈現(xiàn)信息和收集用戶信息,另一方面可以對(duì)用戶信息進(jìn)行基本的處理并與業(yè)務(wù)邏輯層進(jìn)行交互。在網(wǎng)上選課系統(tǒng)中,該層可以用ASP.NET中Web Form頁面來呈現(xiàn)課程課表信息、選課信息、信息統(tǒng)計(jì)結(jié)果以及收集用戶輸入的信息,并完成對(duì)輸入信息的基本處理和對(duì)邏輯層的調(diào)用;業(yè)務(wù)邏輯層(中間層)為客戶端提供程序調(diào)用的業(yè)務(wù)邏輯規(guī)則,以完成其業(yè)務(wù)操作提供服務(wù),如完成對(duì)用戶的權(quán)限的判定以決定訪問不同信息的功能、提供訪問數(shù)據(jù)庫層的接口等。這些組件中包括對(duì)各個(gè)類的定義,如驗(yàn)證用戶身份功能類、人員管理類、開課管理類、課程管理類等,并且每一個(gè)類對(duì)應(yīng)于后臺(tái)數(shù)據(jù)庫中的一個(gè)數(shù)據(jù)表,以實(shí)現(xiàn)對(duì)相應(yīng)表操作的業(yè)務(wù)邏輯功能;數(shù)據(jù)庫層負(fù)責(zé)儲(chǔ)存、管理數(shù)據(jù),該層通過SQLSERVER數(shù)據(jù)訪問接口組件來實(shí)現(xiàn)對(duì)各個(gè)類的數(shù)據(jù)訪問操作,如用戶管理類、課程管理類的操作等??捎靡恍┐鎯?chǔ)過程、觸發(fā)器保證數(shù)據(jù)的完整性和一致性。
3 網(wǎng)上選課系統(tǒng)的實(shí)現(xiàn)
3.1 解決方案
本系統(tǒng)采用的開發(fā)工具是Visual Studio.NET 2003,采用的開發(fā)語言是Visual C#,采用的數(shù)據(jù)庫服務(wù)器為SQL SERVER2000。在Visual Studio. NET中,整個(gè)工程又對(duì)應(yīng)為一個(gè)方案,而三層模型中的每一層都可以對(duì)應(yīng)為一個(gè)項(xiàng)目,各個(gè)項(xiàng)目都從屬于方案。每個(gè)項(xiàng)目都對(duì)應(yīng)各自的命名空間,這樣既可以方便不同項(xiàng)目代碼之間的調(diào)用,又可以避免名字沖突。網(wǎng)上選課系統(tǒng)包括四個(gè)項(xiàng)目,其中的Web、BussinessLayer和DataLayer項(xiàng)目分別對(duì)應(yīng)設(shè)計(jì)模型的三個(gè)層次,Web項(xiàng)目的項(xiàng)目類型為\"ASP.NET Web Application\",其余兩個(gè)項(xiàng)目類型為\"Class Library\",上一個(gè)層次要引用下個(gè)層次的命名空間,從而達(dá)到使用下一層次提供功能的目的。另外還包括一個(gè)用于定義層間數(shù)據(jù)接口的項(xiàng)目Common,其項(xiàng)目類型為\"Class Library\",目的是為了使得各層之間在傳遞數(shù)據(jù)時(shí)具有統(tǒng)一的數(shù)據(jù)接口。
3.2 用戶控件User Control的實(shí)現(xiàn)
ASP.NET中的用戶控件是封裝到可重用控件中的WEB表單,它們用來保存網(wǎng)站中許多頁面所需要的重用代碼塊。網(wǎng)上選課系統(tǒng)中Web項(xiàng)目中共定義了20多個(gè)用戶控件,分別用來實(shí)現(xiàn)選課系統(tǒng)的人員管理、課程管理、選課班級(jí)管理、信息統(tǒng)計(jì)管理、學(xué)生班級(jí)管理等功能。通過用戶控件的動(dòng)態(tài)加載方法,將安全控制集中到主頁面Default.aspx中去處理,從而實(shí)現(xiàn)安全定制需要加載的控件。
用戶控件的加載有兩種方式,一種是顯式下載,通過Register指令包含在另一WEB窗體頁中,該指令指定控件的命名空間(TagPrefix)、控件名稱(TagName)和控件資源文件路徑(Src),如在網(wǎng)上選課系統(tǒng)中的公共模版頁Default.aspx頁面的Html頭部添加代碼\"<%@ Register TagPrefix=\"parkControl\" TagName=\"TitleBar\" Src=\"Title/TitleBar.ascx\" %>\"來加載TitleBar控件,從而可以顯示用戶基本登錄信息。另一種加載方式是使用System.Web.UI.Page類的LoadControl方法以編程方式創(chuàng)建用戶控件,以下是實(shí)現(xiàn)在Default.aspx中實(shí)現(xiàn)動(dòng)態(tài)加載中心視圖的部分代碼,變量ContentControl存放用戶控件在應(yīng)用程序中的相對(duì)路徑。
private void LoadControl()
{
Control control;
try
{
control=Page.LoadControl( ContentControl );
//在單元格加載控件
Content.Controls.Add( control );
if( control is IProcessable)
{
Session[SessionKey.LastContent] = ContentControl;
}
else
Session[SessionKey.LastContent] = 1;
}
catch (Exception)
{//若加載失敗,則加載
ContentControl = @\"Module/error.ascx\";
Content.Controls.Add( Page.LoadControl( ContentControl ) );
Session[SessionKey.LastContent] = 1;
}
}
基于Microsoft. NET平臺(tái)的ASP. NET技術(shù)具有許多非常優(yōu)秀的特點(diǎn),在Web應(yīng)用程序開發(fā)中得到廣泛的應(yīng)用。本文充分利用了ASP.NET的技術(shù)優(yōu)勢(shì),并結(jié)合三層體系結(jié)構(gòu)的應(yīng)用模型設(shè)計(jì)開發(fā)了網(wǎng)上選課系統(tǒng)。實(shí)踐證明,基于ASP.NET三層體系結(jié)構(gòu)的網(wǎng)上選課系統(tǒng),具有較好的靈活性和安全性,大大提高了開發(fā)效率。