摘要:教學(xué)網(wǎng)站在課程輔助教學(xué)和教學(xué)改革中的作用越來越重要,本文介紹了如何利用Microsoft.NET、SQL Server等軟件構(gòu)建基于.NET的動(dòng)態(tài)教學(xué)網(wǎng)站平臺(tái)系統(tǒng)。實(shí)踐證明,采用.NET技術(shù)開發(fā)動(dòng)態(tài)導(dǎo)航教學(xué)網(wǎng)站平臺(tái)在技術(shù)上完全可行,便于后期的維護(hù)和升級(jí)。
關(guān)鍵詞:教學(xué)網(wǎng)站;.NET;動(dòng)態(tài)導(dǎo)航
網(wǎng)絡(luò)教學(xué)平臺(tái)降低了教學(xué)網(wǎng)站建設(shè)的技術(shù)難度,使一線教師都能容易地搭建、設(shè)計(jì)自己的課程網(wǎng)站,這樣更有利于資源共享和網(wǎng)絡(luò)輔助教學(xué)的廣泛開展,這也是現(xiàn)在許多高校購置或自主開發(fā)搭建校園網(wǎng)絡(luò)教學(xué)平臺(tái)的一個(gè)主要原因。然而目前一些教學(xué)網(wǎng)站存在著兩個(gè)主要問題:有些網(wǎng)站采用靜態(tài)導(dǎo)航的方式,預(yù)先設(shè)置好欄目,使得網(wǎng)站的設(shè)置和維護(hù)不夠靈活;還有些平臺(tái)的功能模塊設(shè)計(jì)得過多,結(jié)果只是技術(shù)上實(shí)現(xiàn)了,但實(shí)際上可能沒有教師、學(xué)習(xí)者去使用[1]。因此本文利用.NET技術(shù)構(gòu)建了一個(gè)三層結(jié)構(gòu)模式的動(dòng)態(tài)教學(xué)網(wǎng)站平臺(tái)系統(tǒng)。此系統(tǒng)以數(shù)據(jù)庫SQL Server為依托,采用目前主流的.NET技術(shù),使用全新的面向?qū)ο笳Z言C#,結(jié)合ASP.NET,運(yùn)用Web服務(wù)器控件設(shè)計(jì)完成。本系統(tǒng)只需要根據(jù)自己的課程特點(diǎn),像搭積木一樣進(jìn)行必要的功能模塊搭建就可完成課程框架的建設(shè)。這樣在很短的時(shí)間就可以搭建好自己的課程網(wǎng)站框架。
本系統(tǒng)實(shí)現(xiàn)了課程欄目和內(nèi)容的動(dòng)態(tài)管理與維護(hù),實(shí)現(xiàn)了教學(xué)資源(如教學(xué)課件、教學(xué)視頻等)的共享與交流,實(shí)現(xiàn)教師與學(xué)生之間、學(xué)生與學(xué)生之間的互動(dòng),如作業(yè)、考試、畢業(yè)設(shè)計(jì)、答疑等,使大家能在統(tǒng)一的平臺(tái)基礎(chǔ)之上進(jìn)行溝通與交流。提高了學(xué)生學(xué)習(xí)的主動(dòng)性、積極性、及時(shí)性、有效性和高效性。
1NET平臺(tái)優(yōu)勢分析
1) 開發(fā)效率更高
ASP.NET 2.0提供了近80種服務(wù)器控件,包括導(dǎo)航控件、登錄控件、數(shù)據(jù)訪問控件等,可以幫助軟件開發(fā)者快速創(chuàng)建網(wǎng)站,提高開發(fā)效率。
2) 易于編寫,結(jié)構(gòu)更清晰
ASP.NET采取“code-behind”方式編寫代碼,將程序代碼與用戶界面接口徹底分開,程序代碼是編譯過的,能大大縮短服務(wù)器的應(yīng)答時(shí)間,同時(shí)采用B/S模式開發(fā),整個(gè)系統(tǒng)的升級(jí)、維護(hù)工作只要在服務(wù)器端運(yùn)行即可,降低了系統(tǒng)的開發(fā)與維護(hù)的復(fù)雜度和費(fèi)用[2]。
3) 網(wǎng)站彈性與可擴(kuò)展性好
ASP.NET 2.0使用Provider架構(gòu),例如數(shù)據(jù)訪問、角色管理、用戶管理等并不直接訪問數(shù)據(jù)庫,而是通過Provider來訪問數(shù)據(jù)庫。因此,當(dāng)需要更改數(shù)據(jù)庫時(shí),只要更換Provider即可,完全不需要修改任何代碼就可以順利轉(zhuǎn)換。
4) 先進(jìn)的數(shù)據(jù)庫存取模式和更高的執(zhí)行效率
ASP.NET通過ADO.NET實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的訪問,ADO.NET使用DataAdapter對(duì)象為發(fā)送到和來自DataSet及底層數(shù)據(jù)源的數(shù)據(jù)建立通道。由于DataSet與原始數(shù)據(jù)源完全無關(guān),因而可以實(shí)現(xiàn)斷開連接的數(shù)據(jù)訪問,提高了數(shù)據(jù)的執(zhí)行效率[3]。ADO.NET支持?jǐn)?shù)據(jù)離散訪問的編程接口,在設(shè)計(jì)時(shí)盡量縮短數(shù)據(jù)庫鎖定時(shí)間,減少多個(gè)用戶訪問數(shù)據(jù)庫服務(wù)器時(shí)的潛在競爭,使數(shù)據(jù)共享面向更多的訪問用戶,真正體現(xiàn)了Web網(wǎng)絡(luò)應(yīng)用的思想[4]。
5) 容易進(jìn)行再利用和共享
ASP.NET結(jié)構(gòu)天然就是一個(gè)三層系統(tǒng):UI層、業(yè)務(wù)邏輯層和數(shù)據(jù)層,給應(yīng)用維護(hù)和升級(jí)帶來了極大的方便。ASP.NET系統(tǒng)結(jié)構(gòu)如圖1所示。
UI層負(fù)責(zé)與用戶交互,接收用戶的輸入并將服務(wù)器端傳來的數(shù)據(jù)呈現(xiàn)給客戶。
業(yè)務(wù)邏輯層負(fù)責(zé)接收瀏覽器傳來的請(qǐng)求并將請(qǐng)求傳給數(shù)據(jù)層,同時(shí)將請(qǐng)求處理結(jié)果發(fā)給瀏覽器。它由Web表單、XML Web服務(wù)和組件服務(wù)組成。其中Web表單是ASP.NET應(yīng)用程序的核心所在,是向客戶呈現(xiàn)數(shù)據(jù)和信息的基礎(chǔ),也是響應(yīng)和處理客戶與顯示的Web表單交互生成的信息和數(shù)據(jù)的基礎(chǔ)。
數(shù)據(jù)層是通過ADO.NET操縱數(shù)據(jù)為業(yè)務(wù)邏輯層提供數(shù)據(jù)服務(wù),如存儲(chǔ)數(shù)據(jù)操作結(jié)果、返回?cái)?shù)據(jù)檢索結(jié)果等。
因此基于ASP.NET技術(shù)的結(jié)構(gòu)模型使得網(wǎng)站系統(tǒng)更易維護(hù)、更安全、更穩(wěn)定。
2基于.NET構(gòu)架的教學(xué)網(wǎng)站平臺(tái)設(shè)計(jì)
2.1網(wǎng)站平臺(tái)功能模塊設(shè)計(jì)
本系統(tǒng)的軟件功能模塊主要包括欄目管理、視頻管理、作業(yè)管理、在線測試、題庫管理、師生交流、畢業(yè)論文管理、用戶管理等功能,如圖2所示。
視頻管理模塊主要是發(fā)布和管理視頻教學(xué)信息,可以在線播放上傳的視頻文件,實(shí)現(xiàn)了信息與視頻教學(xué)的同步。并提供當(dāng)前教學(xué)模塊的下載功能,如教學(xué)課件、教學(xué)視頻等。
作業(yè)管理模塊主要包括教師在網(wǎng)上發(fā)布作業(yè),學(xué)生提交作業(yè),教師查收作業(yè)等功能。
師生交流模塊為教師和學(xué)生提供了一個(gè)網(wǎng)上的討論園地,學(xué)生可以通過BBS中相應(yīng)的版塊向老師提問,任何學(xué)生都可進(jìn)行瀏覽或討論,提高了輔導(dǎo)答疑的效果和質(zhì)量,發(fā)揮了學(xué)生自主學(xué)習(xí)的作用。
畢業(yè)論文管理模塊實(shí)現(xiàn)了教師出題、提出指導(dǎo)意見、修改論文、填寫評(píng)審表等管理功能;同時(shí)也實(shí)現(xiàn)了學(xué)生選題、寫作申請(qǐng)、開題報(bào)告、畢業(yè)論文(設(shè)計(jì))上傳等一般功能。通過論文管理實(shí)現(xiàn)了信息的規(guī)范化、實(shí)用化和自動(dòng)化管理。
題庫管理和在線測試模塊實(shí)現(xiàn)了試卷制定(隨機(jī)出題、人工出題)、試卷維護(hù)和在線網(wǎng)絡(luò)測試等功能,本模塊題型分為單選題、多選題、判斷題、填空題和問答題,改卷方式分為前臺(tái)自動(dòng)評(píng)卷和試卷后臺(tái)評(píng)閱。因?yàn)閱芜x、多選、判斷和填空題均可以通過與數(shù)據(jù)庫中的答案進(jìn)行比較來判斷,而問答題的回答一般較復(fù)雜,不可能每個(gè)字都和數(shù)據(jù)庫中的答案相同,所以通過后臺(tái)試卷評(píng)閱功能把用戶輸入的內(nèi)容一模一樣的顯示出來,實(shí)現(xiàn)人工評(píng)閱。同時(shí)本模塊增加考試時(shí)間限制功能,可以自行設(shè)置考試時(shí)間。
用戶管理子模塊主要用于對(duì)用戶的權(quán)限管理,系統(tǒng)分為三種用戶:管理員、教師和學(xué)生。管理員可以設(shè)定教師和學(xué)生有哪些權(quán)限。如教師可以進(jìn)行作業(yè)管理,題庫模塊的維護(hù)及答疑等。學(xué)生可以查看信息、提交作業(yè)與論文、網(wǎng)上提問等功能。
本系統(tǒng)最具特色的功能是欄目管理,包括新建目錄、目錄下欄目的添加、修改與刪除、欄目內(nèi)容的動(dòng)態(tài)管理等。用戶只需要設(shè)計(jì)好網(wǎng)站的菜單欄目,通過新建目錄功能可以實(shí)現(xiàn)一級(jí)菜單,通過欄目添加功能可以將該級(jí)菜單下的欄目及其超文本內(nèi)容動(dòng)態(tài)添加到該菜單下。因此,實(shí)現(xiàn)了課程欄目和內(nèi)容的動(dòng)態(tài)管理與維護(hù)。
本系統(tǒng)具有良好的可擴(kuò)展性和模塊性,可以方便地組合各個(gè)模塊,也可以增加更多的功能模塊。如圖3為利用本教學(xué)網(wǎng)站平臺(tái)動(dòng)態(tài)生成的《Web程序設(shè)計(jì)—ASP.NET》課程網(wǎng)站,其左邊欄目和導(dǎo)航的超文本內(nèi)容完全通過后臺(tái)的欄目管理功能動(dòng)態(tài)添加獲得。
2.2動(dòng)態(tài)導(dǎo)航技術(shù)的實(shí)現(xiàn)
動(dòng)態(tài)導(dǎo)航技術(shù)的實(shí)現(xiàn)主要利用Visual Studio 2005的樹形導(dǎo)航控件TreeView來實(shí)現(xiàn),TreeView控件由TreeNode對(duì)象的集合組成,其常用屬性如下表1所示。通過對(duì)樹型結(jié)構(gòu)的遞歸調(diào)用將數(shù)據(jù)庫的信息顯示為動(dòng)態(tài)樹形菜單,并能逐級(jí)展開和選擇,然后相應(yīng)的在頁面右邊顯示被選擇的節(jié)點(diǎn)的超文本信息。
其實(shí)現(xiàn)的主要方法如下:
(1) 連接數(shù)據(jù)庫,利用SqlDataAdapter對(duì)象的Fill方法將數(shù)據(jù)庫中的數(shù)據(jù)讀到DataSet中。
(2) 通過遞歸算法調(diào)用綁定數(shù)據(jù)庫的信息,其遞歸調(diào)用方法主要代碼如下:
private void CreateChildNode(TreeNode parent Node,DataTable dataTable)
{//通過根據(jù)所屬類別不同分別動(dòng)態(tài)的綁定至不同的資源類別信息樹結(jié)構(gòu)中
DataRow[]rowList=dataTable. Select (\"ParentID='\" + parentNode.Value + \"'\");
foreach (DataRow row in rowList)
{TreeNode node = new TreeNode();//創(chuàng)建新節(jié)點(diǎn)
//設(shè)置節(jié)點(diǎn)的屬性
node.Text = row[\"ImgName\"]. ToString(); //顯示文本
node.Value = row[\"ImgID\"].ToString();
if (row[\"isDir\"].ToString() == \"True\") //判斷是否為父結(jié)點(diǎn)
{
node.Expanded = 1;
node.Target = \"_self\";
node.ImageUrl = \"~/Image/Dir. gif\";
}
else
{
node.Target = \"_blank\";
node.ImageUrl = \"~/Image/Picture. gif\";
}
node.ImageToolTip = row[\"ImgUrl\"]. ToString();
parentNode.ChildNodes.Add(node); //添加子節(jié)點(diǎn)
CreateChildNode(node,dataTable); //遞歸調(diào)用,創(chuàng)建其他節(jié)點(diǎn)
}
}
其參數(shù)為TreeNode對(duì)象和填充的數(shù)據(jù)表對(duì)象。
(3) 通過對(duì)數(shù)據(jù)庫數(shù)據(jù)的插入、修改、刪除來實(shí)現(xiàn)節(jié)點(diǎn)及其內(nèi)容的動(dòng)態(tài)添加、更新與刪除。
3結(jié)論
動(dòng)態(tài)網(wǎng)站的模式將是未來課程網(wǎng)站的主要模式,也是精品課程網(wǎng)站建設(shè)的首選。本系統(tǒng)成功實(shí)現(xiàn)了如教學(xué)指南、課程導(dǎo)航、工學(xué)結(jié)合、實(shí)踐教學(xué)、視頻教學(xué)、在線測試、作業(yè)管理等教學(xué)網(wǎng)站具有的功能,并且該系統(tǒng)性能穩(wěn)定、操作方便,具備了良好的可維護(hù)性、擴(kuò)展性和可管理性。實(shí)踐證明,利用.NET技術(shù)開發(fā)教學(xué)網(wǎng)站平臺(tái)將有助于網(wǎng)絡(luò)教學(xué)走上一個(gè)實(shí)用、經(jīng)濟(jì)、高速、高效的軌道,有助于提高教學(xué)效率和效益。
參考文獻(xiàn)
[1] 陳以海. 高校精品課程網(wǎng)站建設(shè)探索[J]. 中國教育信息化,2008,(1).
[2] 范振鈞. 基于ASP.net的三層結(jié)構(gòu)實(shí)現(xiàn)方法研究[J]. 計(jì)算機(jī)科學(xué),2007,4(34).
[3] 包空軍,劉海燕等. ASP.NET 電子商務(wù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 福建電腦,2007,(2).
[4] 蔡秀莉,李偉華等. 構(gòu)建基于.NET的高校院系級(jí)網(wǎng)上辦公系統(tǒng)[J]. 計(jì)算機(jī)工程與應(yīng)用,2005,(27).