Очень скоро мы собираемся разрабатывать большое корпоративное настольное приложение, и я потратил некоторое время на изучение подхода WPF + PRISM + MVVM, я хорошо разобрался с большинство концепций, и мне нравится модульность, которую он обеспечивает.
У меня возникли проблемы с тем, как спроектировать уровень служб для получения и получения данных, особенно когда эта служба представлена модулем с идеей, что зависимый модуль может ее использовать.
Я хотел абстрагировать свои службы данных WCF внутри служб приложений и использовать ServiceLocator
для разрешения конкретных экземпляров из моих моделей представления-, однако мне было трудно понять, как это должно быть связано, в основном из-за мои сущности являются частью службы WCF.
Например
Модуль 1 Содержит службу WCF + конкретную службу приложений(ISearchService)+ сущности, сгенерированные службой WCF(модель)
Module1.Infastructure-Содержит следующий интерфейс для службы приложений
public interface ISearchService
{
ObservableCollection<Person> Search(string search);
}
, который будет зарегистрирован в UnityContainer так что любой другой модуль может получить конкретную реализацию, представленную модулем.
Моя проблема заключается в том, что Entities(Person
)определены в самом модуле (в службе WCF ), поэтому введение службы и последующее ожидание того, что любые другие модули смогут ее использовать, означает, что им нужно ссылаться сам модуль, а не только инфраструктура модулей, если только я не вытащу сервисы в другую сборку.
Должен ли я таким образом выставлять напоказ свои объекты, автоматически сгенерированные из моей модели EF?
Есть ли у кого-нибудь лучшее решение?