Приложение WPF - размещение объекта модели / структура проекта (в сценарии MVVM) - PullRequest
2 голосов
/ 25 марта 2011

Я разрабатываю приложение WPF с однократным щелчком мыши, используя Prism v4 и MEF (шаблон MVVM).У меня есть несколько модулей, которые находятся в их собственных сборках.

Я пытаюсь выяснить, где разместить объекты моей модели.

Поместите ли вы их в сборку, где они в основном используются (даже если они могут быть использованы в других сборках), или создадите сборку для размещения всех моделей (чтобы ее было легче использовать вдругие программы)?Я склоняюсь к последнему, но это приводит к следующему вопросу ниже ...

Как бы вы пошли в отношении четкого разделения объектов модели, которые заполнены различными базами данных / серверами - вы объединяете их все вместев одной сборке / пространстве имен или разделить их на разные пространства имен / сборки?Я пытаюсь предотвратить проблемы в будущем из-за плохого решения, начавшего этот проект, и буду признателен всем за обратную связь.

1 Ответ

2 голосов
/ 25 марта 2011

Я помещаю модели объектов в свою сборку.Это способствует повторному использованию, а также разделению, поскольку гораздо труднее «загрязнить» модель кодом, связанным с презентацией.

Что касается вашего второго вопроса:

Как бы вы поступили?четко разделяя объекты модели, которые заполняются из разных баз данных / серверов - вы объединяете их все вместе в одну сборку / пространство имен или разделяете их в разные пространства имен / сборки?

Если вы планируетеДля моделей, которые заполняются из нескольких источников, я бы лично поместил определения модели в одну сборку, а затем использовал бы DAL (в отдельных сборках) для каждого источника данных.Это позволяет отделить определения модели от доступа к данным, который, в свою очередь, по-прежнему нейтрален для представления.

Если модель всегда будет заполняться из одного источника данных, то сохранение этого вместе (но с разделением по пространствам имен)вероятно, более простой вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...