摘要 學生選課管理是學校教務管理工作的重要組成部分,學生選課管理的信息化是現代學校人力資源開發和管理的主要手段。本文在介紹ASP.NET技術的基礎上,設計和實現了基于ASP.NET三層體系結構的網上選課系統。
關鍵字 ASP.NET;選課系統;三層體系結構;選課管理
中圖分類號: TP302 文獻標識碼:A文章編號:1671-489X(2006)12-0060-03
隨著校園數字化建設的發展,學生選課管理已由手工處理方式轉換為計算機管理方式,學生選課管理的信息化成為學校人力資源開發和管理的主要手段。傳統的網上選課管理系統大部分采用ASP,PHP,JSP,VBScript,JavaScript等編程技術,用這些編程技術開發的網上選課系統均在不同程度上存在著程序復用程度低、重復勞動大、瀏覽速度慢、系統安全性差等缺陷和不足,嚴重制約了選課系統建設工程的發展。ASP.NET是微軟公司2002年2月正式推出的新一代編程語言,與傳統的網上選課系統開發技術相比,ASP.NET具有許多重要的優點,如簡易性、安全性、可管理性等,能夠大大加快開發效率,從而為網上選課系統的開發提供強有力的技術支持和保障。
1 ASP.NET技術概述
ASP NET又叫ASP+,但不僅僅是ASP的簡單升級,而是微軟公司最新推出的基于通用語言的編程框架,可以在服務器端架構強大的網絡程序,是新一代編制企業級網絡的平臺。其核心技術是通用語言運行時( Common Language Runtime),利用它可以在服務器后端為用戶建立強大的企業級Web應用服務的編程框架。ASP. NET的推出,為建立動態、穩定、性能強大且易于升級和維護的網絡應用程序奠定了良好的技術基礎。
作為新一代企業級網絡平臺,ASP.NET具有很多優點:ASP.NET程序中頁面顯示部分和控制邏輯可以被分別存儲在.asp文件和.cs文件中,從而實現了頁面顯示部分與控制邏輯的分離,大大提高了應用程序的可維護性;由于ASP.NET代碼是預先編譯過的,腳本代碼運行于服務器端,因而執行效率和性能幅度得到提高;可以支持C#、C++、VB.Net等多種語言,提高了程序的通用性;提供了豐富的基類函數庫,提高了程序開發效率;ASP.Net提供多種認證授權的安全控制,使開發人員更容易管理站點資源。

2 網上選課系統的設計
2.1網上選課系統的模塊設計
網上選課系統按功能劃分可以分為4個模塊:學生選課模塊、教師開課模塊、管理員模塊和通用功能模塊,如圖1所示。
每個模塊負責相對獨立的功能。學生選課模塊實現學生選課、查看已選課程信息列表、查看用戶信息等功能;教師開課模塊實現教師用戶設置授課班級、顯示開設班級、顯示教師信息和確認刪除課程等功能;管理員模塊中的管理員擁有最高權限,可以為教師和學生分配賬號、創建課程和指定任課教師、為課程班級設定最大人數和選課結束時間、對學生選課信息進行統計等功能;通用功能模塊包括用戶注銷和用戶修改密碼的操作,實現模塊的公共事務處理功能。
2.2網上選課系統的體系結構設計
由于網上選課系統的網絡用戶較多,為了提高系統的安全性和訪問效率,整個系統采用三層式體系結構進行開發,即表示層、業務邏輯層和數據層。利用ASP.NET可以快速方便地部署三層體系結構,通過在網頁中使用基于事件的處理,可以指定處理的后臺代碼文件。顯示層放在 ASP.NET頁面中,數據庫操作和邏輯層用組件來實現,可以方便的實現三層架構。網上選課系統的三層體系結構如圖2所示。
其中,表示層(客戶端)又叫應用界面層,為用戶提供應用界面,該層一方面向用戶呈現信息和收集用戶信息,另一方面可以對用戶信息進行基本的處理并與業務邏輯層進行交互。在網上選課系統中,該層可以用ASP.NET中Web Form頁面來呈現課程課表信息、選課信息、信息統計結果以及收集用戶輸入的信息,并完成對輸入信息的基本處理和對邏輯層的調用;業務邏輯層(中間層)為客戶端提供程序調用的業務邏輯規則,以完成其業務操作提供服務,如完成對用戶的權限的判定以決定訪問不同信息的功能、提供訪問數據庫層的接口等。這些組件中包括對各個類的定義,如驗證用戶身份功能類、人員管理類、開課管理類、課程管理類等,并且每一個類對應于后臺數據庫中的一個數據表,以實現對相應表操作的業務邏輯功能;數據庫層負責儲存、管理數據,該層通過SQLSERVER數據訪問接口組件來實現對各個類的數據訪問操作,如用戶管理類、課程管理類的操作等。可用一些存儲過程、觸發器保證數據的完整性和一致性。

3 網上選課系統的實現
3.1 解決方案
本系統采用的開發工具是Visual Studio.NET 2003,采用的開發語言是Visual C#,采用的數據庫服務器為SQL SERVER2000。在Visual Studio. NET中,整個工程又對應為一個方案,而三層模型中的每一層都可以對應為一個項目,各個項目都從屬于方案。每個項目都對應各自的命名空間,這樣既可以方便不同項目代碼之間的調用,又可以避免名字沖突。網上選課系統包括四個項目,其中的Web、BussinessLayer和DataLayer項目分別對應設計模型的三個層次,Web項目的項目類型為\"ASP.NET Web Application\",其余兩個項目類型為\"Class Library\",上一個層次要引用下個層次的命名空間,從而達到使用下一層次提供功能的目的。另外還包括一個用于定義層間數據接口的項目Common,其項目類型為\"Class Library\",目的是為了使得各層之間在傳遞數據時具有統一的數據接口。
3.2 用戶控件User Control的實現
ASP.NET中的用戶控件是封裝到可重用控件中的WEB表單,它們用來保存網站中許多頁面所需要的重用代碼塊。網上選課系統中Web項目中共定義了20多個用戶控件,分別用來實現選課系統的人員管理、課程管理、選課班級管理、信息統計管理、學生班級管理等功能。通過用戶控件的動態加載方法,將安全控制集中到主頁面Default.aspx中去處理,從而實現安全定制需要加載的控件。
用戶控件的加載有兩種方式,一種是顯式下載,通過Register指令包含在另一WEB窗體頁中,該指令指定控件的命名空間(TagPrefix)、控件名稱(TagName)和控件資源文件路徑(Src),如在網上選課系統中的公共模版頁Default.aspx頁面的Html頭部添加代碼\"<%@ Register TagPrefix=\"parkControl\" TagName=\"TitleBar\" Src=\"Title/TitleBar.ascx\" %>\"來加載TitleBar控件,從而可以顯示用戶基本登錄信息。另一種加載方式是使用System.Web.UI.Page類的LoadControl方法以編程方式創建用戶控件,以下是實現在Default.aspx中實現動態加載中心視圖的部分代碼,變量ContentControl存放用戶控件在應用程序中的相對路徑。
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平臺的ASP. NET技術具有許多非常優秀的特點,在Web應用程序開發中得到廣泛的應用。本文充分利用了ASP.NET的技術優勢,并結合三層體系結構的應用模型設計開發了網上選課系統。實踐證明,基于ASP.NET三層體系結構的網上選課系統,具有較好的靈活性和安全性,大大提高了開發效率。