基於WCF為中介軟體的三層結構系統?

WCF模式是在Winform模式中的介面層和邏輯層之間加入了WCF中介軟體用來實現雙方的通訊,說得更簡單一點就是把Winform模式中的winController控制器給拆分為wcfController與wcfclientControlle兩個控制器並用WCF實現兩個控制器之間的通訊,雙方資料傳遞與Web模式一樣用Json資料格式;

還有一點就是我們一定要明白WCF模式並不是說把所有業務都封裝成wcf服務提供給介面層呼叫,wcfController跟webController一樣只是單純的業務控制器,而wcf服務在框架中也只有一個就是在WCFHosting服務主機中WCFHandlerService,用來實現通訊的;

工具/原料

visual studio 2013

方法/步驟

1.同樣是用書籍的管理作例項,實現對書籍的增、刪、改、查功能,我們先看介面效果

如下,請注意紅色框部分,點選介面的儲存按鈕後,第二張圖的WCF主機就會接收到儲存書籍的命令並執行,紅色框為執行過程;(其中WCF主機會再後續章節詳細說明)

基於WCF為中介軟體的三層結構系統

基於WCF為中介軟體的三層結構系統

解決方案目錄,其中紅色檔案為本章例項新增的檔案

2.開發步驟:

1)新增WCF控制器,如上(bookWcfController.cs)

2)新增WCFCient介面控制器,如上(bookwcfclientController.cs)

其中實體(Book.cs)、Dao(BookDao.cs)和介面(frmBookManager.cs)在上一章例項中已經完成,所以本章直接呼叫就行了,加上本章新增的bookWcfController.cs和bookwcfclientController.cs就可以讓WCF模式例項執行起來;

EnterpriseFrameWork框架中加入WCF開發模式就是基於這些方面的實際需求,所以怎樣才能最小代價的擴充套件成WCF模式,就是一直困擾我的問題,難道要把原有系統中的所有業務都重寫封裝成wcf服務?重寫的代價真的有點大,特別讓我接受不了的完全與框架的核心“簡潔”衝突了。也參考過其他公司的wcf框架,也是覺得可能把業務封裝成wcf服務太麻煩,所以乾脆就是對資料庫的操作也就是DbHelper物件給用wcf服務封裝了,用wcf服務的方式操作資料庫,我就傻眼了。直到今年才找到如今這種方式,把Winform模式的控制器給拆分為wcfController和wcfclientController,兩個控制器之間用wcf服務通訊。

這也是一次讓我非常得意的改進,不知道大家用wcf做專案是一種什麼樣的開發模式?

基於WCF為中介軟體的三層結構系統

3.最後我們看下圖,整理一下以上程式碼檔案的呼叫關係

基於WCF為中介軟體的三層結構系統

相關問題答案