序
DNN做為一個優秀的門戶網站框架,可以通過安裝各種功能模塊的方式擴充應用。正是通過這一優秀的功能,DNN框架可以實現:文章管理,圖片管理,文檔管理,論壇,博客,商店,調查,FAQ等等各種各樣滿足實際需求的模塊。通過這個強大的框架支持,我們可以很容易的實現這些模塊。比如:權限控制,多語言支持,多數據庫支持,搜索,聚合,皮膚等功能,我都可以很容易的通過框架實現。如果是在平時,光是實現這些基礎功能我們就需要花去大量的時間。現在有了DNN框架的支持,我們就可以集中精力投入到模塊的業務邏輯和流程上,從而大幅度提高開發效率和質量。
《DNN模塊開發系列文章》將通過開發一個簡單的文章模塊(Article)為例,講解整個模塊的開發流程,和模塊相關的一些DNN命名空間功能,如何實現模塊搜索、聚合、導入導出等擴展功能,以及後期如何維護和升級DNN模塊。
一般來說DNN模塊開發有以下6個步驟,我也將安照每個開發環節,講講我在DNN模塊開發中的心得:
1、分析設計(確定模塊功能,確定數據字段表結構,確定數據表名稱,確定解決方案名稱等幾個工作)
2、建立開發環境(確定整個模塊的文件結構,講解DNN模塊需要用到的dll和命名空間,以及這些命名空間的功能)
3、程序設計(設計需要幾個控件來實現,每個控件的作用名稱)
4、程序編碼(介紹使用CodeSmith,進行數據訪問層、業務邏輯層和存儲過程的編碼)
5、實現模塊的擴展功能(如:搜索,聚合,導入導出)
6、生成安裝腳本,打包程序。(講解如何高效正確的編寫安裝腳本和生成安裝包)
分析設計
首先講講這個文章模塊將要實現的功能:一個簡單的文章模塊,提供發布文章(包括作者,標題,內容,發布時間),列表顯示(數字分頁,需要設置分頁大小),需要提供導入導出聚合和DNN中檢索功能。
根據上述需求描述,我確立了以下表結構
文章信息表:MyCompany_Article
ArticleID 文章ID int 主鍵
ModuleID 模塊ID int 關聯模塊信息表(Modules)
Title 標題 nvarchar(225)
Content 內容 ntext
CreatedByUser 作者 int 此處存用戶ID
CreatedDate 創建時間 datetime
注:因為DNN可以安裝多個功能模塊,為了不和其他模塊發生沖突,最好以公司名+模塊功能描述的方式來命名。如果你的文章信息表其名為Article就很容易和其他文章沖突。
解決方案名稱也遵循公司名+模塊功能描述的方式來命名,所以我確定模塊解決方案名稱為MyCompany.Article。
通過上述分析,我們基本清楚了這個模塊要實現的功能,下面就可以實際動手開發了。下一篇文章是《DNN模塊開發系列文章(2)——建立模塊開發項目》,將講述如何建立一個簡單高效的模塊開發項目和組織一個清晰的文件結構。