Объединение MVVM, ORM и некоторых аппаратных интерфейсов - PullRequest
3 голосов
/ 07 сентября 2010

Я пытаюсь спланировать архитектуру для приложения робота-контроллера, которое будет написано в WPF.Поскольку этот MVVM является шаблоном de facto для WPF, и в целом он гораздо более сексуален, я решил использовать его в качестве базовой схемы.за пределами доменной модели, которая представляет базу данных и служебные классы.А для доступа к базе данных я намереваюсь использовать репозиторий (в качестве общей идеи используется Ayendes IRepository), а затем Linq2sql или EF4 для фактического доступа.

Приложение также будет иметь собственный обработчик сценариев для пользовательских сценариев.

Но в чем я не уверен, стоит ли рассматривать доступ к аппаратным контроллерам и обработчику сценариев, чтобыбыть частью или ниже модели домена, или что-то, к чему непосредственно обращаются с уровня контроллера.

Я попытался составить то, что я считаю правильным способом сделать это.Но я совсем не уверен, что это правильный путь, поэтому я хотел бы получить некоторую информацию и советы по этому вопросу, и как я могу сделать это лучше.

http://dl.dropbox.com/u/1744224/Upload/Drawing7.png

Ответы [ 2 ]

1 голос
/ 08 сентября 2010

Вы должны абсолютно рассматривать низкоуровневые контроллеры и механизм сценариев как часть вашей доменной модели, однако вы должны представлять их с помощью абстракций (то есть с интерфейсами), чтобы вы могли правильно протестировать остальные вашего домена.

Я бы также рекомендовал не делать намного больше первоначального проектирования, и вместо этого позволить вашему дизайну развиваться через TDD, в противном случае вы рискуете попытаться внедрить реализацию просто для того, чтобы соответствовать диаграммам UML ...

0 голосов
/ 08 сентября 2010

Мои размышления над этим на некоторое время заставляют меня думать, что часть шаблона, относящаяся к контроллеру, довольно избыточна в этом проекте.И опять же, это MVVM, а не MVVMC или MVC:)

В конце необходимо оправдать абстракции, иначе это будет просто избыточность шаблона обслуживания снова и снова.Что-то, что не должно быть необходимо с наблюдателями.

Так что мой дизайн на данный момент выглядит следующим образом.Все аппаратные контроллеры основаны на событиях и предназначены для обновления пользовательского интерфейса, поэтому я думаю, что действительно do имеет смысл получить к ним доступ напрямую из модели представления.использование DI / IoC, так что слабая связь может позволить посреднику на более позднем этапе, если это будет необходимо.

Но я оставлю вопрос открытым для лучших ответов на данный момент:)

http://dl.dropbox.com/u/1744224/Upload/Drawing7b.png

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