之前我打破我的申請,我目前的命名空間是這個樣子:WCF最佳實踐數據協定,共享類和DTO的
CompanyAbc.Core
CompanyAbc.AppXyz.Web
CompanyAbc.AppXyz.Business
的CompanyAbc.Core命名空間包含在所有的應用中常用的代碼我們公司。一個例子是一個名爲「ClientMessage」的類,我們使用它作爲一個容器將消息從一個層傳遞到另一個層(例如,將數據層中的數據保存到數據層時,抽象出並支持顯示成功或錯誤消息UI層)
我們現在將CompanyAbc.AppXyz.Business製作成WCF服務。我的問題是:「分享」(或不共享)這些基礎/共同實體的最佳做法是什麼?
例如,你會:
一)添加[DataContract]屬性直接在CompanyAbc.Core命名空間的類,即使它有無關WCF。
CompanyAbc.Core.Entities
ClientMessage.cs
OR
B)創建一個數據傳輸對象是從CompanyAbc.Core命名空間的精確副本?
CompanyAbc.Core.Entities
ClientMessage.cs
CompanyAbc.AppXyz.Business.DataContracts
ClientMessageDto.cs
OR
c)其他選擇嗎?
另一個複雜性是我們打算分享這些程序集。但爲了強制解耦,而不是分享程序集/商業實體,你會瘋狂並且做這樣的事嗎?
CompanyAbc.Core
CompanyAbc.Core.Shared.Entities
ClientMessage.cs
CompanyAbc.AppXyz.Web
CompanyAbc.AppXyz.Web.Entities
ClientMessage.cs --> derives from the Core.Shared, or just duplicate code?
CompanyAbc.AppXyz.Business.Entities
ClientMessage.cs --> derives from the Core.Shared, or just duplicate code?
CompanyAbc.AppXyz.Business.DataContracts
ClientMessageDto.cs