综合应用WPF/WCF/WF/LINQ之八:后台开发人员的Solution
生活随笔
收集整理的這篇文章主要介紹了
综合应用WPF/WCF/WF/LINQ之八:后台开发人员的Solution
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
該Solution的所有Project如下:
下面對各個Project一一進行介紹:
Eallies.OA.BLL:用于系統中BLL層的所有類的存放。該Project可以采用Eallies.Utilities.ContractToBLL工具自動完成,對應于Eallies.OA.Generator目錄下的GenerateBLL.bat文件。
Eallies.OA.Service:用于系統中后臺服務層的所有類的存放。該Project可以采用Eallies.Utilities.BLLToService工具自動完成,對應于Eallies.OA.Generator目錄下的GenerateService.bat文件。
Eallies.OA.Service.Contract:用于系統中后臺服務層的Contract的所有接口的存放。該Project比較重要,包含重要的業務邏輯,它的完成,需要對系統的業務邏輯有很深的了解,因此該Project應該由業務邏輯開發人員來完成。
Eallies.OA.Service.Contract.Fault:用于系統中WCF技術錯誤處理的類的存放。
Eallies.OA.Service.Host:用于系統中后臺服務層的Host的所有文件的存放。該Project可以采用Eallies.Utilities.ServiceToHost工具自動完成,對應于Eallies.OA.Generator目錄下的GenerateHost.bat文件。
Eallies.OA.Service.Wrapper:用于系統中后臺服務層的Wrapper的所有類的存放。一般來說,應該遵循誰提供Web Service,誰就完成Service Wrapper的原則來開發,這是因為,Web Service的任何修改,只有開發Web Service的人知道。該Project可以采用工具自動完成,對應于Eallies.OA.Generator目錄下的GenerateWrapper.bat文件。
其它Project均在數據庫開發人員的Solution中介紹過。
為什么UI層不直接調用BLL層,而是要經過UI->Service.Wrapper->Service.Host->Service->BLL這樣繞一大圈的方式來調用BLL層呢?這是因為:第一,直接調用會導致系統耦合度太高,任何后臺的改動都會導致前臺需要重新編譯、發布,而這樣做了之后,只要Contract不改變,則前臺不用做任何改動;第二,這樣做了之后,比較適合SOA的理念,系統的擴展性、交互性和靈活性大大提高;第三,直接調用會導致Solution中會有過多的Project,編譯非常慢,導致開發人員的時間浪費過多。
本文轉自 Eallies 51CTO博客,原文鏈接:http://blog.51cto.com/eallies/79039,如需轉載請自行聯系原作者
下面對各個Project一一進行介紹:
Eallies.OA.BLL:用于系統中BLL層的所有類的存放。該Project可以采用Eallies.Utilities.ContractToBLL工具自動完成,對應于Eallies.OA.Generator目錄下的GenerateBLL.bat文件。
Eallies.OA.Service:用于系統中后臺服務層的所有類的存放。該Project可以采用Eallies.Utilities.BLLToService工具自動完成,對應于Eallies.OA.Generator目錄下的GenerateService.bat文件。
Eallies.OA.Service.Contract:用于系統中后臺服務層的Contract的所有接口的存放。該Project比較重要,包含重要的業務邏輯,它的完成,需要對系統的業務邏輯有很深的了解,因此該Project應該由業務邏輯開發人員來完成。
Eallies.OA.Service.Contract.Fault:用于系統中WCF技術錯誤處理的類的存放。
Eallies.OA.Service.Host:用于系統中后臺服務層的Host的所有文件的存放。該Project可以采用Eallies.Utilities.ServiceToHost工具自動完成,對應于Eallies.OA.Generator目錄下的GenerateHost.bat文件。
Eallies.OA.Service.Wrapper:用于系統中后臺服務層的Wrapper的所有類的存放。一般來說,應該遵循誰提供Web Service,誰就完成Service Wrapper的原則來開發,這是因為,Web Service的任何修改,只有開發Web Service的人知道。該Project可以采用工具自動完成,對應于Eallies.OA.Generator目錄下的GenerateWrapper.bat文件。
其它Project均在數據庫開發人員的Solution中介紹過。
為什么UI層不直接調用BLL層,而是要經過UI->Service.Wrapper->Service.Host->Service->BLL這樣繞一大圈的方式來調用BLL層呢?這是因為:第一,直接調用會導致系統耦合度太高,任何后臺的改動都會導致前臺需要重新編譯、發布,而這樣做了之后,只要Contract不改變,則前臺不用做任何改動;第二,這樣做了之后,比較適合SOA的理念,系統的擴展性、交互性和靈活性大大提高;第三,直接調用會導致Solution中會有過多的Project,編譯非常慢,導致開發人員的時間浪費過多。
本文轉自 Eallies 51CTO博客,原文鏈接:http://blog.51cto.com/eallies/79039,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的综合应用WPF/WCF/WF/LINQ之八:后台开发人员的Solution的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jQuery:1.5.4.3,表格变色(
- 下一篇: mySql存储过程,简单实现实例