Учебное пособие по ASP.NET MVC для начинающих: что такое, Archiтекстура

⚡ Умное резюме

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

  • 🇧🇷 Archiтекстура: Модель хранит данные предметной области, представление отображает пользовательский интерфейс с помощью Razor, а контроллер выступает посредником при каждом запросе между ними.
  • Почему MVC: Это исправляет проблемы с ViewState и накладные расходы на производительность веб-форм, а также обеспечивает удобную маршрутизацию и разработку через тестирование (TDD).
  • 🔀 Маршрутизация: на основе маршрута URLs сопоставляет входящие запросы с действиями контроллера, заменяя файловый формат .aspx. URLс оптимизированными для SEO путями.
  • 🧪 Тестируемость: Контроллер и модель можно тестировать модульно изолированно, поскольку представления не содержат бизнес-логики.
  • Сравнение веб-форм: Web Forms использует серверные элементы управления, управляемые событиями; MVC использует действия, управляемые запросами, с ручным управлением состоянием.
  • 🇧🇷 лучшие практики: Размещайте бизнес-логику в модели, используйте минималистичные контроллеры и частичные представления или макеты для повторного использования разметки.

Учебное пособие по ASP.NET MVC

Что такое ASP.NET MVC?

ASP.NET MVC представляет собой среду веб-разработки с открытым исходным кодом от Microsoft ASP.NET MVC предоставляет архитектуру Model View Controller (MVC). ASP.NET MVC предлагает альтернативу ASP.NET Web Forms для создания веб-приложений. Это часть платформы .NET для создания, развертывания и запуска веб-приложений. Вы можете разрабатывать веб-приложения и веб-сайты с помощью HTML, CSS, jQuery. JavaСценарий и т.д.

Изучите MVC с помощью этого руководства по ASP.NET MVC, которое охватывает все основные концепции MVC для начинающих:

Почему именно ASP.NET MVC?

Хотя веб-формы были очень успешными, Microsoft мысль о развитииping ASP.NET MVC. Основная проблема ASP.NET WebForms — это производительность.

В веб-приложениеСуществует четыре основных аспекта, определяющих производительность:

  • Проблемы со временем ответа
  • Проблема модульного тестирования
  • HTML-настройка
  • Возможность повторного использования класса выделенного кода

ASP.NET MVC превосходит конкурентов по указанным выше параметрам.

История версий MVC

АСП.NET MVC1

  • Выпущено 13 марта 2009 г.
  • Он работает на .NET 3.5.
  • Visual Studio 2008
  • Архитектура шаблона MVC с WebForm Engine
  • Основные функции включают в себя HTML и Модульное тестирование, Ajax Helpers, маршрутизация и т. д.

АСП.NET MVC2

  • Эта версия выпущена 10 марта 2010 г.
  • Работает на .NET 3.5, 4.0 и с Microsoft Visual Studio 2008
  • Включите такие функции, как шаблонизированные вспомогательные функции, вспомогательные функции пользовательского интерфейса с автоматической генерацией кода и настраиваемые шаблоны.
  • Он поддерживает атрибуты DataAnnotations для применения проверки модели на стороне клиента и сервера.

АСП.NET MVC3

  • Он был выпущен 13 января 2011 года.
  • Работает на .NET 4.0 и с Microsoft Visual Studio 2010
  • Использование НuGet для доставки программного обеспечения и позволяет управлять зависимостями на платформе.
  • Лучшая JavaПоддержка скриптов с валидацией jQuery и привязкой JSON.
  • Он предлагает такие функции, как механизм представления Razor и расширенные атрибуты аннотаций данных для проверки моделей как на стороне клиента, так и на стороне сервера.

АСП.NET MVC4

  • Эта версия была выпущена в августе 2012 г.
  • Он работает на .NET 4.0, 4.5 и с Visual Studio 2010 и Visual Studio 2012.
  • Улучшения шаблонов проектов по умолчанию
  • Предлагает такие функции, как шаблон мобильного проекта с использованием jQuery Mobile, поддержку задач для асинхронных контроллеров, объединение, минимизацию и т. д.

АСП.NET MVC5

  • Выпущено 17 октября 2013 г.
  • Работает на .NET 4.5, 4.5.1 и с Visual Studio 2012 и Visual Studio 2013.
  • Поддерживает маршрутизацию атрибутов в MVC.

Особенности MVC

  • Простая и беспроблемная проверка
  • Полный контроль над вашим HTML, JavaСценарий и URLs
  • Используйте существующие ASP.NET Особенности
  • Новая опция отображения для ASP.NET
  • Более простой способ программирования ASP.NET
  • Четкое разделение логики: Модель, Представление, Контроллер.
  • Разработка через тестирование
  • Поддержка параллельной разработки

Что следует помнить при создании приложения MVC

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

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

Архитектурный шаблон MVC

Архитектурный шаблон MVC

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

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

Давайте рассмотрим их все подробно:

Модели

Объекты модели — это части приложения, которые реализуют логику его работы. область данных. Он извлекает и сохраняет состояние модели в базе данных. Например, объект продукта может получать информацию из база данных, действуйте на нем. Затем запишите информацию обратно в таблицу продуктов на сервере SQL.

Виды

Представления — это компоненты, используемые для отображения пользовательского интерфейса (UI) приложения, также называемого моделью представления (viewmodel) в MVC. Они отображают приложение .NET MVC, созданное на основе данных модели.

Типичным примером может быть представление редактирования таблицы Item. Он отображает текстовые поля, всплывающие окна и флажки в зависимости от текущего состояния продуктов и объектов.

Контроллер

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

