NBear的設計目標是盡最大可能減少程序員的重複勞動、提高開發效率、提升代碼的可維護性和整體質量。
官方網站:http://nbear.org
中文教程目錄索引:http://www.cnblogs.com/teddyma/archive/2006/11/07/553562.html
示例程序:從官方網站下載NBearVXXX_tutorials.zip,解壓後見tutorials目錄。
本文提到的NBear代碼生成工具,主要是配合NBear框架更快速開發項目的一種代碼生成工具。主要工具是根據數據庫生成NBear框架中ServiceInterfaces層ServiceImpls層的代碼。提高開發效率。接合本身NBear所帶的實體生成工具,和配置文件生成工具。加上本文中的這個工具,可以大大提高項目的開發時間,開發人員只用編寫跟業務有關的代碼,框架相關的代碼,基本上這幾個工具,都可以自動生成了。
一、創建應用程序解決方案
1.1 打開VS2005開發環境,新建一個空的解決方案Solution。
1.2 向Solution中添加兩個新建的C#類庫工程,兩個類庫工程的名稱分別爲EntityDesigns和Entities,刪除IDE自動創建的Class1.cs文件。
1.3 向Solution中再添加兩個新建的C#類庫工程,兩個類庫工程的名稱分別爲ServiceInterfaces和ServiceImpls,刪除IDE自動創建的Class1.cs文件。
1.4 向Solution 中新建一個名叫WebApplication的ASP.NET Web應用程序,爲WebApplication添加一個Web.config文件。
1.5 項目依賴設置:
WebApplication -> Entities, ServiceInterfaces
ServiceInterfaces -> Entities
ServiceImpls -> Entities, ServiceInterfaces
注:設置完依賴後,記得添加項目引用,並在各項目中添加NB的相關dll
1.6相關引用
WebApplication需:NBear.Common.dll,NBear.Data.dll和NBear.IoC.dll的引用
ServiceInterfacesf需:NBear.Common.dll和NBear.IoC.dll的引用
ServiceImpls 需: NBear.Common.dll,NBear.Data.dll和NBear.IoC.dll的引用
Entities需:NBear.Common. dll
EntityDesigns需:NBear.Common.Design.dll的引用,因爲每一個設計實體接口必須繼承自NBear.Common.Design.Entity這個接口
記得using
一、從數據庫到實體
2. 在EntitiyDesigns工程中新建一個代碼文件EntityDesigns.cs,添加using System和using NBear.Common.Design設置namespace爲EntityDesigns。並將剛纔從DbToEntityDesign複製的代碼粘貼至該文件中。
二、從實體設計代碼生成實體代碼、實體配置文件
3.3 點擊Generate Configuration按鈕,將生成的代碼保存到website工程下的名爲EntityConfig.xml的新文件中。
三、使用Nbear代碼工具生成代碼
打開工具後,在系統菜單中找到參數配置。配置好數據庫類型及相應的鏈接字符串,將項目的頂級名字空間設置好(PX.ServiceInterfaces)那這裏要設置成PX,導出路徑設置成你項目的根目錄(一般是跟解決方案.sln同一路徑,這樣生成時,代碼自動會生成到解決方案的相應目錄中,然後在IDE中,點擊解決方案上方的顯示所有文件按鈕,將生成好的.cs包括到項目中就可以了)
工具說明:本工具用在數據庫表很多時,纔會發揮大的作用,主要是生成ServiceInterfaces,ServiceImpls這兩層的代碼,ServiceImpls中使用了partial關鍵字,用戶自己寫的代碼要放在ServiceUS.cs中,以免當數據庫修改後,二次生成後,把用戶自己寫在Service裏的代碼覆蓋。
四、使用實體及NBear.Data.Gateway訪問數據庫
1.W
設置website的Web.config文件,添加一個entityConfig section以包含EntityConfig.xml這個實體配置文件,並設置數據庫連接字串。下面是設置完的Web.config,注意,粗體的部分都是我們添加的代碼(注意修改數據庫登錄密碼。):
xmlversion="1.0"encoding="utf-8"?>
<configuration>
<configSections>
<sectionname="castle"type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor"/>
<sectionname="entityConfig"type="NBear.Common.EntityConfigurationSection, NBear.Common"/>
< SPAN>configSections>
<entityConfig>
<includes>
<addkey="Sample"value="~/EntityConfig.xml"/>
< SPAN>includes>
< SPAN>entityConfig>
<castle>
<components>
<componentid="CurriculumClass"service="PX.ServiceInterfaces.ICurriculumClass, PX.ServiceInterfaces"type="PX.ServiceImpls.CurriculumClassService, PX.ServiceImpls"/>
< SPAN>components>
< SPAN>castle>
<connectionStrings>
<addname="pxinfo"connectionString="Server=100.100.100.100;Database= info;Uid=sa;Pwd=sa"providerName="NBear.Data.SqlServer.SqlDbProvider"/>
< SPAN>connectionStrings>
<appSettings/>
<system.web>
5.3 好了,到目前爲止,實體設置和配置完畢了。下面我們將開始討論IoC模塊的使用。