黃燕飛
(江蘇聯合職業技術學院無錫機電高等職業技術學校分院 信息工程系,江蘇 無錫 214000)
2003年教育部發布了《教育部關于啟動高等學校教學質量與教學改革工程精品課程建設工作的通知》,全面啟動“高等學校教學質量和教學改革工程”的國家級精品課建設工程。主要目標就是建設1500門精品課程,并將精品課程的教案上網,推進優質教育資源共享。
目前大部分精品課程開發存在一些問題。例如教師缺乏軟件開發知識和經驗,由他們開發難度大;開發人員對專業、學科不了解,往往開發要花大量的時間在需求分析中;系統移植性和擴展性差,每門課程均要制作網頁,這樣造成工作量大、效率低,制作完成的課程質量得不到保證。
在圍繞本校申報國家級精品課程建設的過程中,為了減少各學科組精品課程建設的難度,本人研究了綜合采用面向對象的方法、數據庫技術、ASP.NET技術構建了精品課程網站生成系統,實現了一般會簡單操作Word的教師也能快速制作出符合自己學科特點的精品課程的目標,提高資源共享的效率。在精品課程的建設工作中發揮了良好的作用,得到教師和學校的好評。本文對精品課程網站生成系統的系統需求分析、系統架構設計、系統總體設計以及系統的實現做了詳細的論述,并通過一個應用實例的分析及其實現效果,驗證精品課程網站生成系統的實用性。
本系統能自動生成課程網站,其建設要求原則上與國家精品課程、省級精品課程網站建設要求相同。至少應該滿足以下要求。
1)適用各種精品課程網站建設,能完成《國家精品課程評審指標體系(2007)》中規定的評審欄目創建、欄目內容添加和更新。
2)實現界面美化功能,滿足個性化定制界面要求。通過提供網站界面模板,達到快速變換網站整體視覺效果、頁面布局和網站結構的目的。
3)提供視頻教學功能,系統可實現視頻上傳、刪除和前臺播放等功能。
4)提供教學資料管理功能,管理員和教師可根據課程建設需要,對課程素材進行上傳和管理。
5)實現系統安全管理功能,課程網站對不同的人員設置不同的權限,保證系統的安全。
6)系統具有良好的擴展能力,能滿足今后課程建設需求變化。
7)系統具有良好的性能,保證系統運行的高效率。
8)系統還應有一些交互功能,如在線測試,在線論壇、在線答疑等供學生和老師交流以及自我測試。
通過需求分析得知,精品課程網站欄目應根據國家精品課程評審指標體系進行設置,各欄目的內容要根據每門課程建設的需要進行錄入,并可根據需要進行更新。課程網站還要設置視頻教學、師生互動和成績考核等功能。為了體現精品課程網站的特色,網站應該具有個性化設置功能。整個網站運行不僅要速度快,而且要安全、穩定,具有良好的可管理性和可維護性。為了便于系統開發、測試和維護,將整個系統進行分層和分模塊設計。整個系統分為三層結構體系,三個結構層分別是表示邏輯層、商務邏輯層和數據訪問層。其中商務邏輯層的功能較多,又細分為面向用戶界面和面向問題域兩個子層。三層獨立開發、測試和維護。系統的分層結構如圖1所示。

圖1基于B/S三層架構的精品課程系統的結構圖
2.1.1表示邏輯層[1]
系統針對不同用戶設置了不同的界面,這些用戶界面與用戶的類型和權限有關。系統管理員經認證后,登錄到管理員界面,可以對精品課程網站進行管理,如課程欄目創建、欄目內容添加與更新、站點模板定制、視頻上傳與刪除等;任課教師經認證登錄后,可以對自己的教學資源進行管理,上傳和刪除教學資源;普通用戶只能看到經管理員定制的課程網站界面。
2.1.2業務邏輯層[2]
在三層結構應用系統中,業務邏輯層為中間層,擔負著“承上啟下”作用,在系統中扮演著至關重要的角色。中間層應保證事務的完整性,對大規模并發請求作出及時響應,對異構系統互聯作出透明支持,對應用系統中的數據提供安全保護。它是應用系統成敗的決定性因素。因此,在三層結構企業應用開發系統中,業務邏輯層是保證整個應用系統質量和可靠性的關鍵。本系統業務邏輯層是系統的核心層,系統大部分功能均通過該層實現。
2.1.3數據訪問層
數據訪問層封裝了所有的數據庫操作,能夠完成系統與數據庫交互功能,如數據的查詢、更新、插入和刪除等,其相關功能被封裝成了不同的模塊。
本系統模塊劃分在分層基礎上進行,劃分的原則是:劃分出的各模塊低耦合、高內聚。根據需求分析和系統分層情況,將系統功能模塊劃分為如圖2所示。

