精品一区二区中文在线,无遮挡h肉动漫在线观看,国产99视频精品免视看9,成全免费高清大全

親密接觸Discuz!NT之架構(gòu)篇 -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【salifelink.com - 電腦資料】

    考慮到用戶的實際應(yīng)用需求和面向未來的軟件開發(fā)理念,Discuz!NT在設(shè)計和開發(fā)之初就構(gòu)建了優(yōu)良的架構(gòu),大大提高了軟件的伸縮性、可擴展性和重用性,

親密接觸Discuz!NT之架構(gòu)篇

。本架構(gòu)除了使Discuz!NT自身結(jié)構(gòu)更為清晰和更易于維護以外,也為用戶進行二次開發(fā)和完善論壇個性化提供了極大的方便。

    Discuz!NT采用了如下的四層結(jié)構(gòu),讓我們簡單介紹一下:

    (一)顯示層

    顯示層可由用戶自行進行設(shè)計和修改,用以顯示最終的web頁面界面和論壇數(shù)據(jù)。特別值得一提的是,Discuz!NT在前臺沒有選擇絕大多數(shù)ASP.net程序所使用的控件模式,而是另外實現(xiàn)了一套方便好用的模板機制。本模板機制使站長可以用html(或xhtml)來制作模板,然后由Discuz!NT的模板轉(zhuǎn)換功能轉(zhuǎn)換為Asp.net頁面程序(即aspx)文件,這樣做的好處有兩點:

    1)提高了易用性:ASP.net的ascx文件對于沒有學(xué)習(xí)過ASP.net或?qū)ζ溟_發(fā)模式?jīng)]有了解的人來說,是存在難度的,而Discuz!NT的模板機制使得用戶只需要簡單了解html就可以制作ASP.net的論壇界面,站長可以輕松、自由地設(shè)計和修改界面了。

    2)提高了性能:一般情況下,前臺程序不使用控件模式,而使用Discuz!NT的模板轉(zhuǎn)換功能,性能將會得到顯著提升。例如Discuz!NT的模板轉(zhuǎn)換功能不用數(shù)據(jù)綁定,不必判斷數(shù)據(jù)來源和轉(zhuǎn)換數(shù)據(jù)類型,不用頁面控件,避免了使用ViewState,從而大大提高了頁面性能。此外控件模式往往追求功能齊全,而當你只需要其中一部分功能時,大量無用的代碼則會拖累頁面性能。

    更為突出的是,Discuz!NT顯示層的靈活性很高,支持在模板中定義導(dǎo)入的命名空間和插入c#代碼,從而使顯示層可以方便的插入其它程序集的數(shù)據(jù)。

    (二) 頁面數(shù)據(jù)處理層

    Discuz!NT的頁面數(shù)據(jù)處理層主要負責(zé)web頁面的數(shù)據(jù)輸入與輸出處理,包括檢測用戶數(shù)據(jù)提交的有效性校驗,以及為頁面程序所需要的數(shù)據(jù)源。本層實現(xiàn)了論壇的主要需求,完成了前臺各個頁面的功能流程,例如用戶發(fā)貼時,頁面數(shù)據(jù)處理層首先判斷用戶權(quán)限,然后校驗用戶提交的數(shù)據(jù)是否合法,最后調(diào)用對應(yīng)業(yè)務(wù)對象封裝類中的方法,將用戶的數(shù)據(jù)實際存儲,

電腦資料

親密接觸Discuz!NT之架構(gòu)篇》(http://salifelink.com)。

    如果站長希望用戶在前臺輸入、輸出時,能同時與其它程序進行交互,那么就可以在該層進行處理,例如:一個釣魚愛好者網(wǎng)站想在Discuz!NT用戶個人資料中增加魚竿類別的選項,并存儲到主網(wǎng)站用戶信息數(shù)據(jù)庫,那么就可以在前面的顯示層增加魚竿類別,然后在頁面數(shù)據(jù)處理層中,調(diào)用將該數(shù)據(jù)存儲入主網(wǎng)站用戶信息數(shù)據(jù)庫的方法,完成存儲。

    Discuz!NT的頁面數(shù)據(jù)處理層可以訪問數(shù)據(jù)庫,但并不推薦開發(fā)者增加在該層與數(shù)據(jù)庫進行交互,數(shù)據(jù)庫的訪問在下面要介紹的業(yè)務(wù)對象封裝層中。

    (三) 業(yè)務(wù)對象封裝層

    以論壇來說,用戶、主題、帖子、版塊、用戶組等都屬于業(yè)務(wù)對象的范疇,Discuz!NT將業(yè)務(wù)對象描述為對象類,并提供了實現(xiàn)對這些對象進行各種操作的豐富方法。以主題對象來說,對主題的封裝方法里就實現(xiàn)了創(chuàng)建、修改、刪除、更新等操作,Discuz!NT內(nèi)部是采用這些方法來處理主題的,同樣,開發(fā)者也可以直接調(diào)用這些方法來實現(xiàn)對Discuz!NT的具體操作,而不必自己操作數(shù)據(jù)庫。

    (四)數(shù)據(jù)庫訪問層

    數(shù)據(jù)庫訪問層提供了對不同數(shù)據(jù)庫訪問方法的封裝,目前Discuz!NT分別擁有對Access和SQLServer數(shù)據(jù)庫的訪問封裝,對于SQLServer用戶來講,還可以通過修改Discuz!NT的數(shù)據(jù)庫存儲過程來高效地實現(xiàn)一些特定的需求。

    上面簡單介紹了Discuz!NT的四層結(jié)構(gòu),總體而言,論壇就像是一個飯店,論壇訪問者是客人;顯示層則是飯店餐桌和大廳,使客人的就餐場所;頁面數(shù)據(jù)處理層為服務(wù)員,負責(zé)接收客人的點菜和向廚師下單;業(yè)務(wù)對象封裝層是廚師,負責(zé)制作菜肴并返回給服務(wù)員,數(shù)據(jù)庫訪問層是采購員,用來購置廚師所需要的原材料;架構(gòu)就作為飯店流程或規(guī)章制度,通過完善布置各個成員的分工、協(xié)作,從而給客人一個良好的就餐環(huán)境和服務(wù)。

    另外,無論開發(fā)者使用的是c#、vb.net還是其它任何支持.net的語言,都可以直接調(diào)用上述四個層中的公開方法,來實現(xiàn)對Discuz!NT的調(diào)用。隨著Discuz!NT完善后的開源,必將有越來越多的開發(fā)者參與開發(fā),相信在我們共同的努力之下,Discuz!NT將會愈加完善。

    點擊閱讀更多學(xué)院相關(guān)文章>>

    分享到

最新文章