瞿詩(shī)高
摘 要: 高等院校的科研業(yè)務(wù)能力在很大程度上決定了該院校的綜合管理能力,因此高校在科研管理工作中結(jié)合全新的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)是十分關(guān)鍵的。在ASP.NET基礎(chǔ)上創(chuàng)設(shè)了一類(lèi)全新的科研管理系統(tǒng),在對(duì)系統(tǒng)的實(shí)際需求進(jìn)行深入探究之后,擬采用瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)對(duì)其進(jìn)行構(gòu)建,對(duì)系統(tǒng)開(kāi)發(fā)來(lái)講, .NET技術(shù)是必不可少的,并且在進(jìn)行實(shí)踐開(kāi)發(fā)的過(guò)程中,將ASP.NET作為開(kāi)發(fā)語(yǔ)言,SQL Server作為數(shù)據(jù)庫(kù)系統(tǒng)。除此之外,系統(tǒng)的構(gòu)型為三層結(jié)構(gòu),包括數(shù)據(jù)訪問(wèn)層、業(yè)務(wù)邏輯層和Web層,每個(gè)層次實(shí)現(xiàn)特定的功能。
關(guān)鍵詞: 科研管理; 三層架構(gòu); .NET技術(shù); ASP.NET
中圖分類(lèi)號(hào): TN710?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)01?0006?04
Abstract: A university′s scientific research professional ability determines its comprehensive management ability to a great extent, so the new computer network system combined in the university′s scientific research management is very important. A new scientific research management system is created based on ASP.NET. After deeply studying the actual demand of the system, the browser/server (B/S) structure is used to construct the system. The .NET technology is essential for the system development. The ASP.NET is taken as the development language, and SQL Server is taken as the database system in the process of development practice. The structure of the system has three layers, including the data access layer, business logic layer and Web layer, and each layer can realize a specific function.
Keywords: scientific research management; three?tier architecture; .NET technology; ASP.NET
1 相關(guān)知識(shí)
1.1 .NET介紹
.NET簡(jiǎn)單來(lái)講是專(zhuān)門(mén)為Microsoft設(shè)計(jì)的一套開(kāi)發(fā)模型,針對(duì)它而言,軟件和平臺(tái)以及設(shè)備之間并不存在實(shí)質(zhì)聯(lián)系,并且數(shù)據(jù)可以在Internet上訪問(wèn)。從本質(zhì)上講是一個(gè)能夠形成和運(yùn)行下一代Microsoft Windows和Web程序的平臺(tái), .NET平臺(tái)的目標(biāo)是簡(jiǎn)單網(wǎng)絡(luò)開(kāi)發(fā)。 .NET平臺(tái)下的核心技術(shù)包括.NET框架、.NET企業(yè)服務(wù)器、生成構(gòu)件的服務(wù)器、Visual Studio.NET。
.NET框架為各個(gè)應(yīng)用和XML網(wǎng)絡(luò)服務(wù)體系提供了良好的運(yùn)行環(huán)境。.NET框架的聯(lián)合特性意味所有的應(yīng)用程序都可以使用通用的工具和代碼集進(jìn)行開(kāi)發(fā),并且相互間可以容易地集成,.NET框架結(jié)構(gòu)如圖1所示。
1.2 ASP.NET概述
在.NET結(jié)構(gòu)中設(shè)計(jì)程序的方式和設(shè)計(jì)Windows程序存在諸多的相似之處。ASP.NET的基礎(chǔ)組件是網(wǎng)絡(luò)窗體。網(wǎng)絡(luò)窗體是使用者在點(diǎn)開(kāi)瀏覽器程序之后能夠進(jìn)行查看的頁(yè)面。ASP.NET網(wǎng)絡(luò)應(yīng)用程序中涵蓋了若干個(gè)網(wǎng)絡(luò)窗體,而且網(wǎng)絡(luò)窗體從本質(zhì)上講是一個(gè)非靜態(tài)能夠?qū)Ψ?wù)器資源進(jìn)行調(diào)用的網(wǎng)頁(yè)。創(chuàng)建ASP.NET網(wǎng)絡(luò)應(yīng)用程序的各部分包括網(wǎng)絡(luò)窗體,.aspx頁(yè)面網(wǎng)絡(luò)窗體和.aspx頁(yè)面提供網(wǎng)絡(luò)應(yīng)用程序的UI。后臺(tái)代碼頁(yè)和窗體之間互相銜接,同時(shí)涵蓋了窗體當(dāng)中的服務(wù)器代碼、配置文件、Global.asax文件、XML網(wǎng)絡(luò)服務(wù)器鏈接、 數(shù)據(jù)庫(kù)連接、緩存。
1.3 AJAX技術(shù)
AJAX(Asynchronous Javascript And XML)是一種使用Javascript進(jìn)行異步通信((Asynchronous)以交換XML數(shù)據(jù)的技術(shù)。AJAX在瀏覽器和服務(wù)器之間引入AJAX引擎,這種引擎通過(guò)JavaScript進(jìn)行設(shè)計(jì),一般情況下隱含在某個(gè)特定的框架(Framework)內(nèi),其功能是協(xié)調(diào)接口和服務(wù)器彼此之間的互動(dòng),除此之外,該引擎對(duì)這種互動(dòng)通過(guò)異步的方式展開(kāi)處理,因此在服務(wù)器接收到某個(gè)請(qǐng)求指令之后,瀏覽器的操作依然不會(huì)受到限制,并且在網(wǎng)頁(yè)進(jìn)行升級(jí)時(shí),服務(wù)器會(huì)返回必須進(jìn)行完善和更新的網(wǎng)頁(yè)部分,從而大幅度降低用戶(hù)的等待時(shí)長(zhǎng),如圖2所示。
2 系統(tǒng)功能需求
2.1 系統(tǒng)功能模塊需求
本系統(tǒng)涵蓋了高??蒲兴械捻?xiàng)目,比如對(duì)課題進(jìn)行管理,對(duì)相應(yīng)的檔案進(jìn)行管理,對(duì)一些項(xiàng)目的科技成果進(jìn)行管理,項(xiàng)目經(jīng)費(fèi)的管理,系統(tǒng)用戶(hù)的管理,用戶(hù)的權(quán)限分配管理等功能。按照項(xiàng)目的實(shí)際需求,系統(tǒng)應(yīng)涵蓋如圖3所示的四個(gè)子系統(tǒng)。
針對(duì)用戶(hù)管理模塊而言,根據(jù)高校的實(shí)際需求,安排的角色包括:科研工作者,負(fù)責(zé)單位相關(guān)工作的秘書(shū),負(fù)責(zé)各部門(mén)的秘書(shū),高等院校的領(lǐng)導(dǎo)。
項(xiàng)目管理子系統(tǒng)是十分重要的一個(gè)組成部分,它涵蓋的功能十分豐富,其中涉及到項(xiàng)目瀏覽、成員查看等。除此之外,通過(guò)該系統(tǒng)能夠?qū)蒲许?xiàng)目通過(guò)報(bào)表的形式進(jìn)行統(tǒng)計(jì)和相應(yīng)的分析,其涵蓋的功能模塊如圖4所示。
經(jīng)費(fèi)管理子系統(tǒng)在系統(tǒng)中具有不可或缺的作用,它包括的功能紛繁復(fù)雜,其中比較典型的包括調(diào)配情況查詢(xún)、統(tǒng)計(jì)結(jié)果查詢(xún)等。
針對(duì)論著管理子系統(tǒng)模塊而言,用戶(hù)能夠錄入關(guān)于書(shū)籍的諸多信息,例如書(shū)籍的編寫(xiě)者、具體的收錄數(shù)量等;科研秘書(shū)有權(quán)利審查相關(guān)科研工作者所錄入的數(shù)據(jù)。
2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)要求
此系統(tǒng)結(jié)合了SQL Server 2005,SQL Server 2005是一類(lèi)應(yīng)用面十分廣泛的數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)由一組數(shù)量龐大的資源庫(kù)組成,它涵蓋的功能十分全面,并且操作十分便捷,在實(shí)際應(yīng)用中能夠發(fā)揮十分突出的作用。
數(shù)據(jù)庫(kù)設(shè)計(jì)簡(jiǎn)單來(lái)講是構(gòu)建數(shù)據(jù)庫(kù)及設(shè)計(jì)相關(guān)系統(tǒng)的一類(lèi)技術(shù),它是對(duì)某個(gè)既定的要求,創(chuàng)設(shè)最為科學(xué)合理的數(shù)據(jù)庫(kù)體系,并開(kāi)發(fā)相關(guān)的應(yīng)用程序,使其可以高效準(zhǔn)確地存儲(chǔ)目標(biāo)資源,達(dá)到各類(lèi)用戶(hù)的實(shí)際需求。
在進(jìn)行實(shí)際操作的過(guò)程中,要充分考慮數(shù)據(jù)庫(kù)應(yīng)該體現(xiàn)的各個(gè)特性,在展開(kāi)實(shí)踐操作時(shí)要把握以下原則:數(shù)據(jù)一定要體現(xiàn)高度的獨(dú)立性;在進(jìn)行共享數(shù)據(jù)的過(guò)程中保持較高的準(zhǔn)確性;最大化的縮減數(shù)據(jù)冗余;確保數(shù)據(jù)的可靠性和實(shí)用價(jià)值;結(jié)構(gòu)清晰,布局合理。
3 基于.NET技術(shù)系統(tǒng)具體實(shí)現(xiàn)
3.1 總體實(shí)現(xiàn)方法
在設(shè)計(jì)系統(tǒng)的過(guò)程中,其結(jié)構(gòu)可以系統(tǒng)性的劃分為三層,數(shù)據(jù)訪問(wèn)層提供一個(gè)訪問(wèn)端口,業(yè)務(wù)邏輯層處于其他兩層中間,其具體功能是輔助數(shù)據(jù)的交換。它是系統(tǒng)架構(gòu)中的核心部分,它的側(cè)重點(diǎn)是工作準(zhǔn)則的制定、流程的安排等與業(yè)務(wù)息息相關(guān)的系統(tǒng)設(shè)計(jì)。Web層的功能是從數(shù)據(jù)庫(kù)中采集數(shù)據(jù)資源或者輸送相關(guān)數(shù)據(jù)信息。
在實(shí)現(xiàn)方法上,分別建立不同的“命名空間(Namespace)”來(lái)體現(xiàn)這三層。通過(guò)在Microsoft VisualStudio 2010中建立解決方案,并在該解決方案中分別建立三個(gè)項(xiàng)目來(lái)完成,如圖5所示。
針對(duì)圖5,命名空間名為DataAccess的類(lèi)庫(kù)用于實(shí)現(xiàn)數(shù)據(jù)訪問(wèn),其功能是用于銜接數(shù)據(jù)庫(kù)和處理各種對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。
BusinessLogic類(lèi)庫(kù)用于實(shí)現(xiàn)業(yè)務(wù)邏輯層,其功能是接收Web層向數(shù)據(jù)訪問(wèn)層發(fā)出的請(qǐng)求,并將最終的訪問(wèn)結(jié)果傳遞給Web層。
項(xiàng)目名稱(chēng)為WebProject的ASP.NET Web站點(diǎn)用于實(shí)現(xiàn)Web層,其功能是向用戶(hù)顯示頁(yè)面,接收用戶(hù)提交的操作請(qǐng)求,并向業(yè)務(wù)邏輯層傳遞數(shù)據(jù)訪問(wèn)請(qǐng)求,最后將業(yè)務(wù)邏輯層傳來(lái)的數(shù)據(jù)庫(kù)訪問(wèn)結(jié)果顯示給用戶(hù)。
在這種實(shí)現(xiàn)策略中,通過(guò)業(yè)務(wù)邏輯層進(jìn)行聯(lián)系,在實(shí)現(xiàn)方法上,通過(guò)在BusinessLogic中添加特定的引用實(shí)現(xiàn)目標(biāo)層的聯(lián)系,除此之外,在WebProject中添加對(duì)于類(lèi)庫(kù)BusinessLogic的引用實(shí)現(xiàn)目標(biāo)層的聯(lián)系。
3.2 系統(tǒng)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)
在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程中,必然會(huì)將目標(biāo)類(lèi)圖進(jìn)行定向轉(zhuǎn)變使其符合實(shí)際需求,在充分考慮各方面因素后,依據(jù)對(duì)功能模塊的客觀要求,以此創(chuàng)設(shè)科學(xué)合理的數(shù)據(jù)庫(kù),針對(duì)各個(gè)模塊設(shè)計(jì)了相對(duì)應(yīng)的數(shù)據(jù)表,見(jiàn)圖6。
(1) 項(xiàng)目管理模塊
在該模塊中涵蓋的內(nèi)容有關(guān)于項(xiàng)目的有關(guān)信息、資費(fèi)、建設(shè)的實(shí)際情況等。并且對(duì)各個(gè)內(nèi)容都分別設(shè)計(jì)了與之對(duì)應(yīng)的數(shù)據(jù)表,以此符合系統(tǒng)設(shè)計(jì)的客觀需求。
(2) 經(jīng)費(fèi)管理模塊。在該模塊中涵蓋的內(nèi)容包括有關(guān)項(xiàng)目的經(jīng)費(fèi)信息、經(jīng)費(fèi)收支情況等。并且各個(gè)模塊都有與之相對(duì)應(yīng)的數(shù)據(jù)表,例如費(fèi)用支出表SR_Jjfzc、經(jīng)費(fèi)提成情況表SR_Jjftcsr等。
(3) 書(shū)籍管理模塊。在該模塊中涵蓋的內(nèi)容有論著出版商、收錄情況等。其中每個(gè)內(nèi)容都有與之相對(duì)應(yīng)的數(shù)據(jù)表,例如收錄數(shù)量表SR_lzslqk、資助表SR_lzzzqk等。
(4) 用戶(hù)管理模塊。在該模塊中,主要包括人事基本表,用來(lái)存儲(chǔ)系統(tǒng)用戶(hù)名、密碼以及其他一些個(gè)人相關(guān)信息。
3.3 數(shù)據(jù)訪問(wèn)層的實(shí)現(xiàn)
高??蒲泄芾硐到y(tǒng)在工程項(xiàng)目里面創(chuàng)設(shè)了一個(gè)特殊的命名空間,其名稱(chēng)為DataAccess(如圖7所示),它的主要作用是表示數(shù)據(jù)庫(kù)訪問(wèn)層。而對(duì)于數(shù)據(jù)訪問(wèn)層來(lái)講,設(shè)定的訪問(wèn)策略其根本目的在于提升整體的性能。主要采用以下兩種策略:
(1) 數(shù)據(jù)訪問(wèn)層在進(jìn)行訪問(wèn)操作時(shí)通過(guò)存儲(chǔ)過(guò)程的形式完成相應(yīng)的處理。通過(guò)這種形式能夠確保應(yīng)用程序具有比較理想的執(zhí)行速率,并且能夠在一定程度上對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)化,除此之外,它還能夠使系統(tǒng)在設(shè)計(jì)階段具有更多的操作空間,在數(shù)據(jù)庫(kù)有某方面的改變時(shí),又可以改變存儲(chǔ)過(guò)程語(yǔ)句而進(jìn)行相應(yīng)的處理,就沒(méi)有必要對(duì)程序代碼進(jìn)行一定的修改。這個(gè)數(shù)據(jù)訪問(wèn)策略最大化地凸顯了SQL Server數(shù)據(jù)庫(kù)系統(tǒng),可以大幅度提升整體性能的特性。
(2) 使數(shù)據(jù)庫(kù)資源存留最少時(shí)間。數(shù)據(jù)庫(kù)訪問(wèn)層要最大化地推遲調(diào)配數(shù)據(jù)庫(kù)中涵蓋的數(shù)據(jù)信息,并盡快對(duì)這部分?jǐn)?shù)據(jù)信息進(jìn)行釋放。并使用using或try ... catch...finally語(yǔ)句塊對(duì)存儲(chǔ)過(guò)程實(shí)現(xiàn)有效調(diào)用,這種模式封裝了對(duì)不便進(jìn)行管理的資源的調(diào)控,能夠最大化地釋放數(shù)據(jù)資源。本系統(tǒng)在設(shè)計(jì)的過(guò)程中把全部訪問(wèn)都封裝在DataAccess里面,而DataAccess間中類(lèi)提供接口從而讓系統(tǒng)中的業(yè)務(wù)邏輯層能夠展開(kāi)后續(xù)的操作。
3.4 業(yè)務(wù)邏輯層實(shí)現(xiàn)
業(yè)務(wù)邏輯層的主要作用是為Web層展示一個(gè)用于用戶(hù)查看和處理數(shù)據(jù)的界面。業(yè)務(wù)外觀層把界面和各類(lèi)業(yè)務(wù)功能的實(shí)現(xiàn)互相分離,它涵蓋了多種業(yè)務(wù)規(guī)則的有效應(yīng)用,成功地將內(nèi)容和表現(xiàn)進(jìn)行分割。在業(yè)務(wù)邏輯層可以完成系統(tǒng)所具有的諸多功能。高??蒲泄芾硇畔⑾到y(tǒng)在進(jìn)行設(shè)計(jì)的過(guò)程中通過(guò)在項(xiàng)目處理方法中創(chuàng)設(shè)BusinessLogic對(duì)業(yè)務(wù)邏輯層進(jìn)行有效的表示。整個(gè)系統(tǒng)中分屬于業(yè)務(wù)邏輯層主要包括三個(gè)系統(tǒng),分別為項(xiàng)目管理子系統(tǒng)、經(jīng)費(fèi)管理子系統(tǒng)、書(shū)籍管理子系統(tǒng),然后再構(gòu)建三個(gè)互相區(qū)別的命名空間來(lái)有效地實(shí)現(xiàn)各個(gè)子系統(tǒng)的功能,如圖8所示。
業(yè)務(wù)邏輯層獲取用戶(hù)在Web發(fā)出的操作指令之后,將存儲(chǔ)過(guò)程名輸送到該層級(jí)中,之后數(shù)據(jù)訪問(wèn)層就會(huì)開(kāi)展對(duì)數(shù)據(jù)庫(kù)的相關(guān)操作,業(yè)務(wù)邏輯層從本質(zhì)上講并不與數(shù)據(jù)庫(kù)形成某個(gè)層面的聯(lián)系。數(shù)據(jù)訪問(wèn)層在實(shí)現(xiàn)了相應(yīng)的操作之后,把最終結(jié)果返回到業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層再把這個(gè)結(jié)果傳送到Web層,由Web決定最終結(jié)果的顯示方式。
3.5 Web層的實(shí)現(xiàn)
Web層的作用是創(chuàng)設(shè)合理的網(wǎng)頁(yè)界面,從而讓用戶(hù)能夠成功登錄,并且它還提供一個(gè)用于信息錄入的操作界面,設(shè)定信息的查詢(xún)要求并展示相應(yīng)的查看結(jié)果,把收到的數(shù)據(jù)資料輸送到業(yè)務(wù)邏輯層當(dāng)中。在進(jìn)行功能實(shí)現(xiàn)時(shí),結(jié)合ASP.NET的Web Form以及相應(yīng)的用戶(hù)控件完成相應(yīng)的要求,因?yàn)橄到y(tǒng)中通過(guò)Visual Studio .NET設(shè)置專(zhuān)門(mén)的站點(diǎn),所以運(yùn)用Code?behind的方法,把所有的代碼封裝在特定的文件里面。利用XML Web Service具有的服務(wù)功能,從而實(shí)現(xiàn)頁(yè)面的功能設(shè)計(jì)。把封裝完成的XML Web Service加入到特定的程序,并在Code?Behind中把它實(shí)例化,具體情況如圖9所示。
Web層在項(xiàng)目處理方案中創(chuàng)設(shè)一個(gè)特定的ASP.NET Web程序完成系統(tǒng)的功能。本系統(tǒng)從理論上講有四類(lèi)用戶(hù),所以可在Web項(xiàng)目中設(shè)置四個(gè)專(zhuān)門(mén)的Web虛擬目錄來(lái)滿(mǎn)足各類(lèi)用戶(hù)的操作需求。
3.6 ASP.NET用戶(hù)控件的使用
ASP.NET Web用戶(hù)控件從本質(zhì)上講是一類(lèi)復(fù)合控件,其基本原理和ASP.NET網(wǎng)頁(yè)具有諸多相似之處,能夠向用戶(hù)控件增添特定的Web控件以及標(biāo)記,同時(shí)設(shè)定控件的基本屬性以及方式,這個(gè)控件選用的擴(kuò)展名為.ascx。Web用戶(hù)控件可以實(shí)現(xiàn)對(duì)頁(yè)功能的重用。
在進(jìn)行首次請(qǐng)求時(shí),頁(yè)框架在短時(shí)間內(nèi)把用戶(hù)控件調(diào)整為System.Web.ULUserControl派生的類(lèi),同時(shí)把這些類(lèi)編譯至既定的程序集里面,用戶(hù)控件不進(jìn)行預(yù)編譯就能夠?qū)?yè)面的具體樣式展開(kāi)設(shè)定,所以在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí)十分方便。除此之外,科研管理信息系統(tǒng)在功能的實(shí)現(xiàn)中有效地利用了ASP.NET Web用戶(hù)控件,并且這些控件存留在Web層里面的UserControls目錄。
4 結(jié) 語(yǔ)
本文對(duì)高??蒲泄芾硇畔⑾到y(tǒng)的整體結(jié)構(gòu)展開(kāi)了詳盡的探究,對(duì)基礎(chǔ)數(shù)據(jù)庫(kù)功能進(jìn)行了深入分析,并且在系統(tǒng)功能實(shí)現(xiàn)的過(guò)程中結(jié)合ASP.NET進(jìn)行程序設(shè)計(jì),將SQL Server設(shè)定為數(shù)據(jù)庫(kù)系統(tǒng)。實(shí)現(xiàn)策略上采用分層的結(jié)構(gòu),各個(gè)層次完成明確的任務(wù)。這種開(kāi)發(fā)方法使得各個(gè)層次之間的類(lèi)是相互獨(dú)立的,類(lèi)只提供給外界操作的接口和方法。當(dāng)類(lèi)的內(nèi)部形成某方面的改變時(shí),如果外接口保持不變就不會(huì)對(duì)系統(tǒng)其余部分造成負(fù)面影響。由于采用了高級(jí)語(yǔ)言調(diào)用存儲(chǔ)過(guò)程訪問(wèn)數(shù)據(jù)庫(kù)的方法,當(dāng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)和結(jié)構(gòu)發(fā)生變化時(shí)僅僅對(duì)存儲(chǔ)過(guò)程進(jìn)行修改,而沒(méi)有必要對(duì)高級(jí)語(yǔ)言展開(kāi)修改,從而在很大程度上確保應(yīng)用程序和數(shù)據(jù)保持良好的獨(dú)立性,大幅度優(yōu)化了程序設(shè)計(jì)的整體效率。
參考文獻(xiàn)
[1] 張振蓮.基于.NET的科研管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西北大學(xué),2005.
[2] 沈中林.基于B/S模式的高??蒲泄芾硇畔⑾到y(tǒng)的設(shè)計(jì)[J].中國(guó)民航學(xué)院學(xué)報(bào),2004,22(5):61?64.
[3] 朱健,盧秉亮,劉君英,等.AJAX技術(shù)在Web開(kāi)發(fā)中的應(yīng)用[J].沈陽(yáng)航空工業(yè)學(xué)院學(xué)報(bào),2007,24(2):29?31.
[4] ESPOSITO D. ASP.NET 2.0高級(jí)編程[M].施平安,譯.北京:清華大學(xué)出版社,2009.
[5] 鄭阿奇.ASP.NET程序設(shè)計(jì)教程[M].北京:機(jī)械工業(yè)出版社,2010.
[6] 馬虹,崔忠偉,吉東.基于ASP.NET的實(shí)時(shí)用工呼叫平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2015,5(5):80?81.