余佳恕
(廣東技術(shù)師范大學(xué)教育科學(xué)與技術(shù)學(xué)院,廣東 廣州510450)
近年來,互聯(lián)網(wǎng)行業(yè)的高速發(fā)展,網(wǎng)站需求日趨多樣,開發(fā)技術(shù)不斷更新?lián)Q代,網(wǎng)站框架技術(shù)的應(yīng)用也十分廣泛。比如網(wǎng)站前端常用的框架:Angular、React、MVVM模式的Vue 等;網(wǎng)站后端根據(jù)不同開發(fā)語言有不同的框架,比如Mybasic、Spring MVC、ThinkPHP 等。Asp.net 語言則一般采用ASP.NET MVC 或ASP.NET Core 框架。這些開源的框架,都是為了更加有效地提升我們網(wǎng)站建設(shè)的效率。通用的網(wǎng)站框架都有一個(gè)共同的特點(diǎn),就是簡單、高效、靈活,這極大的提高了我們的開發(fā)效率。一般的網(wǎng)站框架是實(shí)現(xiàn)某種功能的半成品,提供了一些常用的工具類和一些基礎(chǔ)通用化的組件,可以供開發(fā)人員在此基礎(chǔ)上,更高效的滿足各自的業(yè)務(wù)需求。本文闡述了一個(gè)基于ASP.NET MVC 與MVVM技術(shù)的小型網(wǎng)站框架開發(fā)與應(yīng)用,該小型網(wǎng)站框架可應(yīng)用于不用行業(yè)的網(wǎng)站,例如公司官網(wǎng)、教育機(jī)構(gòu)網(wǎng)站、學(xué)校網(wǎng)站、學(xué)習(xí)平臺(tái)等。目前該網(wǎng)站框架已開發(fā)出不同的功能模塊,實(shí)現(xiàn)業(yè)務(wù)的時(shí)候只需要調(diào)用起來即可,另外,提供了眾多的可擴(kuò)展API,可以用于二次開發(fā)。
MVVM 是Model-View-ViewModel 的簡寫[1],它是一種基于前端開發(fā)的架構(gòu)模式,十分契合當(dāng)今Web 前端開發(fā)的需求。我們先來理解它的核心思想,MVVM 核心是提供對View 和ViewModel 的雙向數(shù)據(jù)綁定,這使得ViewModel 的狀態(tài)改變可以自動(dòng)傳遞給View,即所謂的數(shù)據(jù)雙向綁定[2]。那么,什么是MVVM呢?在MVVM設(shè)計(jì)模式下,View和Model 之間其實(shí)并沒有直接的聯(lián)系,而是通過ViewModel 進(jìn)行交互,Model 和ViewModel 之間的交互是雙向的因此View 數(shù)據(jù)的變化會(huì)同步到Model 中,而Model 數(shù)據(jù)的變化也會(huì)立即反應(yīng)到View 上。Model 層代表數(shù)據(jù)模型,也可以在Model 中定義數(shù)據(jù)修改和操作的業(yè)務(wù)邏輯;View 代表UI 組件,它負(fù)責(zé)將數(shù)據(jù)模型轉(zhuǎn)化成UI 展現(xiàn)出來,ViewModel 是一個(gè)同步View和Model 的對象。我們可以通過它的技術(shù)模型來理解它們?nèi)叩年P(guān)系,它的設(shè)計(jì)模型如圖1 所示。
ASP.NET MVC 是微軟公司所開發(fā)MVC 模式的ASP.NET Web 應(yīng)用程序框架[3],是網(wǎng)站開發(fā)框架的一種結(jié)構(gòu)體系。ASP.NET 開發(fā)的Web 程序,通過系統(tǒng)化的調(diào)試以及測試后,就可以將其部署在IIS 服務(wù)器程序,用戶通過互聯(lián)網(wǎng)訪問。它十分易于開發(fā),使得測試更加快速和簡捷。先分別來理解它的模型、視圖、控制器三層:Model(模型)表示應(yīng)用程序核心(數(shù)據(jù)庫記錄列表);View(視圖)顯示數(shù)據(jù)(數(shù)據(jù)庫記錄);Controller(控制器)處理輸入(寫入數(shù)據(jù)庫記錄)[4]。它分離了顯示模塊與功能模塊,提高了程序的可維護(hù)性、可移植性、可擴(kuò)展性與可重用性[5],降低了程序的開發(fā)難度。MVC 各部分關(guān)系如圖所示:
圖1 MVVM 設(shè)計(jì)模式的技術(shù)模型
圖2 MVC 各部分關(guān)系圖
該網(wǎng)站框架是采用SQL server 2014 數(shù)據(jù)庫,它具有可伸縮性好、使用方便、與相關(guān)軟件集成程度高等優(yōu)點(diǎn)[6]。這里根據(jù)不同的功能模塊需求進(jìn)行數(shù)據(jù)表的設(shè)計(jì),通用功能部分為用戶表、文章表、欄目表、文件資源表以及系統(tǒng)日志表;業(yè)務(wù)與擴(kuò)展模塊的數(shù)據(jù)表設(shè)計(jì)我們根據(jù)實(shí)際情況進(jìn)行擴(kuò)展設(shè)計(jì),以便用于業(yè)務(wù)功能二次開發(fā),這里不一一列舉。
該框架是基于B/S 結(jié)構(gòu),具有一定的安全性、穩(wěn)定性、靈活變化。網(wǎng)站框架功能結(jié)構(gòu)是根據(jù)不同模塊進(jìn)行模塊化開發(fā)的,主要分為用戶管理、文章管理、欄目管理、文件管理、系統(tǒng)信息與安全管理5 個(gè)通用模塊以及業(yè)務(wù)與擴(kuò)展1 個(gè)延伸模塊組成。圖3 是網(wǎng)站框架主要功能模塊結(jié)構(gòu)圖。
圖3 網(wǎng)站框架主要功能模塊結(jié)構(gòu)圖
(1)用戶管理模塊:該模塊包括使用權(quán)限與個(gè)人信息兩部分,包括用戶的添加、修改、刪除、激活、禁用、調(diào)動(dòng)和密碼初始化、個(gè)人信息修改等。不同用戶有不同的功能,這里按照權(quán)限最小化、功能獨(dú)立化的原則,其中管理員擁有最高權(quán)限。
(2)文章管理模塊:該模塊包括類別、通知公告、留言、評(píng)論、關(guān)鍵字查詢等文章內(nèi)容的管理,用戶可以在這里添加、修改、刪除、審核、查詢文章等。
(3)欄目管理模塊:該模塊的功能有欄目的新增、刪除、審核、轉(zhuǎn)移、修改、合并、置頂、顯示/隱藏欄目等操作,網(wǎng)站首頁的二級(jí)菜單欄以及網(wǎng)站的各個(gè)欄目板塊都可以在這里設(shè)置。
(4)文件管理模塊:該模塊包括網(wǎng)站所有文件資源的增刪改查功能,用戶上傳的附件是分類別進(jìn)行管理的;用戶在進(jìn)行操作時(shí)也可以選擇好已上傳的附件等。
(5)系統(tǒng)信息與安全管理模塊:該模塊可以修改網(wǎng)站名稱、風(fēng)格、端口、FTP 的目錄、郵件服務(wù)器等。安全管理功能是指用戶的登錄記錄、操作操作等都會(huì)被自動(dòng)記錄到系統(tǒng)安全日志表。同時(shí)密碼采用md5 加密技術(shù);單點(diǎn)登錄以及限制登錄次數(shù);同時(shí)登錄驗(yàn)證的時(shí)候支持帳號(hào)密碼、驗(yàn)證碼、密保問題、綁定數(shù)字證書證書四道安全程序。
(6)業(yè)務(wù)與擴(kuò)展開發(fā)模塊:該模塊該小型網(wǎng)站框架最具特色的地方,除了通用的網(wǎng)站管理功能之外,并且可以對系統(tǒng)進(jìn)行業(yè)務(wù)擴(kuò)展開發(fā)。針對不用的需求,制定不同業(yè)務(wù)邏輯。在后臺(tái)通過添加數(shù)據(jù)表表、數(shù)據(jù)段,然后進(jìn)行其他功能業(yè)務(wù)的擴(kuò)展。當(dāng)然,這需要進(jìn)行二次開發(fā)來完善的,這部分功能只提供了擴(kuò)展接口。
該網(wǎng)站框架具有以下特點(diǎn):(1)代碼模板化,公共創(chuàng)建公共類、接口實(shí)現(xiàn)。(2)重用性、通用性。不分行業(yè),只要功能相似就可以稍加修改即可使用(3)高內(nèi)聚,框架各種基礎(chǔ)的功能都封裝好了,只需要在使用的時(shí)候調(diào)用就可以。(4)支持?jǐn)U展開發(fā)。以下是利用該網(wǎng)站框架進(jìn)行二次開發(fā)、自主完善的網(wǎng)站系統(tǒng)具體應(yīng)用:某小型公司展示網(wǎng)站與某小型學(xué)習(xí)平臺(tái)的后臺(tái)管理系統(tǒng)。
圖4 網(wǎng)站框架實(shí)例應(yīng)用一
圖5 網(wǎng)站框架實(shí)例應(yīng)用二
該網(wǎng)站框架對使用者功能結(jié)構(gòu)一目了然,可使用不同的功能模塊。如果有其他需求,可根據(jù)具體業(yè)務(wù)邏輯進(jìn)行二次開發(fā)。這是該網(wǎng)站框架開發(fā)最具特色的地方,合理運(yùn)用好框架才能夠更好的將其優(yōu)勢發(fā)揮出來。同時(shí)也是有利也有弊,有時(shí)候框架中會(huì)有很多根本用不到的功能模塊的代碼,存在局限性。總的來說,基于ASP.NET MVC 與MVVM技術(shù)的小型網(wǎng)站框架開發(fā)及應(yīng)用是以Web 程序員編程思維為基準(zhǔn)去考慮的。通過開發(fā)出一個(gè)結(jié)構(gòu)清晰、層次分明、模塊化的小型網(wǎng)站框架。為網(wǎng)站開發(fā)人員提供了這樣一個(gè)小框架,促使網(wǎng)站在開發(fā)技術(shù)上更快速與高效,對互聯(lián)網(wǎng)行業(yè)也有一定的使用價(jià)值與意義。