Почему в ASP.NET MVC нет модели? - PullRequest
3 голосов
/ 12 ноября 2009

После прочтения книги Стивена Сандерсона Pro ASP.NET MVC я убедился в преимуществах использования ASP.NET MVC над веб-формами.

Поскольку ASP.NET MVC явно вдохновлен Ruby on Rails и преимуществами «Соглашения над конфигурацией», мне кажется, что M в MVC полностью отсутствует!

На мой взгляд, простота использования Rails в равной степени обусловлена ​​соглашением об использовании моделей. Особенно, когда речь идет о проверке, поскольку это явно относится к модели, а не к уровню представления!

В Rails так легко написать: validates_presence_of: author или даже лучше validates_uniqueness_of: title

Так почему же в ASP.NET (M) VC нет M?

Ответы [ 4 ]

5 голосов
/ 12 ноября 2009

Действительно ли ваш вопрос: «Почему в ASP.NET MVC нет ActiveRecord?»

Пакеты MVC специально не включают в себя какие-либо технологии ORM, поскольку усилия Microsoft в этих областях были направлены более широко, на разработчиков WebForms и настольное программное обеспечение .NET. Но и LINQ to SQL, и Entity Framework явно помогают заполнить «модельную» нишу.

Что касается некоторых возможностей отображения и работы с этой моделью в веб-приложении, в ASP.NET MVC 2 есть новая поддержка проверки, а также динамические данные и собственные HTML-помощники MVC, помогающие отображать вещи.

1 голос
/ 12 ноября 2009

Вы правы, что в ASP.NET MVC акцент делается на реализации View и Controller - это потому, что это были элементы, которые не были хорошо поддержаны, в частности View, в ASP.NET. С другой стороны, модель у нас была в изобилии почти с самого начала, так что, прагматично, это не проблема, которую нужно было решать.

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

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

0 голосов
/ 12 ноября 2009

Я бы охарактеризовал ASP.NET MVC как набор инструментов, который помогает вам реализовать шаблон MVC, это не полная реализация самого шаблона.

0 голосов
/ 12 ноября 2009

Модель в MVC, в основном, оставлена ​​на усмотрение разработчика, поскольку существует множество способов создания модели. MVC сфокусирован на части VC и на том, как сделать это хорошо, но, безусловно, ожидается, что вы будете использовать M.

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