[英]Application architecture for client to WCF service
我對構建包含以下內容(需要重構)的應用程序的正確方法感到好奇:
Excel加載項COM-Visible客戶端庫,其中包括暴露給Excel的WinForms和方法(計算調用和表單激活方法),然后使用客戶端庫中的功能連接到WCF服務。 WCF服務當前包含計算邏輯,驗證邏輯,通過ORM工具的數據庫訪問。
即Addin->客戶端DLL中的Winform / Direct調用-> WCF-> DB或計算
目前,這僅存在於2個項目中。 我的第一步雖然是重新架構,如下所示:
客戶端項目
服務器端項目
我的問題是:
重構的部分想法是糾正體系結構,分離關注點等,並使單元測試包含在設計中。
DTO應該在WCF項目中還是作為自己的圖書館/項目坐在哪里?
您不希望它們出現在WCF項目中,因為這意味着客戶端將不得不引用該服務器端項目。 最好將DTO,WCF服務合同(接口)等保存在服務器和客戶端項目都可以引用的單獨的“公共”項目中。
實體轉換例程在哪里?
數據訪問層中的數據實體<->業務實體; 業務邏輯中的業務實體<-> DTO。 當然,在所有層上使用數據實體也是完全可以接受的,從而避免了需要保持更新的所有這些不同實體和映射代碼。 我想這取決於您系統的復雜性,但請看一下EF4 POCO。
至於您的其他問題,在不了解您的要求和設計的更多信息的情況下,您看起來正處於項目清單的正確位置。
這就是我的結構方式,但是這個問題沒有100%正確的答案。 在使您的工作舒適之前,許多變化都是有意義的。
DTO應該在WCF項目中還是作為自己的圖書館/項目坐在哪里?
合約
實體轉換例程在哪里(數據實體<>業務實體<> DTO)? 全部在業務邏輯層中,還是全部在服務器演示器中?
中小型項目業務。
這種方案的正確架構應該是什么?
你似乎還好。
服務器端演示者(Project.Server.Presenter)-這對我來說沒有意義,因為沒有使用它的GUI
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.