Учебники

ASP.NET MVC — Обзор

ASP.NET MVC — это, по сути, инфраструктура веб-разработки от Microsoft, которая сочетает в себе особенности архитектуры MVC (Model-View-Controller), самые современные идеи и методы Agile-разработки и лучшие части существующего ASP Платформа .NET.

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

Сборка приложения MVC

история

ASP.NET 1.0 был выпущен 5 января 2002 года как часть .Net Framework версии 1.0. В то время было легко представить, что ASP.NET и веб-формы — это одно и то же. ASP.NET всегда поддерживает два уровня абстракции —

  • System.Web.UI — слой веб-форм, состоящий из серверных элементов управления, ViewState и т. Д.

  • System.Web — предоставляет базовый веб-стек, включая модули, обработчики, стек HTTP и т. Д.

System.Web.UI — слой веб-форм, состоящий из серверных элементов управления, ViewState и т. Д.

System.Web — предоставляет базовый веб-стек, включая модули, обработчики, стек HTTP и т. Д.

Ко времени объявления ASP.NET MVC в 2007 году шаблон MVC становился одним из самых популярных способов создания веб-фреймворков.

В апреле 2009 года исходный код ASP.NET MVC был выпущен под лицензией Microsoft Public License (MS-PL). «ASP.NET MVC Framework — это легкая, легко тестируемая среда представления, интегрированная с существующими функциями ASP.NET.

Некоторые из этих интегрированных функций — это главные страницы и аутентификация на основе членства. Инфраструктура MVC определяется в сборке System.Web.Mvc.

В марте 2012 года Microsoft выпустила часть своего веб-стека (включая ASP.NET MVC, Razor и Web API) по лицензии с открытым исходным кодом (Apache License 2.0). Веб-формы ASP.NET не были включены в эту инициативу.

Почему ASP.NET MVC?

Microsoft решила создать собственный MVC-фреймворк для создания веб-приложений. Инфраструктура MVC просто строится поверх ASP.NET. Когда вы создаете веб-приложение с ASP.NET MVC, не будет иллюзий состояния, не будет такой вещи, как загрузка страницы и вообще никакого жизненного цикла страницы и т. Д.

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

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

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

Преимущества ASP.NET MVC

Ниже приведены преимущества использования ASP.NET MVC:

Упрощает управление сложностью, разделяя приложение на модель, представление и контроллер.

Обеспечивает полный контроль над отображаемым HTML и обеспечивает четкое разделение задач.

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

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

Обеспечивает лучшую поддержку для разработки через тестирование (TDD).

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