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