ViewModel's Везде! - PullRequest
       2

ViewModel's Везде!

2 голосов
/ 18 января 2010

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

Ответы [ 3 ]

3 голосов
/ 18 января 2010

Я предпочитаю использовать ViewModel для представления и привязывать ModelBinder к одному из моих бизнес-объектов.

Мои ViewModel часто содержат небольшие фрагменты данных на основе отображения (например, отображать или не отображать виджет A)таким образом, они действительно не должны быть связаны.

Доброта,

Дан

0 голосов
/ 18 января 2010

Это нормально, если вы не рискуете ленивостью. Например. Нелегко привязывать сложные объекты - например, если у сущности нет конструктора без параметров - и если вы избегаете таких сущностей просто для упрощения привязки ... это плохо. Это все равно что делать все переменные «строковыми» только потому, что ваш элемент управления UI не может понимать даты или числа с плавающей запятой. Это может также привести к тупым DTO-подобным энтитам и модели анемичной области. Однако, если вам не нужны умные объекты - все в порядке, чтобы использовать их в привязке модели.

Как всегда, для принятия решения требуются опыт и хороший вкус. Там нет простого правила. Один из способов избежать влияния пользовательского интерфейса на дизайн домена - сначала разработать уровень домена (здесь полезно использовать TDD). Другой способ состоит в том, чтобы иметь несколько «клиентов» для вашего доменного уровня - различные требования заставят вас извлечь основные функциональные возможности в доменный слой, перемещая определенные вещи (например, атрибуты представления и форматирование) в соответствующие слои / модели представления.

0 голосов
/ 18 января 2010

Я использую ViewModel для передачи данных на страницу и для вывода данных.Сначала все мои формы превращаются во ViewModel, на котором я буду запускать любую необходимую мне проверку, а затем преобразовываю ее в соответствующий DTO / Entity.

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