首先,請不要忙著看這篇文章,嘗試去官方網站下載一個最新版本的來安裝看看,仔細看看安裝說明文檔、各種技術的白皮書,DNN做得很全很仔細,連版本代碼差異都精細到每行代碼。
為什麼不去仔細研究呢?
DNN到底是啥來頭?DNN可以追溯到ASP.NET Starter Kits的ASP.NET Portal,這個東西仍然可以在asp.net網站中找到。相關的文章我之前也寫過,請自行搜索。ASP.NET Portal之後,出現了IBuySpy,也就是大家熟悉的IBS,這個比ASP.NET Portal進化了不少,使用了大量的.NET技術,也就是DNN的雛形。2002年,IBS給市場印證了其局限性不能滿足用戶需求,DNN1.x推出了,它在IBS的基礎上主要改善了模塊功能,接下來的DNN2.0.x更是把整個內核重寫,帶來了革命性的Skin。
DNN在外國到底有麼受歡迎?
1、DotNetNuke:http://www.dotnetnuke.com/官方站點每天的注冊/訪問量,大家可以看看其首頁右邊的在線統計;
2、DNN論壇http://www.asp.net/Forums/ShowForum.aspx?tabindex=1&ForumID=90是比較熱的,相對ASP.NET網站上的其它論壇來說;
3、DNN在眾多免費/收費Portal中應用甚廣;
4、DNN2.0.x發布的時候,在微軟VS-Live! Conference中演示過,呵呵;
在研究的2個多月中,我感覺,與其等待別人來喂自己,到不如自己去覓食,或許這樣比喻不貼切,意思就是說,動手去研究,比等待別人來教自己來得實際。
DNN倡導的是一種准備就緒、動態的、100%互動的數據驅動網絡門戶框架。
DNN最大的特點是系統框架、DSL(數據存儲層)、DAL(數據訪問層)、BLL(業務邏輯層)、PL(呈現層)完全分離。系統開發人員、業務開發人員、美工和DBA(數據庫管理員)都是“互不相干”的。
為了和.NET 2005盡量兼容,DNN應用了大量的所謂Provider(提供者)/Factory(工廠)模式來實現了其廣泛的擴展性,可能你會覺得要僅僅實現一個數據的更新,要在3個類中實現,但當你要在MS SQL、ACCESS、MySQL、Oracle或XML之間自由切換,那麼,你將會發現DNN這種模式是會令你愉快的。
DNN的另外一個特性是其Skin(外觀),它實現了從Portal(門戶)、Tab(欄目)到Module(模塊)各個層次的動態外觀,每個Skin分Skin和Container(容器),Container可以理解成DNN的模塊區域,每個模塊都包括在一個Container中。DNN的Skin和動態Module是密不可分的。DNN的Tab和Module定義已經到達了WYSIWYG這個層次了,不過我認為它不能做到集中處理。
DNN的每個Module都可以理解成一個積木,你可以隨時把這個積木放到任何欄目的任何位置,你甚至可以隱藏它。不過DNN對每個Module的數據處理都沒有做到集中,Module刪除了,並不對自動刪除對應的數據,時間一長就產生大量冗余數據。而且沒有集中處理,非常不直觀。
以上缺陷我都在實際應用中改善了。
如果你僅僅認為DNN的Skin僅僅是改變一下CSS和換一下圖片,如果認為.Text可以和DNN比較,那麼,你都錯了。隨著深入DNN的內核,絕對讓你改觀。
DNN接下來將會在10月份推出2.2x,改進包括:
1、門戶搜索;
2、友好URL,路徑不再顯示/default.aspx?tabid=xx,而可能是/portal/0/tab/11/page/;
3、多語言;