Подтвердить что ты не робот

ASP.NET MVC = Классический ASP с библиотекой классов .NET. В самом деле?

Этот blogpost и один из наших старших разработчиков на работе считают, что веб-разработка имеет полный круг с ASP.net MVC. Это не вопрос о VB script vs VB9/10, или что-то другое. Помимо механизма маршрутизации, вспомогательных классов и методов. Каковы некоторые веские аргументы, которые вы можете сказать:

ASP.net MVC!= Классический ASP +.net BCL

4b9b3361

Ответ 1

В ASP "Вид" получает запрос. В ASP.NET-MVC контроллер получает запрос, впоследствии он может выбирать из нескольких разных представлений для создания ответа.

Это разделение обработки запроса от обработки ответа очень отличается от ASP.

Ответ 2

Этот аргумент работает в предположении, что все, что есть в MVC, это Views.

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

Чтобы самостоятельно отреагировать на сообщение в блоге, да, вы теряете много функциональности, отказываясь от расширенных элементов управления, особенно если вы говорите об элементах управления, приобретенных у стороннего поставщика. Тем не менее, в настоящее время есть полный набор виджетов javascript, которые хороши, если не лучше, чем все, что доступно для asp, и они бесплатны. Не только это, но использование ASP.net означает покупку в чрезвычайно сложную структуру, которая работает примерно в 90% случаев. Проблема в том, что 90% никогда не бывает достаточным для чего-то нетривиального, и работа над каркасом для этих дополнительных 10% может быть живым адом. Другое дело, что производительность, которая приходит с покупкой в ​​эту сложность, абсолютно ужасна.

Сравнение MVC и ASP.net должно быть между виджетами и хорошей архетектурой, гибкой прямой разметкой и хорошей производительностью. Если вам нужны эти виджеты, то придерживайтесь ASP.net, Господь знает, что он не уйдет в ближайшее время. Если вам нравится веб-технологии, такие как html, javascript и CSS, потерять те из виджетов будут сосать, но то, что вы получите, значительно перевешивает то, что вы теряете.

Ответ 3

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

Ответ 4

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

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

Ответ 5

Плюс, на мой взгляд, было бы сложнее поддерживать приложение, как только у вас будет классический ASP-код, плавающий в HTML-странице.

Я могу согласиться, что сохранение страницы с кодом спагетти может быть сложнее.

Но ASP.NET MVC Views все еще скомпилированы, как ASP.NET WebForms - это большая разница над ASP 3, и у вас есть IntelliSense, доступный в .aspx.

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

Очень легко создать страницу в Web Forms, но много раз сложнее проверить код за страницей.

Ответ 6

Я являюсь автором этого блога, и вот мои взгляды на него:

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

ASP.NET MVC пришлось отказаться от множества мощных элементов управления ASP.NET. Но, к счастью, многие библиотеки JavaScript вышли с новыми классными элементами управления, которые будут подключены к ASP.NET MVC.

Программное обеспечение предназначено только для компромиссов. Вы торгуете мощными элементами управления ASP.NET, управлением ViewState, Postbacks и т.д. С полным контролем цикла запроса/ответа. Если вам нравится ViewState, проблемы с обратной связью и не заинтересованы в тестировании модулей, возможно, ASP.NET MVC не для вас.

Кроме того, с разработкой IronRuby я вижу ASP.NET MVC как очень мощную структуру.

Ответ 7

Компонент View нового синтаксиса поддержки ASP.NET MVC, который выглядит как ASP 3.0.

Фактически, этот синтаксис (<%% > ) всегда был доступен в ASP.NET WebForms.

Вы все еще можете использовать элементы управления ASP.NET(< asp: control > ) в MVC или можете использовать новый синтаксис (который является нечетным IMHO) или использовать другие фреймворки, такие как NVelocity.

Этот диапазон доступных методов не может рассматриваться как старый ASP поверх .NET BCL.