Winform开发框架之混合型框架的实现
我在之前一篇文章《Winform開發框架之框架演化》中,介紹了傳統Winform開發框架、傳統WCF開發框架、離線式WCF開發框架、混合式WCF開發框架,其中前面兩種就是大家比較熟悉的框架了,后面的離線式WCF開發框架,我在《Winform開發之離線式WCF開發框架的實現介紹》一文中也做了闡述,離線式的WCF開發框架,可以看做為傳統Winform開發框架+WCF同步模塊而成,本文繼續探討這方面的框架設計和實現,重點介紹混合式WCF開發框架的設計思路及具體實現。
Winform開發框架之混合型框架,可以看成是傳統winform開發框架和WCF開發框架之間能自由切換的一種雙重框架,這種框架的特點是,就是把系統劃分為很多萬能模塊(既適應WInform集成,也適應WCF集成),在不同的場合進行不同的切換,而且只需通過配置參數的變化就可以實現的跳轉,這樣非常有利于模塊的集成封裝。
1、混合型框架的特點
混合型框架具有下面幾個特點:
? ?1)環境適應性強,模塊可重用性高。由于混合型框架,既可以用于傳統Winform系統開發,也可以用于WCF分布式系統開發,因此環境適應性強;而且由于模塊具有這些特點,可重用性更高,特別對于通用性的模塊,更是具有無可替代的優越性。
? ?2)響應性能更好。如果是Winform程序,那么就使用直接訪問數據庫方式,如果是WCF調用方式,就使用WCF的專有通道進行數據處理,更好利用系統資源,高效進行數據處理。
? ?3)獨立配置,更少的代碼修改。所有通用模塊,全部通過獨立配置文件進行配置WCF的連接,減少主配置文件的復雜性;WCF服務邏輯獨立類庫,可采用多種服務寄宿方式。
2、混合型框架總體設計思路
Winform開發框架之混合型框架,還是秉承模塊化的思路,可以把這個框架分為兩大塊,一塊是主要業務系統模塊(如備件管理系統),一塊是各種輔助性模塊(如通用權限、通用字典、通用附件管理、通用人員管理。。。。),這種兩塊組合,就是一個完美的系統了。
從以上圖可以看到,整個系統的業務系統模塊和輔助性模塊,都是基于一個思路,通過接口調用開關,決定調用的是WCF服務層,還是Winform業務層(直接訪問數據庫),當然界面層的調用不管是調用WCF服務層還是Winform業務層,都是基于相同的接口,我們可以把它稱為Facade層。輔助性模塊則是多種常用模塊的組合,他們可能是下面幾種的常見模塊:通用權限模塊、通用字典模塊、通用附件管理模塊、通用人員管理模塊等等。
?
3、混合型框架具體實現
為了更具體化演繹混合型的Winform開發框架,下面我通過輔助性模塊之一的通用字典模塊進行介紹這個混合型框架的具體實現。字典模塊的內部結構如下所示。
?
?上圖的解讀如下:
1)共用類庫和實體類貫穿整個框架。
2)數據庫通過泛型繼承方式,實現更少的代碼,更豐富的API實現。
3)多數據庫支持,通過利用EnterpriseLibrary企業類庫,支持多種數據庫的集成處理。
4)內置Winform和WCF兩種調用實現,通過配置文件,方便自由切換。
5)UI層通過接口調用層的工廠類,實現基于Facade的接口調用(而非具體實現類)。
6)共用UI層,UI層的界面在Winform和WCF調用方式下,均為一致,只有一個UI層。
7)各層均有相應的基類,更少的代碼,更多的支持。
8)每個獨立模塊,構造整個框架的生態體系。
4、項目文件的組成
整個混合型框架的字典模塊,按照上面的架構設計,會有不少項目工程產生,由于人的目標識別管理數目有限,因此就單個模塊而言,不宜產生過多的項目DLL,否則集成會比較困難,也不適宜更好的維護。因此,基于最少DLL的原則,我設計了下面的模塊目錄,基本上,每個目錄代表一個分層。
??
由于是上述框架也集成了基于WCF方式的調用方式,那么還需要創建一個WCF的字典服務,我們為了使得WCF支持更多種的寄宿方式,可以建立WCF服務庫項目,如下所示這種項目。
創建了相應的分層和邏輯類后,具體的項目工程如下(部分文件由于多個項目中使用到,于是通過引用方式避免拷貝,又能集中管理,如Facade層的接口文件)。
當然還會有一個WCF服務的寄宿方式,這里通過IIS方式發布,如果必要也可以通過其他方式部署WCF服務,由于把邏輯隔離了,因此部署非常方便。
IIS部署方式的WCF服務工程如下所示。
?對于IIS方式的部署,其實基本上也是在svc文件中兩行代碼即可(注意這個SVC文件沒有后臺.cs文件)
當然,還有一種方式,只需要配置Web.Config,不需要增加svc文件,也能實現WCF服務的部署的哦。
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"><serviceActivations><add service="WHC.Dictionary.WCFLibrary.DictTypeService" relativeAddress="test.svc"/></serviceActivations></serviceHostingEnvironment>以上就是我對于混合型開發框架的演繹過程,整個框架目前已近全部完成,包括完成了通用權限管理系統模塊,通用字典模塊,通用附件管理模塊,通用人員管理模塊等這些外圍通用的模塊,因此框架的設計是進過實踐驗證過的,這樣的混合型框架,非常適合用于重用性非常高的項目場景中,相比其他類型的框架,更具有高附加值,高可用性的特點。
希望通過我的混合型的框架設計思路和實現邏輯等方面的介紹,拋磚引玉,能和大家做更深的溝通和分析。?
轉載于:https://www.cnblogs.com/wuhuacong/archive/2013/04/11/3014807.html
總結
以上是生活随笔為你收集整理的Winform开发框架之混合型框架的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DataReader 要在事务提交前 C
- 下一篇: 长城汽车推新品牌 将在2022年上市