Например, контроллер управляет значениями строки запроса и передает эти значения в модель.

Веб-формы против MVC

Параметры Веб-формы MVC
Модель ASP.NET Web Forms использует модель разработки, основанную на событиях. ASP.NET MVC использует модель разработки, основанную на шаблоне MVC.
Используется с Существует с 2002 года Впервые он был выпущен в 2009 году.
Поддержка состояния просмотра ASP.NET Web Form поддерживает управление состоянием представления на стороне клиента. .NET MVC не поддерживает состояние представления.
URL напишите ASP.NET Web Forms использует файловую архитектуру. URLЭто означает, что имя файла существует в... URLи они должны существовать физически. ASP.NET MVC использует маршрутизацию на основе маршрутов. URLчто означает URLкоторые перенаправляются к контроллерам и действиям.
Синтаксис ASP.NET Web Forms использует синтаксис Web Forms. ASP.NET MVC использует настраиваемый синтаксис.
Тип просмотра Веб-формы и представления тесно связаны друг с другом. Code За кулисами (ASPX-CS), то есть, логика. MVC, представления и логика всегда хранятся отдельно.
Последовательный внешний вид и ощущение Он имеет главные страницы для единообразного вида. ASP.NET MVC использует макеты для обеспечения единообразного внешнего вида.
Code Повторное использование Веб-форма предлагает пользовательские элементы управления для повторного использования кода. ASP.NET MVC предлагает частичные представления для повторного использования кода.
Контроль HTML Less контроль над отображаемым HTML. Полный контроль над HTML
Государственное управление Автоматическое управление состоянием органов управления. Ручное управление состоянием.
Поддержка TDD Требуется слабый или специальный TDD. Поощряет и включает в себя разработку через тестирование (TDD).

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

  • Легко поддерживаемые приложения по умолчанию
  • Он позволяет заменить любой компонент приложения.
  • Улучшенная поддержка разработки через тестирование
  • Сложными приложениями легко управлять благодаря разделению моделей, представлений и контроллеров.
  • Предлагает надежный механизм маршрутизации с шаблоном фронт-контроллера.
  • Предлагает лучший контроль над поведением приложения за счет исключения состояния представления и серверных форм.
  • Приложения .NET MVC поддерживаются большими командами разработчиков и веб-дизайнеров.
  • Он предлагает больше контроля над поведением приложения. Он также использует оптимизированную пропускную способность для запросов к серверу.

Недостатки ASP.NET MVC

  • В отличие от страниц .aspx, здесь нельзя просмотреть предварительный просмотр дизайна.
  • Чтобы увидеть реальный дизайн программы, её необходимо запускать каждый раз.
  • Понимание потока приложения может быть сложной задачей
  • Его довольно сложно реализовать, поэтому он не является идеальным вариантом для приложений небольшого уровня.
  • Изучить MVC для ASP.NET сложно, поскольку для этого требуется глубокое понимание шаблона MVC.

лучшие практики при использовании ASP.NET MVC

  • В случае большого и сложного кода создайте отдельную сборку для модели, чтобы избежать нежелательных ситуаций.
  • Модель должна включать бизнес-логику, обслуживание сеансов, часть проверки и часть логики данных.
  • VIEW не должен содержать никакой бизнес-логики и обслуживания сеансов. Для доступа к данным в View используйте ViewData.
  • Бизнес-логика и доступ к данным никогда не должны выполняться в контроллере.
  • Контроллер должен отвечать только за подготовку и возврат представления, вызов модели, перенаправление к действию и т. д.
  • Удалите демонстрационный код из приложения при его создании (Удалите AccountController).
  • Используйте только конкретный механизм представления для создания HTML-разметки вашего представления, поскольку это комбинация HTML и программного кода.

Часто задаваемые вопросы (FAQ)

Да. GitHub Copilot может сгенерировать класс Controller с методами действий, атрибутами маршрута и соответствующими представлениями Razor. RevПеред добавлением в проект проверьте сгенерированный код на предмет корректной привязки модели и авторизации.

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

ViewData — это словарь объектов, ключом которого является строка, и он сохраняется после одного запроса. ViewBag — это динамическая обертка над ViewData. TempData использует состояние сессии и сохраняется после одного перенаправления, поэтому он используется для передачи данных между двумя последовательными запросами.

Маршрутизатор сопоставляет входящий запрос. URL На основе шаблонов, зарегистрированных в RouteConfig, MVC выбирает контроллер и действие, связывает все параметры и вызывает действие, возвращая ActionResult.

Razor — это компактный синтаксис для встраивания кода C# или VB.NET в файлы .cshtml или .vbhtml. Он использует символ @ для переключения между HTML и кодом, обеспечивает читаемость шаблонов и компилирует их в быстрые, строго типизированные классы во время выполнения.

Классический ASP.NET MVC работает на полной версии .NET Framework и Windows Только. ASP.NET Core MVC работает на .NET Core. Windows, Linux и macOS, использует унифицированную модель контроллера с веб-API и предлагает встроенную функцию внедрения зависимостей.

Используйте ASP.NET Identity или внешний поставщик, например... Azure Для авторизации используйте AD. Добавьте атрибут [Authorize] к контроллеру или действию, чтобы ограничить доступ, а для более детальных правил используйте параметры ролей или политик.

Создайте экземпляр контроллера в тестовом методе, внедрите фиктивные или имитирующие сервисы через конструктор, вызовите действие и проверьте, соответствует ли возвращаемый ActionResult ожидаемому имени представления, модели или целевому объекту перенаправления.

Подведем итог этой публикации следующим образом: