建立模塊開發(fā)項目
開發(fā)DNN模塊可以通過兩種開發(fā)環(huán)境來進行:
一,、在整個DNN解決方案下建立模塊開發(fā)項目。
優(yōu)點:可以方便的引用DNN組件,,參考其他模塊的實現(xiàn)方式,,可以隨時通過“轉(zhuǎn)到定義”的操作查看DNN中該方法的定義,調(diào)試起來也比較容易,。
缺點:速度慢,。打開項目和編譯項目都要費大量時間。
二,、用單獨的方式建立模塊解決方案,。
優(yōu)缺點正好和第一種相對,不過在實際開發(fā)中速度是關(guān)鍵,,下面我就單獨講講我在以單獨方式建立模塊開發(fā)解決方案中的一些心得,。
建立單獨的解決方案進行模塊開發(fā)需要解決三個問題:
1、在什么地方建立解決方案有助于邊開發(fā)邊測試,?
2、如何對原有dll進行引用,,生成的dll又到那個目錄中,?
3、怎樣進行調(diào)試,?
欲善其事,,必先利其器。首先,,我們應該為開發(fā)DNN模塊準備以下工具:
DNN Project Templates :一個由dnnjungle提供的VS.NET 2003下的功能插件,。安裝后,可以直接通過它在VS環(huán)境來創(chuàng)建DNN項目和一些DNN中所用的項,。
CodeSmith Templates:一組生成DNN模塊業(yè)務邏輯層代碼和數(shù)據(jù)訪問層代碼所用到的,,CodeSmith代碼生成模板,。
CodeSmith:代碼生成工具,結(jié)合上述模塊,,可以大大加快代碼編寫工作,。(http://www./)
相關(guān)網(wǎng)址:http://dnnjungle./Development/Templates/tabid/28/Default.aspx
當上面的工具都安裝好后就可以開始我們的模塊開發(fā)工作了。該模塊用VS.NET 2003開發(fā)環(huán)境,,以DNN3.3.3做為平臺,,數(shù)據(jù)庫使用SQL Server數(shù)據(jù)庫。
1,、創(chuàng)建DNN模塊表示層項目,。運行VS,創(chuàng)建DNN模塊開發(fā)項目,。如果,,你安裝好DNN Project Templates后,在創(chuàng)建新項目時,,在項目類型處將會出現(xiàn)“Visual Basic Project for DotNetNuke 3”和“Visual C# Project for DotNetNuke 3”這兩個新項目,。在這里我選擇VB.NET作為開發(fā)語言,其實用C#是一樣可以開發(fā)DNN模塊的,。選擇“DNN Module”模板,,項目名稱設置為:Article,項目位置選擇DNN程序所在文件夾的DesktopModules目錄,,這樣有利于邊開發(fā)邊測試,。如下圖:
2、創(chuàng)建DNN模塊數(shù)據(jù)訪問層項目,。點擊添加“新項目”,,選擇“DNN SqlDataProvider DAL”,項目名稱為:Article,。項目位置:DesktopModules\Article\Providers\DataProviders,。如下圖:
3、設置DNN模塊表示層項目屬性添加引用,。首先,,該項目需要添加DNN程序Bin目錄下的DotNetNuke.dll組件的引用。項目屬性到不用修改,,默認設置即可,。啟用該項目,默認導入了一些DNN的命名空間,,這樣你就不必再每個文件中引用這些命名空間了,。但是在以后文章中我還是會介紹到這些命名空間的作用,即常用功能,。
4,、設置DNN模塊數(shù)據(jù)訪問層項目屬性添加引用,。首先,該項目需要添加DNN程序Bin目錄下的DotNetNuke.dll和Microsoft.ApplicationBlocks.Data.dll組件的引用,,并且還要添加表示層的項目的引用,。其次,將該設置為啟動項目,。設置項目生成路徑為DNN程序的bin目錄,。這樣每次編譯后都可以及時調(diào)試。
5,、編譯程序,,目前這個地方改的可以編譯通過就可以了,以后我們還要重新對它進行編寫,。
注:DNN3.3.X下開發(fā)的模塊,,可以在DNN4.3.X上使用。
來看看,,我們建立的開發(fā)項目吧,,如下圖:
MyCompany.Article項目
App_LocalResources :語言包文件夾,存放與用戶控件同名的資源文件
Components :業(yè)務邏輯代碼文件夾
ArticleController.vb:業(yè)務邏輯對像,,實現(xiàn)對像/關(guān)系映射,,也就是實現(xiàn)業(yè)務實體對像到數(shù)據(jù)庫的轉(zhuǎn)換
ArticleInfo.vb:業(yè)務實體對像
DataProvider.vb: 支持多數(shù)據(jù)庫訪問Provider,相當于一個到多種數(shù)據(jù)庫訪問接口
Documentation : 可以放一些開發(fā)文檔和用戶說明書(如果制做安裝包不需要時,,請把它從項目中排除)
Installation : 可以放一些生成好的安裝包做為備份使用,,制做安裝包前,需要把它從項目中排除
Providers : 放置一些模塊相關(guān)的Provider,,目前只有DataProviders,,如果你還有其他需要兼容括充的業(yè)務,你也可以編寫其他的Provider,。例如:文章模塊將來需要用到圖表顯示文章查看情況,。網(wǎng)上可以使用的圖表組件很多,你就可以編寫一個ChartProvider,,提供訪問的統(tǒng)一接口,。然后編寫相應圖表組件的Provider實現(xiàn),如:ZedGraphProvider,,WebChartProvider等,。這樣就可以通過在web.config中進行設置,,靈活的兼容多種圖表組件。Provider模式是DNN中一個應用非常廣范設計思想,,可以說是DNN的一個亮點,。
Article.ascx :做為文章列表顯示控件
ArticleEdit.ascx :做為文章新建/編輯控件
ArticleShow.ascx:目前還沒有,再以后新建做為文章顯示控件
icon_Article_32px.gif :模塊圖標
module.css :模塊所用到的樣式
Settings.ascx :做為設置文章列表分頁大小控件
MyCompany.Article.SqlDataProvider 項目
01.00.00.SqlDataProvider 模塊數(shù)據(jù)庫對像創(chuàng)建腳本
SqlDataProvider.vb SQL Server數(shù)據(jù)庫訪問具體實現(xiàn)類
Uninstall.SqlDataProvider 模塊數(shù)據(jù)庫對像刪除腳本
調(diào)試程序
有一篇文章有詳細介紹:http://www.cnblogs.com/leeichang/archive/2004/11/16/64418.html
大致就是,,通過附加進程,,來調(diào)試程序,方便快速,,十分好用,。那篇文章已經(jīng)介紹的非常好了,我就不多講,,只是大家要注意:默認情況下,,ASP.NET 進程(對于 Windows 2000 和 Windows XP 上的 IIS 5.0 和 IIS 5.1 為 aspnet_wp.exe,對于 Windows Server 2003 上的 IIS 6 為 w3wp.exe)作為 ASPNET 進程運行,。因此,,要調(diào)試它,您必須具有運行 ASP.NET 的計算機的管理員特權(quán),。
DNN模塊項目初步建立完成了,,我們就需要在DNN中添加該模塊,看看該模塊是否能正常添加運行,,為下一步開發(fā)打好基礎,。在《DNN模塊開發(fā)系列文章(3)——在DNN中添加模塊定義》一文中我將詳細介紹,如何在DNN添加一個模塊,。