華文學(xué)生計(jì)算機(jī)技能輔助系統(tǒng)中.NET程序技術(shù)
華文教育首先是指為掌握華文而興辦的教育。在具體語(yǔ)境中,它的涵義可能有如下變化:(1)著眼于辦學(xué)主體,將它理解為華僑華人在居住國(guó)與入籍國(guó)興辦的教育,略近于華僑教育、華人教育;(2)著眼于教育對(duì)象,將它理解為面向海外華僑華人子女的教育,與華人華僑青少年教育相通;(3)著眼于教學(xué)手段,將它解釋為運(yùn)用華文進(jìn)行的教育,其科目不限于語(yǔ)言文字;(4)強(qiáng)調(diào)教育的社會(huì)功能,將掌握華文視為學(xué)習(xí)、繼承與發(fā)揚(yáng)中華文化優(yōu)良傳統(tǒng)的途徑,由此將華文教育的外延由語(yǔ)言文字領(lǐng)域擴(kuò)展到文化領(lǐng)域[1]。
1 華文學(xué)生計(jì)算機(jī)基本操作技能現(xiàn)狀
華文學(xué)生計(jì)算機(jī)基本操作技能是計(jì)算機(jī)知識(shí)的入門課程,內(nèi)容著重于計(jì)算機(jī)的基礎(chǔ)知識(shí)、基本概念和基本操作技能,并兼顧實(shí)用軟件的使用和計(jì)算機(jī)應(yīng)用領(lǐng)域的前沿知識(shí),為學(xué)生熟練使用計(jì)算機(jī)和進(jìn)一步學(xué)習(xí)計(jì)算機(jī)相關(guān)知識(shí)打下基礎(chǔ)。其教材的編寫和國(guó)內(nèi)學(xué)生計(jì)算機(jī)操作技能的教材基本一樣,但對(duì)于教材的描述語(yǔ)言是經(jīng)過(guò)漢語(yǔ)學(xué)者遴選的。通過(guò)該課程的學(xué)習(xí),使學(xué)生在基本掌握計(jì)算機(jī)基礎(chǔ)知識(shí)的基礎(chǔ)上理解一些計(jì)算機(jī)的常用術(shù)語(yǔ)和基本概念;學(xué)生能較熟練地使用Windows 2000操作平臺(tái),熟練掌握文字處理軟件Word、表格處理軟件Excel 及演示文稿制作軟件PowerPoint的基本操作,掌握Internet和瀏覽器以及網(wǎng)頁(yè)制作軟件FrontPage的基本使用方法,掌握計(jì)算機(jī)信息安全等。
(1)在平時(shí)的課堂授課中:由于計(jì)算機(jī)技能課都是中文授課,這就是一種華語(yǔ)教學(xué)上的計(jì)算機(jī)技能培訓(xùn)。學(xué)生有時(shí)可能會(huì)聽不懂老師用中文講授的課程內(nèi)容,但是老師的操作步驟是一種感性的認(rèn)識(shí),學(xué)生基本都會(huì)明白,那么當(dāng)學(xué)生閱讀教材或者進(jìn)行實(shí)訓(xùn)的時(shí)候,遇到中文表述的操作步驟時(shí),如果他們能夠借助一個(gè)輔助系統(tǒng)進(jìn)行對(duì)應(yīng)的母語(yǔ)的查找,則可解決問(wèn)題。
(2)技能測(cè)試中的情況:華文學(xué)生的計(jì)算機(jī)測(cè)試是語(yǔ)言關(guān)基礎(chǔ)上的計(jì)算機(jī)測(cè)試,學(xué)生首先讀懂了中文題目,進(jìn)一步才是答題。根據(jù)筆者的教學(xué)和監(jiān)考評(píng)卷經(jīng)驗(yàn),很多情況下是因?yàn)閷W(xué)生中文試題題目沒有讀懂以至于他們解答不了這個(gè)題目或者解答不正確,但這并不代表他們不會(huì)這項(xiàng)計(jì)算機(jī)技能[2]。
基于以上情況,可以按章節(jié)、按難易程度設(shè)置檢索關(guān)鍵詞和關(guān)鍵短語(yǔ),并為關(guān)鍵詞和短語(yǔ)配圖或操作視頻,建立一個(gè)這樣的系統(tǒng)供學(xué)生上課和學(xué)習(xí)時(shí)使用。該系統(tǒng)是課程范圍內(nèi)的“金山詞霸”,輔助學(xué)生學(xué)習(xí),這樣學(xué)生就不必要死記硬背華文詞語(yǔ)進(jìn)行計(jì)算機(jī)基本操作技能的學(xué)習(xí)。如果在平時(shí)的學(xué)習(xí)中學(xué)生已經(jīng)能熟練地操作該輔助系統(tǒng),測(cè)試時(shí),即使題目的中文再?gòu)?fù)雜,學(xué)生把不懂的關(guān)鍵短語(yǔ)弄明白后也可以做到基于語(yǔ)言關(guān)基礎(chǔ)上的作答了[3]。
系統(tǒng)采用.NET三層框架的模式進(jìn)行開發(fā),在應(yīng)用系統(tǒng)進(jìn)行查詢和瀏覽時(shí),常常要顯示多頁(yè)的內(nèi)容,為了有效節(jié)省客機(jī)資源和網(wǎng)絡(luò)帶寬,做到 “按需索取”,相對(duì)傳統(tǒng)Web應(yīng)用減少了客戶端與服務(wù)器的數(shù)據(jù)交互量,采用自定義的分頁(yè)技術(shù)來(lái)改善資源利用率,在Internet或者LAN內(nèi)都能有效地節(jié)約寶貴帶寬資源,提高系統(tǒng)的響應(yīng)和查詢效率。
2 .NET分頁(yè)技術(shù)與自定義分頁(yè)技術(shù)
2.1 傳統(tǒng)分頁(yè)技術(shù)
DataGrid 控件內(nèi)置地支持對(duì)數(shù)據(jù)源的記錄的分頁(yè)操作。例如,假定要顯示一個(gè)計(jì)算機(jī)基本技能名詞列表,其中包含幾百條記錄,但并不想一次在一個(gè)頁(yè)面中顯示所有這些記錄,而是要把這些記錄分放到多個(gè)邏輯頁(yè)面中,此時(shí)可以通過(guò)允許AllowPaging屬性并且創(chuàng)建一個(gè)子程序來(lái)修改當(dāng)前頁(yè)面,由此來(lái)允許DataGrid的分頁(yè)操作。在允許分頁(yè)操作時(shí)還有一個(gè)重要的要素,那就是只有存在DataGrid控件的數(shù)據(jù)源實(shí)現(xiàn)了ICollection接口時(shí)才能允許分頁(yè)操作。DataReader沒有實(shí)現(xiàn)這種接口,因此就必須改用DataTable。頁(yè)面內(nèi)顯示的記錄數(shù)由DataGrid控件的PageSize屬性決定,在默認(rèn)情況下,該屬性值為10,在程序清單中把它設(shè)為其他值以便每頁(yè)顯示自定義的記錄[4]。
2.2 自定義分頁(yè)技術(shù)原理
分頁(yè)是Web應(yīng)用程序中最常用到的功能之一,也是許多ASP.NET程序員最頭疼的問(wèn)題。ASP.NET中自帶的可以分頁(yè)的DataGrid(ASP.NET 1.1)和GridView(asp.net 2.0)控件可定制性差、無(wú)法通過(guò)Url實(shí)現(xiàn)分頁(yè)功能等,而且有時(shí)需要對(duì)DataList和Repeater甚至自定義數(shù)據(jù)綁定控件進(jìn)行分頁(yè),手工編寫分頁(yè)代碼不但技術(shù)難度大、任務(wù)繁瑣, 而且代碼重用率極低,每次當(dāng)瀏覽新的頁(yè)面時(shí),所有的記錄都必須從數(shù)據(jù)庫(kù)檢索出來(lái)。因此,如果對(duì)有幾十萬(wàn)條記錄的數(shù)據(jù)庫(kù)分頁(yè)時(shí),這幾十萬(wàn)條記錄必須在每次移動(dòng)到新頁(yè)面時(shí)檢索到內(nèi)存中。本文將實(shí)現(xiàn)一個(gè)自定義分頁(yè)的解決方案來(lái)避開這個(gè)局限,只要檢索所需要的記錄而不是獲取要在每頁(yè)中顯示的每條記錄。
AspNetPager分頁(yè)控件彌補(bǔ)了ASP.NET分頁(yè)的不足,提出了與眾不同的方案解決ASP.NET中分頁(yè)問(wèn)題,即將分頁(yè)導(dǎo)航功能與數(shù)據(jù)顯示功能完全獨(dú)立開來(lái),由用戶自己控制數(shù)據(jù)的獲取及顯示方式,因此可以靈活地應(yīng)用于任何需要實(shí)現(xiàn)分頁(yè)導(dǎo)航功能的地方,如為GridView、DataList以及Repeater等數(shù)據(jù)綁定控件實(shí)現(xiàn)分頁(yè)、呈現(xiàn)自定義的分頁(yè)數(shù)據(jù)以及制作圖片瀏覽程序等。AspNetPager控件和數(shù)據(jù)是獨(dú)立的,因此要分頁(yè)的數(shù)據(jù)可以來(lái)自任何數(shù)據(jù)源,如SQL Server、Oracle、Access、mysql、DB2等數(shù)據(jù)庫(kù)以及XML文件、內(nèi)存數(shù)據(jù)或緩存中的數(shù)據(jù)、文件系統(tǒng)等[5]。
3 .NET自定義分頁(yè)技術(shù)
3.1 系統(tǒng)開發(fā)背景
ASP.NET可以使用.NET平臺(tái)快速方便地部署三層架構(gòu)。ASP.NET革命性的變化是在網(wǎng)頁(yè)中也使用基于事件的處理,可以指定處理的后臺(tái)代碼文件,可以使用C#、VB、J#作為后臺(tái)代碼的語(yǔ)言。.NET中可以方便地實(shí)現(xiàn)組件的裝配,后臺(tái)代碼通過(guò)命名控件可以方便地使用自己定義的組件。顯示層放在ASP頁(yè)面中,數(shù)據(jù)庫(kù)操作和邏輯層用組件來(lái)實(shí)現(xiàn),這樣就很方便地實(shí)現(xiàn)了三層架構(gòu)。用ASP.NET部署三層架構(gòu)來(lái)開發(fā)華文教育下的計(jì)算機(jī)技能關(guān)鍵詞和關(guān)鍵短語(yǔ)的查詢系統(tǒng),系統(tǒng)的架構(gòu)如圖1所示。
首先在SqlServer數(shù)據(jù)庫(kù)中建一個(gè)數(shù)據(jù)庫(kù)CompWord,在CompWord中建表TB_CompWord,如表1所示。
(1)打開VS.NET,在新建項(xiàng)目中選擇Visal C#項(xiàng)目,模板選擇ASP.NET Web應(yīng)用程序,為本方案命名為CompWord。
(2)建立數(shù)據(jù)庫(kù)訪問(wèn)控件DBLayer,此控件用來(lái)調(diào)用數(shù)據(jù)庫(kù)數(shù)據(jù),封裝所有的數(shù)據(jù)處理操作。
(3)建立邏輯處理控件BusinessLayer,此控件用來(lái)封裝所有的邏輯處理操作。
(4)關(guān)于引用。因?yàn)锽usinessLayer要用到自定義的Web控件,所以必須添加引用。右鍵點(diǎn)擊BusinessLayer的“引用”,選擇.NET的“AspNetPager.dll”雙擊選中即可。
3.2 關(guān)鍵實(shí)現(xiàn)技術(shù)
可以通過(guò)DataGrid的自定義分頁(yè)功能來(lái)減少資源使用和提高效率。DataGrid自帶的分頁(yè)功能實(shí)現(xiàn)起來(lái)雖然比較方便,但是效率不高,每次都需要讀取所有頁(yè)(整個(gè)記錄集),而加載的只是其中一頁(yè),造成了資源的浪費(fèi),記錄多又會(huì)使效率變得很低。下面通過(guò)DataGrid的自定義分頁(yè)功能來(lái)減少資源使用和提高效率。前臺(tái)的主要代碼如下:
界面層添加分頁(yè)的導(dǎo)航條:webdiyer:AspNetPager ID=pager runat=server PageSize=7 NumericButtonCount=8 ShowCustomInfoSection=left PagingButtonSpacing=0 ShowInputBox=always CssClass=mypager HorizontalAlign=right OnPageChanged=ChangePage SubmitButtonText=轉(zhuǎn)到 NumericButtonTextFormatString=[{0}] alwaysshow=true>/webdiyer:AspNetPager>
在邏輯層,添加如下的引用:
cmd = new SqlCommand(GetCiAll, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(@pageindex,1);
cmd.Parameters.Add(@pagesize,1);
cmd.Parameters.Add(@docount,true);
pager.RecordCount = (int)cmd.ExecuteScalar(); BindData();
其中的GetCiAll為一個(gè)寫于數(shù)據(jù)庫(kù)上的存儲(chǔ)過(guò)程。
評(píng)論