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