Вашему бизнесу нет места в приложении MVVM. Ваш бизнес должен быть выделен в отдельную библиотеку классов. Это имеет много преимуществ, которые я мог бы объяснить, если вы хотите, чтобы я.
Так или иначе, вот как должна выглядеть структура вашего решения:
- [Project]. Shared: сервисные контракты и объектная модель
- [Project] .Data: Интерфейсы вашего уровня доступа к данным.
- [Project] .Data.Sql: SQL-реализация вашего уровня доступа к данным. Если вы используете Oracle, это будет [Project] .Data.Oracle. Поймать занос?
- [Project] .API: Бизнес-менеджеры. ВСЕ бизнес вашего приложения должен быть инкапсулирован и изолирован на этом уровне.
- [Project] .Services: Реализация сервисов.
- [Project] .UI.MainApplication: основное приложение WPF.
- [Project] .UI.Shared: Имеет все, что распространено среди всех ваших клиентских приложений WPF. Кроме того, вы должны добавить классы объектной модели и интерфейсы контрактов на обслуживание в качестве ссылок в этот проект.
- [Project] .UI. [OtherApp]: Если вы хотите разделить ваш пользовательский интерфейс на модули (я настоятельно рекомендую это сделать).
По сути, буквой «M» в MVVM будет сама объектная модель, если только представлению не нужна какая-либо модель, которая содержит свойства различных объектов ... и т. Д.