我們有一個多服務應用程序。我們已經移動了一個涉及到數據庫訪問WCF端點公開的單獨組件的方法。
我們有2個選項:
1.對該方法的WCF調用。
2.直接調用該方法,由我們的DI引擎解決。
系統性能是一個關鍵問題,所以我們希望通過配置文件在無需重新編譯客戶端應用程序的情況下在選項1和選項2之間切換。
這個想法/架構的任何提示或建議?對這個想法/架構有何建議或建議?
回答
你可以教Unity來通過接口解決WCF服務。因此,解決本地服務實現或WCF問題並不重要。您將始終將IMyService注入您的課程。這只是您的配置更改。
您可以配置爲使用的app.config或WCF發現或明確地在代碼中指定綁定和的EndpointAddress擴展。
查看TecX project瞭解更多信息。源代碼位於TecX.ServiceModel.AutoMagic。演示使用了一些測試可以在TecX.ServiceModel.Test
更新中找到
定義一個接口爲您服務(如IMyService),並與必要的屬性裝飾它(DataContract,OperationContract)。實施該界面(例如在MyService)。 MyService調用您的方法。現在告訴團結要麼直接IMyService映射到的MyService或添加容器擴展,使您可以IMyService映射到由WCF 的ChannelFactory生成的代理。部署你的服務,你就完成了。 Unity會將任何實施IMyService注入到那些需要它們的類的構造函數中。
我想你應該避免額外的WCF層,如果系統性能是一個關鍵問題,並沒有任何其他的需求驅動設計這種方式。您可能會執行一些性能測試,看看它的開銷是否會被您接受。最後,您可以決定哪個選項更適合您,因此無需切換。
如果需要某些WCF功能(例如,加密呼叫,認證,身份傳播,交易投票,授權,安全審計,事務傳播,呼叫超時,可靠性,持久性,錯誤屏蔽,故障隔離,緩衝和限制,數據版本容忍,遠程管理,互操作性,排隊,發現.. .. )WCF是你可以做的最好的選擇。市場上沒有其他框架可以與其表現相抗衡。 – 2012-01-18 19:22:39
是的,但只有在有需要時... – henginy 2012-01-19 07:31:11
- 1. 建議hadoop架構
- 2. MongoDB架構建議
- 3. 建議對類或方法
- 4. 構建虛擬會議的想法
- 5. 數據庫架構建議
- 6. 數據庫架構建議
- 7. Clojure:需要架構建議
- 8. 模式/架構建議?
- 9. Hbase架構設計建議
- 10. 數據庫架構建議
- 11. ArrayAdapter建議或建議
- 12. 針對網站的架構建議
- 13. 針對MongoDB架構設計的建議
- 14. 有關架構設計的建議
- 15. 有關SaaS架構書籍的建議?
- 16. 建議和想法跟蹤
- 17. 任何建議幹這個?
- 18. 框架建議
- 19. 建議一個庫或框架?
- 20. 博客發佈架構任何建議?
- 21. 結構對齊建議?
- 22. 架構:基於現有文本構建文本建議
- 23. 託管顛覆建議或建議
- 24. 對片段提議算法的建議
- 25. CSS框架建議
- 26. 如何構建自定義搜索建議的建議表?
- 27. 接口架構設計建議
- 28. 建議架構存儲股票價格
- 29. 我的hadoop架構改進建議
- 30. 需要多服務器架構建議
「我們希望通過配置文件在選項1和選項2之間切換,無需重新編譯客戶端應用程序」我知道知道權衡,主要是我該如何實現這個構造。 – shahzad 2012-01-19 04:26:12
偉大的說明....塞巴斯蒂安韋伯.....謝謝.... – shahzad 2012-01-19 09:56:57
@shahzad如果我的答案是有幫助的,這將是很好,如果你可以標記爲這樣。 – 2012-01-19 13:20:35