2014-11-08 2 views
-1

Настройка приложения с использованием ASP.NET MVC Я задался вопросом, действительно ли термин «MVC» охватывает инфраструктуру приложения. Я думал о WPF и MVVM, в которых четко указано использование ViewModel, которого нет в MVC. При использовании:Не ASP.NET MVC на самом деле MCVMV?

  • модели Домен (юридические лица)
  • Контроллеры
  • ViewModels и
  • Просмотров

Я думаю M (Одел) C (ontroller) В.М. (ViewModel) V (iew) MCVMV - более точное описание структуры. Хотя я считаю, что некоторые люди пропускают использование ViewModel, который я нахожу очень полезным. Каковы ваши соображения по этому поводу?

+0

«Я хотел бы обсудить ..» - может быть больше подходит для [программистов] (https://programmers.stackexchange.com/help/on-topic), хотя формулировку вопроса следует очистить, чтобы выявить больше прямые ответы, если это возможно. – user2864740

+0

ASP.NET MVC - это еще один клон Rails. Это не имеет никакого отношения к MVC или MVVM. Они просто злоупотребляют именами. –

+0

@ tereško это неверно. Они используют шаблон MVC. И много дизайна на основе конвенций Rail, да. Но это не злоупотребление. – Will

ответ

1

Этот вопрос, несомненно, будет закрыт, но лучше всего рассматривать его как свободное приближение. Все шаблоны; MVC, MVVM и т. Д .; являются руководящими принципами, а рамки просто следуют за ними в большей или меньшей степени. ASP.NET MVC называется таким, потому что он в основном следует за дорожкой MVC. Модель в ASP.NET MVC особенно расплывчата, так как то, что называется моделью, как правило, представляет собой только объектную структуру Entity Framework ,, очень плохое оправдание для истинной модели MVC. Модели для просмотра были кооптированы из MVVM в значительной степени, чтобы компенсировать это. Для сравнения, посмотрите на модель в чем-то вроде Ruby on Rails. Это не только объект, поддерживаемый базой данных, но и репозиторий для этого объекта, содержит всю логику проверки как для базы данных, так и для представлений и т. Д. В ASP.NET MVC нет ничего близкого к тому же. Длинный и короткий, да, ASP.NET MVC обычно включает в себя также View Model, но последнее, что нам нужно, - это еще один аббревиатур.

+0

Надеюсь, вы знаете, что «viewmodel» заменит контроллер для MVVM. То, что .NET вызывает «viewmodel», на самом деле плохо сделало bastardization [объектов презентации] (http://martinfowler.com/eaaDev/PresentationModel.html). –

+0

Ну, да и нет. В MVVM у вас нет контроллера. Как правило, у вас есть какая-то инфраструктура маршрутизации, а затем модель представления, которая действует как контроллер, сама по себе, но это действительно такая принципиальная концепция от контроллера MVC, что вы не можете сравнить эти два. Если вам нужно, VM MVVM похожа на дочерний ребенок-ублюдок контроллера и модель MVC; с чертами каждого, но не полностью полностью. –

+0

Thanx для ответа и комментариев. Они немного углубили мое понимание этих структур. –