余楊奎
(湛江市廣播電視大學,廣東 湛江 524003)
基于ASP.NET“一網(wǎng)+多庫”平臺的設計與實現(xiàn)*
余楊奎
(湛江市廣播電視大學,廣東 湛江 524003)
“一網(wǎng)+多庫”是指一個平臺連接不同服務器上的數(shù)據(jù)庫。以ASP.NET和C#為技術手段,實現(xiàn)一個平臺連接不同服務器上的SQL SERVER和MySQL數(shù)據(jù)庫,重點提出.NET三層架構。在數(shù)據(jù)層、業(yè)務層和表示層使用示例代碼分別操作SQL SERVER和MySQL兩種數(shù)據(jù)庫,完成Repeater控件和Pager自定義控件進行存儲過程分頁。在構建Web平臺實現(xiàn)資源共享具有一定的指導意義。
開發(fā)技術;一網(wǎng)+多庫;存儲過程;分頁
“互聯(lián)網(wǎng)+”時代,現(xiàn)代信息技術在現(xiàn)實生活中的應用越來越廣泛,對Web開發(fā)技術提出更高的要求。“N網(wǎng)+一庫”是指一個數(shù)據(jù)庫通過結構化設計,滿足多個平臺連接?!耙痪W(wǎng)+多庫”是指一個平臺連接不同服務器上的數(shù)據(jù)庫。本文以一個平臺連接不同服務器上的SQL SERVER和MySQL數(shù)據(jù)庫開發(fā)為例。
筆者在廣播電視大學從事技術開發(fā)多年,參與湛江終身學習網(wǎng)構建工作中,接觸Nginx框架反向代理模型構建網(wǎng)站群集技術,實現(xiàn)“N網(wǎng)+一庫”構建學習型平臺?!癗網(wǎng)+一庫”對數(shù)據(jù)庫結構設計提出很高的要求,在開發(fā)實踐中我們發(fā)現(xiàn),數(shù)據(jù)庫的設計往往不能滿足需求。廣播電視大學經(jīng)過三十多年的沉淀,深度融合信息技術的教育教學手段[1]。基層電大結合自身特色開發(fā)了一系列實用性平臺,由于缺少強大的數(shù)據(jù)庫結構設計理念,使得平臺之間沒有耦合,各自獨立,從而出現(xiàn)“信息孤島”問題。特別是在廣播電視大學轉型升級為開放大學時期,不能摒棄過去優(yōu)質(zhì)的學習資源。同時,筆者在開發(fā)信融天下P2P網(wǎng)貸系統(tǒng)過程中發(fā)現(xiàn)網(wǎng)貸系統(tǒng)功能單一,會出現(xiàn)很多壁壘,阻礙在行業(yè)內(nèi)發(fā)展,P2P平臺發(fā)展需要更多的功能為平臺提供支撐,例如:積分功能。網(wǎng)貸系統(tǒng)強調(diào)安全,將這些支撐的子系統(tǒng)數(shù)據(jù)共享到網(wǎng)貸系統(tǒng)數(shù)據(jù)庫中,可能會導致數(shù)據(jù)混亂,帶來不必要的損失。
ASP.NET支持Web應用程序開發(fā),運用了.netframework提供的功能,與PHP、JSP構成目前三大主流Web開發(fā)技術。與其他Web開發(fā)技術相比,它打破了不能支持強類型語言編寫的局限,并且支持面向對象編程。采用ASP.NET技術進行開發(fā)的所有Web程序都可以無限制的支持異??刂?、類型安全、繼承和動態(tài)編譯[2]。它使用Visual Studio.NET開發(fā),界面友好,支持多種語言,集頁面、控件、代碼和服務于一體,技術成熟,成為眾多Web開發(fā)者的首選[3]。JSP和PHP雖然開放源代碼,由于英文資料多,對開發(fā)者要求比較高,不容易上手[4]。
筆者采用Browser/Web Server[5]模式,這種結構以HTTP為傳輸協(xié)議,用戶通過瀏覽器訪問數(shù)據(jù),它具有良好的跨平臺性、可擴展性和易更新升級等優(yōu)點[6]。由IE瀏覽器、服務器和數(shù)據(jù)庫組成。平臺采用ASP.NET三層架構開發(fā)技術,分別是數(shù)據(jù)層、業(yè)務層(數(shù)據(jù)訪問層DAL層和業(yè)務邏輯層BLL層)和表示層。在開發(fā)過程中,在業(yè)務層還會用到一些輔助類和方法,采用繼承的方式進行調(diào)用。如圖1所示。
圖1 架構設計圖
本文創(chuàng)新點在于,使用ASP.NET技術連接不同服務器上的SQL SERVER和MySQL數(shù)據(jù)庫,使用自定義控件pager在表示層進行分頁顯示,解決了業(yè)務層采用相同方法連接不同數(shù)據(jù)庫存儲過程完成數(shù)據(jù)調(diào)用的過程。
數(shù)據(jù)層是最底層,主要負責數(shù)據(jù)庫的連接。本文利用ADO.NET連接不同服務器上的SQL SERVER和MySQL數(shù)據(jù)庫,完成對數(shù)據(jù)的操作,在Web.config文件完成對數(shù)據(jù)連接的配置。關鍵代碼如下:
業(yè)務層使用C#語言編寫類,它主要用來封裝業(yè)務邏輯和數(shù)據(jù)訪問邏輯,因此除了業(yè)務邏輯層(BLL層)和數(shù)據(jù)訪問層(DAL層)以外,還會有一些具體的實體類和公用及通用類。為避免過多出現(xiàn)sqlconnection,mysqlconnection等類和方法,便于維護,微軟提供一些靜態(tài)類sqlHelper.cs和SqlDataProvider.cs來處理Sql server數(shù)據(jù)庫的連接。筆者基于這種方式,對靜態(tài)類進行分析,在業(yè)務層增加MySqlHelper.cs和MySql-DataProvider.cs來處理Mysql數(shù)據(jù)庫的連接。
在BLL層用于數(shù)據(jù)業(yè)務流程,實現(xiàn)與數(shù)據(jù)訪問層數(shù)據(jù)(DAL層)的對接,用于上下層交互的邏輯處理。在業(yè)務層設計中,業(yè)務邏輯層(BLL層)本身沒有太大的意義,可以在BLL層對相關類進行繼承,然后重載相關操作。在平臺架構中,筆者選擇分頁作為代碼示例,在實現(xiàn)數(shù)據(jù)訪問層數(shù)據(jù)對接后,將查詢結果存儲在Repeater控件中進行分頁。
在DAL層真正實現(xiàn)對數(shù)據(jù)庫的操作,包括對數(shù)據(jù)庫中數(shù)據(jù)的查詢、增加、修改、更新和刪除操作。筆者按照BLL層的代碼示例,將DAL層對應代碼展示。
表示層顯示業(yè)務處理結果,為用戶實現(xiàn)人機交互和平臺展示,負責提供業(yè)務界面展示,并根據(jù)用戶請求調(diào)用不同的業(yè)務邏輯[7-9]。在表示層設計時可以根據(jù)用戶所選的控件,通過GET和SET方法來完成實體類屬性的操作,以完成數(shù)據(jù)的獲得與顯示[10]。筆者在本文采用自定義控件pager完成分頁。
筆者為方便分頁調(diào)用,將分頁設置為自定義控件,一方面可以在各頁面進行調(diào)用,另一方面可以設置不同的顯示樣式。分頁自定義控件HTML編碼如下:
本文提出在業(yè)務層采用相同方法連接不同數(shù)據(jù)庫存儲過程完成數(shù)據(jù)調(diào)用的過程,在這里首先要解決存儲過程分頁的程序,一方面保證傳輸?shù)膮?shù)一致,另一方面符合相應數(shù)據(jù)庫存儲過程編寫的語法。
傳遞參數(shù)有:in pagesize int,in pageindex int。
本文在Nginx框架反向代理模型構建網(wǎng)站群集技術基礎上,逆向發(fā)散“N網(wǎng)+一庫”開發(fā)平臺思維,提出“一網(wǎng)+多庫”技術方案?;贏SP.NET“一網(wǎng)多庫”平臺的設計,從ASP.NET三層架構出發(fā),對數(shù)據(jù)庫進行連接,通過sql Server和MySql數(shù)據(jù)庫存儲過程完成分頁,增加自定義控件來進行分頁顯示。存儲過程分頁優(yōu)勢在于提高了數(shù)據(jù)讀取的速度,不同于傳統(tǒng)分頁遍歷整個數(shù)據(jù)庫中的數(shù)據(jù),增加數(shù)據(jù)庫讀取負擔。這項技術提出的優(yōu)勢包括:第一,可以為構建各種社會資源的協(xié)同學習型平臺提供有力的技術保障;第二,在網(wǎng)貸系統(tǒng)開發(fā)上,將業(yè)務邏輯和功能支撐數(shù)據(jù)剝離開來,有效提高了網(wǎng)貸系統(tǒng)的安全等級;第三,對企事業(yè)單位都有內(nèi)網(wǎng)、外網(wǎng)構建,在信息顯示方面,提供技術支持。
在技術實踐過程中筆者發(fā)現(xiàn),“一網(wǎng)+多庫”技術單純解決數(shù)據(jù)顯示分頁是不夠的,大部分數(shù)據(jù)信息包含圖片、視頻或音頻資源,還需要進行服務器資源同步。另外,“一網(wǎng)+多庫”技術只能將Sql server和MySql數(shù)據(jù)庫中的數(shù)據(jù)進行歸類顯示,還無法做到穿插顯示。
[1]李光先.廣東開放大學辦學特色研究[J].廣東開放大學學報,2016(6):2-5.
[2]謝振華.基于Asp.net技術的網(wǎng)站開發(fā)架構設計[J].電腦知識與技術,2017.2:94-95
[3]李萍,王得燕,楊文珺.ASP(C#)動態(tài)網(wǎng)站開發(fā)案例教程[M].機械工業(yè)出版社,2011.
[4]馮菁.ASP.NET中DES算法加密與解密的應用[J].陜西理工學院學報(自然科學版),2017.2:64-68
[5]閆秀婧,鞏文.基于Web的林業(yè)科技信息管理系統(tǒng)的研究與開發(fā)[J].北京林業(yè)大學學報,2005.S2:195-199
[6]李蘭友,楊曉光編著.ASP.NET實用程序設計[M].清華大學出版社,2005.
[7]李樹金,羅宏偉.基于.NET的工資查詢系統(tǒng)設計與實現(xiàn)[J].軟件導刊,2017100(2):102
[8]王孝明,胡健,陸坤等.基于.NET平臺可復用軟件框架的設計與實現(xiàn)[J].計算機工程,2004.30(22):76-78
[9]李園,陳世平.MVC設計模式在ASP.NET平臺中的應用[J].計算機工程與設計,2009.30(7):3180-3184
[10]高楊.基于.NET平臺的三層架構軟件框架的設計與實現(xiàn)[J].計算機技術與發(fā)展,2017.2:77-80,85
Design and implementation of“one network and multiple databases”platform
Yu Yangkui
(Zhanjiang Radio&TV Univsity,Zhanjiang,Guangdong 524003,China)
"One network and multiple databases"refers to that one platform connects multiple databases which are on different servers.Using ASP.NET and C#as technical means,a platform to connect SQL SERVER and MySQL databases on different servers is realized,and.NET three layer architecture is the emphasis.In the data layer,business layer and presentation layer,the sample codes are used to operate SQL SERVER and MySQL two kinds of databases respectively,to realize the storage procedure paging with the Repeater control and the Pager custom control.It has some guiding significance,in the construction of Web platform to realize the resource sharing.
development technology;one network and multiple databases;storage procedure;paging
TP311.1
A
1006-8228(2017)10-20-05
2017-08-11
2015年度湛江市科學技術局重大科技專項“信融天下互聯(lián)網(wǎng)金融P2P網(wǎng)貸系統(tǒng)研發(fā)及平臺運營”(15A102)
余楊奎(1983-),男,安徽安慶人,碩士,計算機講師,主要研究方向:Web程序開發(fā)。
10.16644/j.cnki.cn33-1094/tp.2017.10.007