圖2 系統總體框圖
1)業務邏輯層是系統的后臺管理部分,也是系統最關鍵的部分。管理員登錄后可以進行用戶管理、課程管理、互動管理、和擴展管理等。其中用戶管理可以添加刪除用戶,修改用戶注冊信息,設置不同用戶的權限。課程管理包括跟該課程有關的課程簡介、教案、多媒體課件、實驗教學、教學錄像等和精品課程內容相關的子模塊的管理,管理員可根據需要添加或刪除這些模塊,也可以象在word中一樣輕松地更新每一個子模塊的內容,方便地設置添加內容的格式。互動管理用于教師進行題庫管理、論壇管理、作業管理、在線答疑管理。擴展管理中可對站點的界面風格設置,可以自由選擇,輕松給精品課程“變臉”,也可以對站點首頁的新聞公告進行更新。
2)表示邏輯層即系統的前臺。學生可以從瀏覽器端查看跟本課程相關的申報材料,課程簡介,教學隊伍,教學大綱,教案,多媒體課件,實驗,教學成果,科學研究等內容,可供學生在線學習。還包括在線答疑、在線論壇、在線作業批改、在線考試等具有交互功能的組件。其中在線作業批改模塊,學生可上傳作業,和下載已經批改好的作業。教師可通過管理模塊查看編輯作業列表,給作業評分,并提交已批改好的作業。在線考試由學生登錄完成在線考試,考試題目在考試進行時從試題庫中隨機抽取。
(3)數據訪問層屬于表示和邏輯層的中間模塊,此模塊考慮代碼的復用性,將常用的數據庫的基本操作和其它常用功能分別封裝,如連接數據庫,數據庫操作,斷開數據庫連接,字符串轉換,加解密保護等。
在本系統后臺管理中,將課程管理中內容像Windows資源管理器那樣將其驅動器和其下的文件及文件夾按照層次結構來安排,實現方法為生成一棵精品課程“目錄分類”樹[3]。
常用的方法是使用Visual Studio .NET中的TreeView Web 控件,它為我們提供了一種按層次結構顯示信息的方式。TreeView控件包含了稱做“節點”(node)的一些條目的一個列表。每一個節點都可以有自己的節點集合,從而提供了一種更深層的數據定義。每個節點都可以被折疊起來,從而允許訪問者在一個TreeView控件中查找,只看他所感興趣的那一級的數據。使用Visual Studio .NET靜態指定TreeView 結構就像填寫幾份表格一樣簡單,但通常需要將內容動態地添加到 TreeView 中。當我們要將數據庫中精品課程內容的數據用樹狀結構表現出來時,并不知道這個樹的層次和節點數,就需要在TreeView控件中動態地添加樹節點。具體原理:用InitTree0() 方法加載根結點,等根結點加載完后,開始調用加載子結點的方法InitTree(TreeNode Nd, String Parent_id),并用遞歸方式最終實現動態樹的生成。代碼如下:
private void InitTree0()
{
TreeView2.Nodes.Clear();
TreeNode T_root = new TreeNode();
T_root.Text = "課程管理系統";
T_root.ImageUrl = "~/Admin/images/ico_jingpin.gif";
T_root.SelectAction = TreeNodeSelectAction.None;
TreeView2.Nodes.Add(T_root);
DataRow[] rows = dt.Select("ParentID=0");
for (int i = 0; i < rows.Length; i++)
{
TreeNode Fst = new TreeNode();
DataRow dr = rows[i];
Fst.Text = dr["Name"].ToString();
Fst.ImageUrl = "~/Admin/images/folder.gif";
Fst.NavigateUrl = "~/Admin/Word.aspx?action=update&id=" + dr["ID"].ToString();
Fst.Target = "main";
T_root.ChildNodes.Add(Fst);
InitTree(Fst, dr["ID"].ToString());
}
}
以上代碼將c_word表(用于錄入精品課程所有內容如課程申報、課程概況等信息)中內容這一列加入精品課程目錄書中。相同原理可生成精品課程目錄樹子節點,這里省略代碼。
在本例中使用ASP.NET中的TreeView控件在生成樹狀結構方面具有強大功能,與其他編寫自定義用戶控件和利用XML的方法相比較,它提供的用可擴展的樹狀結構來顯示層次數據方法更加方便、實用和有效,而且出錯率非常低,達到了設計的目的。
以系統后臺課程管理中更新欄目內容為例,檢驗在精品課程網站生成系統中更新網站內容的效果。對于欄目內容管理,系統設計了兩個入口,一個是從菜單管理頁進入;另一個是專門的欄目內容管理頁進入,單擊以課程概況中的課程描述為例點擊“修改”按鈕后,轉入內容編輯頁。
從前面的系統分析中可知,精品課程欄目內容不但要有文字信息,還要包含其它內容,如表格、超級鏈接和圖像等,內容還要進行格式化設置。這些功能的實現過程非常繁瑣,所以多數系統采用第三方組件來實現。本系統欄目內容管理,是通過服務器端組件fckeditor實現的[4]。fckeditor控件的應用實現了如同word文檔有著強大的編輯功能,提供更加自主的空間,體現很好的靈活性,自主性。
該控件為外部控件,使用前必須注冊,語句為:<%@ Register assembly="FredCK.FCKeditorV2" namespace="FredCK.FCKeditorV2" tagprefix="FCKeditorV2" %>
在引用fckeditor控件的頁面中實現了后臺插入、更新、刪除數據于一體的功能,實現了只會操作word的老師也能快速制作精品課程的功能。重點在于設置一個語句來判斷什么時候實現什么樣的功能,為解決這一問題我們設置這樣一個語句:
if (Request.QueryString["id"] == null) return;
string strUpdate = string.Format("Update C_Word set Content = '{0}' where id={1}",FCKeditor1.Value , Request.QueryString["id"]); ;
if (DBFun.ExecuteUpdate(strUpdate))
Response.Redirect("SuccessUpdate.aspx");
此語句的功能在于判斷在c_word表(用于錄入精品課程所有內容如課程申報、課程概況等信息)中的ID是否為空,非空的話則根據fckeditor控件編輯器空白區域中的值替代原數據庫中的內容,實現了精品課程網站的內容更新。
在編輯欄中輸入內容,進行排版后再點擊確定保存頁面。然后在前臺瀏覽網頁,可以看到課程概況中的課程描述已經更新了,如圖3所示。

圖3 前臺網頁瀏覽
隨著各高校申報國家精品課程的流行趨勢,精品課程網站生成系統的使用范圍將越來越廣,因此對其功能性、實用性等方面的要求也越來越高。如何使精品課程網站生成系統的功能更全面,操作更簡便對于使用對象和開發者都有著重要的意義。
本文對精品課程系統的需求和設計進行了分析和研究,并對精品課程系統中課程管理目錄樹的生成等關鍵技術做了說明,希望為推動精品課程的建設盡一份力。
[參考文獻]
[1] 史金昌. 淺析基于ASP.NET的Web網絡應用程序的安全開發[J]. 科技創新導報,2008,23:37.
[2] 徐國芹. 基于ASP.NET的應用程序性能探討[J]. 中國科技信息, 2005,22:35.
[3] 青宇航. ASP.NET連接數據庫方案設計[J]. 科技資訊, 2006(7):61.
[4] 鄭耀東,蔡賽.ASP.NET網絡數庫開發實例精解 [M].北京:清華大學出版社,2006:50-54.