Database2Sharp之混合型Winform框架代碼生成


本人一直致力於Winform開發框架的研究和使用,有時候項目要求是傳統Winform的,直接訪問數據庫進行獲取數據;有的時候項目要求WCF框架,以分布式訪問WCF服務獲取數據的,雖然在Winform和WCF框架,都有特定的應用場景和開發思路,但是希望把這兩種傳統式的框架,加以抽象和提煉,形成目前所介紹的混合型框架,這樣所有完成混合型框架改造的通用模塊(或一個小業務模塊),都能無縫式的實現集成使用。這種混合型框架的特點和優點都非常明顯,為我最終實現,一個框架,多個應用的開發平台集成方案邁出堅實的一步。

1、混合型框架的應用前景

當然,本篇文章不是對理論的抽象說明,這一向不是我的風格,前面我已經在隨筆Winform開發框架之框架演化》、《Winform開發框架之混合型框架的實現》、《Winform開發框架之混合型框架的剖析》都對Winform框架的變種,混合型框架進行了比較詳細的介紹,我希望通過實實在在的項目展示,介紹這種框架的優點特點,以及相關的設計理念。這種框架雖然比較通用,但相對於傳統Winform框架和傳統WCF開發框架,都增加了不少項目模塊,也同時增加了一定的復雜度,如果純手工來建立這種項目,會有比較麻煩的痛苦經歷。

因此,本篇文件就是介紹了如何使用代碼生成工具Database2Sharp來生成一個混合型框架的項目,由於我的Database2Sharp能夠獲取所有數據庫的元數據,因此能夠較好實現各種項目架構的生成操作,這種結合代碼工具生成項目的方式,也是我們提高效率,統一代碼風格,減少代碼出錯,提高代碼健壯性,分享框架經驗的最佳方式。

混合型框架可以看成是Winform框架高級版本,可以很好用來實現一個框架,多個應用的開發平台,我們可以在主體業務框架上,根據需要擴展很多應用,如通用模塊有通用權限、通用字典、通用附件管理、通用人員管理。。。。,如果基於業務集成,那么可以把很多小業務也通過這種方式開發,然后通過即插即用的方式實現業務定制化的使用,這些應用都實現了這種混合型的框架,因此集成使用會非常方便。

 

2、代碼生成工具生成混合型框架

混合型框架一般包括業務邏輯模塊(包括BLL、IDAL、DAL、Entity層),服務接口調用模塊(用來整合Winform和WCF接口調用),WCF服務邏輯模塊、WCF服務發布模塊,Winform界面模塊共5個項目的分層,如下所示。

雖然是需要生成有5個項目的代碼,而且每個項目之間還有一些特殊的引用以及各種命名規則,但是這些對於代碼生成工具來說,都是很容易做到的事情。

代碼生成工具,是結合數據庫信息進行代碼生成的過程,因此需要先獲取對應數據庫信息。

第一步,在Database2Sharp左邊的樹形數據庫列表中,單擊展開對應數據庫的詳細表,由於Database2Sharp是一次性加載方式,加載數據庫表的信息同時,也會加載相關的視圖、存儲過程(Oracle、SqlServer)、以及表字段和表之間的關系等等信息。單擊其中一個表,我們可以看到對應該表的字段信息,以及創建表的SQL語句,也就是我們常說的DDL腳本。 

 第二步,在數據庫節點上,單擊鼠標右鍵,選擇【代碼生成】- 【EnterpriseLibrary代碼生成】菜單,開始生成代碼如下所示。

第三步,選擇相應的數據庫以及數據庫表,用於代碼的生成。

第四步,設置相關的代碼生成配置信息,包括項目主命名空間,輸出目錄,以及過濾表名前綴等。

第五步,確認代碼生成操作,一般確認,就會對選定的表進行項目代碼的生成操作,生成一體化的整體性解決方案。

如果項目是要生成基於WCF開發框架的,那么勾選“同時生成WCF服務項目”選項即可,勾選后,可以修改WCF服務的項目名稱,方便創建不同的WCF業務項目。WCF項目是基於VS2010開發環境、.NET4.0框架的項目。

如果項目是生成基於混合型開發框架的,那么勾選“生成混合式框架項目”選項即可,勾選后,“同時生成WCF服務項目”也會默認勾選,因為混合型框架式基於Winform和WCF兩種的混合體項目。WCF項目是基於VS2010開發環境、.NET4.0框架的項目,這是目前最優的配置信息了。

如果勾選生成后打開解決方案,那么代碼生成完成后,就會自動打開項目工程,你可以嘗試編譯,一般情況下,可以完全編譯通過的。

項目生成后,就生成了幾個典型的項目分層結構,如圖所示。

貼上幾個詳細的項目文件結構圖,以便更好了解整體的項目結構。

 

 

代碼生成工具的下載地址:http://www.iqidi.com/Database2Sharp.htm

詳細的代碼生成工具Database2Sharp的介紹文檔:Database2Sharp代碼生成工具-使用幫助.pdf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM