我們將很快開發大型企業桌面應用程序,並且我一直花費一些時間研究WPF + PRISM + MVVM方法,我已經掌握了很多大多數的概念和我喜歡它提供的模塊化。WPF WCF Prism和MVVM - 揭露實體的正確方法
我遇到的問題是如何構建服務層來獲取數據,特別是當這個服務是由一個模塊引入的,並且這個模塊具有依賴模塊可以使用它的想法。
我想抽象我的WCF數據服務內部的應用程序服務,並使用ServiceLocator
來解析我的視圖模型中的具體實例,但即時通訊很難弄清楚它應該如何掛在一起,主要是由於我的entite存在WCF服務的一部分。
例如
模塊1 包含WCF服務+混凝土中的應用服務(ISearchService)+ WCF服務生成的實體(模型)
Module1.Infastructure - 包含應用服務的以下接口
public interface ISearchService
{
ObservableCollection<Person> Search(string search);
}
這將在UnityContainer中註冊,以便任何其他模塊都可以獲得模塊引用的具體實現。
我的問題是實體(Person
)是在模塊本身(在WCF服務中)定義的,所以引入一個服務然後期望其他模塊能夠使用它意味着他們需要引用模塊本身不僅僅是模塊的基礎結構,除非我將服務提供給另一個組件。
我應該以這種方式公開我的EF模型中自動生成的實體嗎?
有沒有人有更好的解決方案?
如果WCF服務應該返回'Model'對象或數據傳輸對象,您可能會對[我的這個問題](http://stackoverflow.com/q/4824058/302677)感興趣。我最終選擇了DTO,並發現讓它返回一個數據傳輸對象並使用類似[AutoMapper](http://automapper.codeplex.com/)將'DTOs'映射到'Models'和反之亦然 – Rachel 2012-04-03 14:05:18
我喜歡這個想法,會在實體框架中使用POCO的基本上是一樣的東西? – 2012-04-03 14:34:39