Может ли ViewModel содержать только Model и ничего больше?

Пишу свой первый pet проект на asp.net. Хочу сделать код максимально чистым и качественным, в следствии чего создал в приложении отдельный слой ViewModel и столкнулся с не очень понятной мне ситуацией: некоторым вью моделям ничего не требуется кроме самой модели. Хотел бы узнать нормальная ли это практика или стоит вовсе отказаться от ViewModel слоя и в какие то контроллеры прокидывать просто модель, а там, где требуется - ViewModel? пример ViewModel


Ответы (1 шт):

Автор решения: tym32167

Добро пожаловать в мир программирования. Тут нет ультимативных и универсальных решений. Каждое решение надо взвешивать и применять к конкретной ситуации.

С одной стороны, это хорошо - задать тон вашей архитектуре, чтобы при доработке у разработчика не было вопросов "а надо ли мне для фичи Х пилить новую вьюмодель, или тупо добавить левые поля в модель, или использовать ViewBag или ещё что". То есть, если у каждой View будет своя ViewModel - это избавит от лишних вопросов и разработчик может сфокусироваться на задаче, а не архитектуре.

С другой стороны, вы плодите классы, которые не добавляют ничего в ваш проект. Конечному заказчику от этого класса ни холодно, ни жарко.

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

→ Ссылка