Что такое asp net mvc

Что такое asp net mvc

Рубрика: Информационные технологии

Дата публикации: 10.12.2018 2018-12-10

Статья просмотрена: 568 раз

Библиографическое описание:

Допира, Р. И. Технология ASP.NET MVC / Р. И. Допира, Н. В. Попова. — Текст : непосредственный, электронный // Молодой ученый. — 2018. — № 49 (235). — С. 17-20. — URL: https://moluch.ru/archive/235/54577/ (дата обращения: 14.04.2020).

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

Ключевые слова: архитектура MVC, модель, представление, контроллер.

Microsoft ASP.NET MVC — это инфраструктура для разработки веб-приложений, построенная поверх популярной платформы.NET Framework. Инфраструктура ASP.NET MVC в основном полагается на проверенные шаблоны и приемы разработки, которые делают акцент на слабо связанной архитектуре приложения и хорошо поддающемся сопровождению коде. В 2008 г. выпустили первую версию ASP.NET MVC. Представляя собой полное отступление от подхода WebForms [1], ASP.NET MVC отбрасывает архитектуру на основе страниц, а вместо нее полагается на архитектуру модель-представление-контроллер (Model-View-Controller). Шаблон «модель-представление-контроллер» — это архитектурный шаблон, который поддерживает строгую изоляцию между отдельными частями приложения. Такая изоляция более известна как разделение ответственности или, если пользоваться более общими терминами, как слабое связывание. Проектирование архитектуры приложений в слабо связанном стиле привносит ряд как краткосрочных, так и долгосрочных преимуществ:

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

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

– Сопровождение. Изоляция компонентов означает, что изменения в логике обычно изолируются в небольшом числе компонентов — очень часто в одном. С учетом того, что степень влияния изменения обычно зависит от его масштаба, модификация меньшего количества компонентов — это однозначно хорошо.

Модель представляет основную бизнес-логику и данные. Модель инкапсулирует свойства и поведение сущности предметной области и открывает свойства, которые описывают эту сущность. Представление отвечает за преобразование модели или моделей в визуальную презентацию. В web-приложениях это чаще всего означает генерацию HTML-разметки для визуализации в браузере пользователя, хотя представления могут проявляться во многих формах. Следуя принципу разделения ответственности, представления должны концентрироваться только на отображении данных и не могут содержать какую-либо бизнес-логику — бизнес-логика остается в модели, которая должна предоставлять представлению все, что необходимо.

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

Маршрутизация ASP.NET — это система сопоставления с шаблоном. Во время запуска приложение регистрирует один или большее число шаблонов в таблице маршрутов инфраструктуры, тем самым сообщая системе маршрутизации о том, как поступать с любыми запросами, которые соответствуют этим шаблонам.

Когда механизм маршрутизации получает запрос во время выполнения, он сопоставляет URL этого запроса с зарегистрированными шаблонами URL. Если механизм маршрутизации находит совпадающий шаблон в таблице маршрутизации, он перенаправляет запрос соответствующему обработчику для этого запроса. В противном случае, если URL запроса не совпадает ни с одним из зарегистрированных шаблонов маршрутов, механизм маршрутизации указывает на то, что ему не удалось определить, как обрабатывать запрос, возвращая код состояния HTTP 404.

Маршруты ASP.NET MVC отвечают за определение того, какой метод контроллера (по-другому известный как действие контроллера) выполнять для данного URL. С маршрутами связаны следующие свойства: уникальное имя (имя может использоваться в качестве специфичной ссылки на конкретный маршрут); шаблон URL (простой синтаксис шаблонов, который разбирает совпадающие URL на значащие сегменты); стандартные значения (необязательный набор стандартных значений для сегментов, определенных в шаблоне URL); ограничения (набор ограничений для применения к шаблону URL с целью более узкого определения URL, для которых он дает совпадение).

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

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

Классы контроллеров не являются чем-то особенным, т. е. они не сильно по виду отличаются от других классов.NET. На самом деле всю обработку запросов выполняют методы классов контроллеров, которые называются действиями контроллеров. Например, класс HomeController может содержать три действия: Index, About, Contact. Таким образом, учитывая стандартный шаблон маршрута //, когда производится запрос URL вида /Home/About, инфраструктура маршрутизации определяет, что этот запрос должен быть обработан методом About() класса HomeController. Затем ASP.NET MVC Framework создает новый экземпляр класса HomeController и выполняет его метод About(). В этом случае метод About() передает данные представлению через свойство ViewBag, после чего сообщает ASP.NET MVC Framework о необходимости отображения представления по имени About за счет вызова метода View(), который возвращает ActionResult типа ViewResult.

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

Например, когда контроллер решает отобразить представление, он сообщает ASP.NET MVC Framework об этом, возвращая ViewResult. Он не визуализирует само представление. Такое слабое связывание является еще одним хорошим примером реализации разделения ответственности (что делать против того, каким образом это делать). Несмотря на тот факт, что каждое действие контроллера должно возвращать ActionResult, они редко создаются вручную.

Читайте также:  Сочетание alt и цифр

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

Привязка модели (modelbinding) — это процесс создания объектов.NET с использованием данных, отправленных браузером в HTTP-запросе. Мы полагаемся на процесс привязки модели всякий раз, когда определяем метод действия, который принимает параметр — объекты параметров создаются привязкой модели [2].

В ASP.NET MVC Framework действия контроллеров, которым необходимо отобразить HTML-разметку пользователю, возвращают экземпляр ViewResult — тип ActionResult, знающий, как визуализировать контент для ответа. Когда наступает время визуализации представления, ASP.NET MVC Framework ищет представление с использованием имени, предоставленного контроллером. Инфраструктура ASP.NET MVC полагается на соглашение, которое заключается в том, что все представления приложения хранятся внутри папки Views в корне web-сайта. Более конкретно, ASP.NET MVC ожидает обнаружить представления в папках, именованных согласно контроллеру, к которому они относятся. Если найти представление с нужным именем в папке Views контроллера не удалось, ASP.NET MVC продолжает поиск в общей папке /Views/Shared.

Внутри представления присутствует HTML-разметка и код — это Razor. Razor — это синтаксис, который позволяет комбинировать код и контент в плавной и выразительной манере. Несмотря на введение нескольких символов и ключевых слов, Razor не является новым языком, он позволяет писать код, используя известные языки программирования, такие как C# или VisualBasic.NET. Интеллектуальный анализатор Razor позволяет разработчикам более выразительно представлять логику и упрощает переходы между кодом и разметкой. Хотя синтаксис Razor может отличаться от других синтаксисов разметки, он, в конечном счете, преследует ту же самую цель — визуализацию HTML.

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

В таком случае возникает вопрос, каким образом контроллер передает эту информацию представлению? Инфраструктура ASP.NET MVC предлагает несколько способов передачи данных в рамках границ «модель-представление-контроллер»: ViewData и TempData — эти объекты являются словарями, доступными в виде свойств в контроллерах и представлениях, которые чаще всего используются. Таким образом, передача данных из контроллера в представление сводится к установке значения в контроллере. Контроллеры и представления ASP.NET MVC, открывающие свойство ViewData, также предоставляют доступ к похожему свойству по имени ViewBag. Свойство ViewBag — это просто оболочка вокруг ViewData, которая открывает словарь ViewData как объект dynamic. В дополнение к базовому поведению словаря, объект ViewData, также предлагает свойство Model, которое представляет главный объект, являющийся целью запроса. Model концептуально ничем не отличается от ViewData [“Model”], оно превращает модель в объект первого класса и считает ее более важной, чем другие данные, которые могут быть в запросе. По умолчанию свойство Model, доступное внутри представлений Razor, является динамическим (dynamic), а это означает, что получать доступ к его значениям можно, не зная точный тип.

Модели обычно считаются наиболее важной частью архитектуры MVC. С технической точки зрения модель обычно состоит из нормальных классов, которые открывают доступ к данным в виде свойств и к логике в виде методов. Эти классы бывают всех видов и размеров, но наиболее распространенным примером является «модель данных» или «модель предметной области», основная работа которой заключается в управлении данными.

Моя цель — стать Middle ASP.NET MVC developer.

Почему такая конкретика, почему именно Middle? — Это тот уровень специалиста, который уже способен играть важную роль в проектах. Это тот специалист, который имеет за плечами опыт разработки проектов, может взять на себя ответственность, при разработке конкретной части ПО, не боясь, что он его завалит. Это человек, который доказывает, что он развивается по своей специальности и не собирается прекращать этот процесс.

Почему Back-End, а не Front-End? — Нет тяги к творчеству :D, люблю заниматься технической частью 🙂

Цель имеет свойство дополняться деталями. На данный момент сформирован "каркас".

Начну с некоторых определений, которые рано или поздно могут возникнуть в комментариях:

Кто такой ASP.NET MVC Developer?

Это программист, который занимается backend-разработкой web-приложения, используя платформу .NET и ASP.NET MVC Framework.

А что называется "Back-end" разработкой?

Back-end разработка — это веб программирование, целью которого является реализация серверной стороны сайта, интеграция базы данных и связь ее с пользовательской (front-end) стороной.

Теперь некоторые пояснения о том, почему выбор пал на ASP.NET, а не, например: Spring MVC, а может вообще Rails, ну а может PHP YII2.

  1. Платформа: .NET является платной платформой, но это позволяет ей быстро развиваться, быть стабильной, поддерживаемой.
  2. Основные заказчики — Enterprise-сегмент.
  3. Огромное сообщество разработчиков.
  4. Большое количество учебных материалов, помогающие освоить технологию.
  5. Немаловажный аспект: среда разработки.
  6. Ну и немного от себя: системный админ, который обслуживал Windows-based IT infrastructure.

Что же требует работодатель от кандидата, какие технологии, навыки, опыт?

  • опыт коммерческой веб-разработки на ASP.NET MVC — не менее 2-х лет;
  • понимание принципов и особенностей платформы .NET и языка C#;
  • ASP.NET MVC;
  • HTML, CSS, JavaScript;
  • SQL Server;
  • Entity Framework;
  • WCF;
  • опыт работы с Git/TFS

Критерий завершения

Работать Middle ASP.NET MVC developer’ом и получать от этого удовольствие! 🙂

Личные ресурсы

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

Знания — имеется "базовый" багаж знаний, который позволит начать достигать цель не с самых основ.

Основы использования Git

Используемые материалы: курс ITVDN.

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

  1. Вступление в Git.
  2. Локальная работа с Git.
  3. Работа с GitHub.
  4. Ветвления и слияния в Git
Читайте также:  Шарит для виндовс фон

Изучение HTML & CSS

Вспомнить базовые вещи построения HTML-страниц, а также применение стилей CSS.

Изучение JavaScript

Необходимо ознакомиться с книгой, для того, чтобы понимать, как ведет себя front-end.

Изучение С#(видеокурсы)

Используемый материал: курс ITVDN С# Professional (HowTo C# professional)

  1. Пользовательские коллекции
  2. Системные коллекции
  3. Программирование ввода-вывода
  4. Работа с текстом. Регулярные выражения
  5. XML. Файлы конфигурации. Реестр
  6. Рефлексия
  7. Атрибуты
  8. Сериализация
  9. Управление памятью. Сборщик мусора
  10. Полиморфизм. Версионность
  11. Потоки
  12. Синхронизация
  13. Асинхронная модель программирования
  14. TPL. Параллельное программирование
  15. Async Await
  16. Домены приложений. NT-службы

Изучение С#(книга)

Используемый материал: Эндрю Троелсен — Язык программирования C# 5.0 и платформа .NET 4.5

Заострить внимание на темах, которые будут непонятны после просмотра видеоурока.

  1. Особенности и недостатки пользовательских коллекций.

Практическое применение пройденного материала по C#

Реализовать полученные знания на практике, "сливать" практику на аккаунт GitHub

Изучение языка SQL

Используемые материалы: курс ITVDN SQL Essential

  1. Введение в SQL
  2. T-SQL, Запросы
  3. Основы DDL
  4. Проектирование БД
  5. Вложенные запросы
  6. JOIN-s
  7. Индексирование
  8. Представления. Хранимые процедуры. Пользовательские функции
  9. Транзакции. Триггеры

Практические занятия по SQL

Отработать навыки, полученные при выполнении этапа 5.

Можно воспользоваться ресурсом "Тренажер" на ITVDN

Технология ADO.NET

Используемый материал: курс ITVDN: ADO.NET

  1. Архитектура технологии ADO.NET, подключаемая часть архитектуры
  2. Получение данных. Объект SqlCommand
  3. Автономная часть архитектуры. Объекты DataColumn, DataTable
  4. Классы DataRow, DataSet и DataAdapter
  5. Работа с реляционными данными. Объект DataRelation
  6. Фильтрация изменений и сортировка данных
  7. Объект DataSet со строгим контролем типов
  8. Передача обновлений

Технология Entity Framework 6

Что такое Entity Framework и с чем его едят.

Основные подходы создания моделей. Уделить особое внимание "Code First".

Асинхронность операций в EF6 и наследование.

HTML5 & CSS3

Курс ASP.NET MVC Fundamentals

Используемый материал: курс ITVDN ASP.NET MVC Fundamentals

  1. Введение
  2. Маршрутизация и области
  3. Представления и компоновки
  4. Контроллеры и действия
  5. Вспомогательные методы и HTML формы
  6. Модель
  7. Привязка модели и валидация
  8. Фильтры и авторизация
  9. AJAX
  10. Безопасность

Pro ASP.NET MVC 5, Adam Freeman

Книга предназначена для разработчиков веб-приложений, имеющих базовые знания ASP.NET и C#, которые переходят на новую платформу — ASP.NET MVC 5 Framework. В пятом издании ключевые концепции архитектуры «модель-представление-контроллер» (шаблон-паттерн «Model-View-Controller», MVC) не просто объясняются или обсуждаются в изоляции, но демонстрируются в действии. В вашем распоряжении — расширенное учебное руководство, позволяющее создать работающее веб-приложение электронной коммерции, в котором сочетаются возможности ASP.NET MVC 5 и новейшие средства языка C# 5.0 вместе с наилучшими методиками модульного тестирования. Получив этот практически бесценный опыт, вы сможете по достоинству оценить как сильные, так и слабые стороны MVC 5, и успешно воплотить обретенные знания в реальных проектах.

Windows Communication Foundation

Изучить технологию Windows communication foundation.

Устроиться на позицию Junior ASP.NET MVC Developer

Базовый этап, без которого невозможно достичь цели 🙂

ASP.NET Core MVC — это богатый фреймворк для создания веб приложений и API с помощью паттерна Model-View-Controller.

Что такое MVC паттерн?¶

Архитектурный паттерн Model-View-Controller (MVC) делит приложение на три основные группы компонентов: Models (модели), Views (представления) и Controllers (контроллеры). Этот паттерн помогает достичь разделения ответственности. С помощью этого паттерна пользовательские запросы передаются контроллеру, который отвечает за работу с моделью для получения результата запроса. Затем контроллер выбирает представление, чтобы отобразить результат, и передает ему из модели необходимые данные.

На следующем изображении показаны три основных компонента и их взаимосвязь:

Разделение ответственности делает приложение более простым, поскольку нам легче кодировать, отлаживать и тестировать компонент (модель, представление или контроллер), который делает какую-то одну работу (и следует принципу единственной обязанности). Нам довольно сложно обновлять, тестировать и отлаживать код, в котором присутствуют зависимости, общие для двух или трех этих компонентов. Например, логика UI, как правило, меняется чаще, чем бизнес логика. Если код представления и бизнес логика объединены в один объект, вам необходимо менять объект, содержащий бизнес логику каждый раз, когда вы вносите изменения в UI. Скорее всего, тогда у вас появятся новые ошибки и вам потребуется заново тестировать всю бизнес логику, даже после малейшего изменения пользовательского интерфейса.

И представление, и контроллер зависят от модели. А вот модель не зависит ни от представления, ни от контроллера. Это одно из ключевых преимуществ разделения ответственности. Это дает возможность создавать и тестировать модель независимо от визуального представления.

За что отвечает модель¶

Модель в MVC приложении представляет состояние приложения и любую бизнес логику и операции, которые оно должно выполнить. Бизнес логика и любая логика, касающаяся состояния приложения, должны быть инкапсулированы в модели. Строго типизированные представления обычно используют типы ViewModel, которые содержат данные для отображения в этом представлении; контроллер создаст и заполнит эти экземпляры ViewModel из модели.

Есть много способов организовать модель в приложении, которое использует архитектурный паттерн MVC. См. различные типы моделей.

За что отвечает представление¶

Представления отвечают за отображение контекста в пользовательском интерфейсе. Они используют движок представления Razor, чтобы включить .NET код в HTML разметку. В представлениях должно быть по минимуму логики, и эта логика должна касаться отображаемого контента. Если вам нужно внести большой кусок логики в файлы представлений, чтобы отобразить данные из сложной модели, используйте компонент представления , ViewModel или шаблон, чтобы упростить представление.

За что отвечает контроллер¶

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

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

Если вы видите, что методы действия контроллеров часто проделывают один и тот же вид работы, последуйте принципу “не повторяйся” — Don’t Repeat Yourself и переместите эти общие действия в фильтры.

Читайте также:  Как восстановить imei через компьютер

Что такое ASP.NET Core MVC¶

ASP.NET Core MVC — это легкий фреймворк с открытым исходным кодом, оптимизированный для работы с ASP.NET Core.

ASP.NET Core MVC предлагает основанный на паттерне способ создания динамических веб сайтов, где включено чистое разделение ответственности. Он предлагает полный контроль над разметкой, поддерживает TDD разработку и использует последние веб стандарты.

Функционал¶

ASP.NET Core MVC includes the following features:

Роутинг¶

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

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

Атрибутивный роутинг позволяет указать роутовую информацию, передав контроллерам и методам действия атрибуты, которые определяют роуты приложения. Это обозначает, что определения располагаются рядом с контроллером и действиями, с которыми они связаны.

Связывание моделей¶

Связывание моделей ASP.NET Core MVC конвертирует данные клиентского запроса (значения из форм, роутовые данные, параметры строки запроса, HTTP заголовки) в объекты, которые может обработать контроллер. В результате этого контроллер не должен выяснять, что за входящие данные ему пришли; данные просто передаются его методам действия в виде параметров.

Валидация моделей¶

ASP.NET Core MVC поддерживает валидацию , присваивая объекту модели атрибуты валидации DataAnnotations. С помощью атрибутов валидации проверка происходит со стороны клиента, прежде чем значения будут отправлены на сервер, а затем проверка происходит со стороны сервера, прежде чем будет вызван метод действия контроллера.

Фреймворк обработает валидируемые данные запроса и со стороны клиента, и со стороны сервера. Логика валидации добавляется отображаемым представлениям в виде аннотаций и реализуется в браузере с помощью валидации jQuery.

Внедрение зависимостей¶

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

В приложении также может присутствовать внедрение зависимостей в файлы представлений , это реализуется с помощью директивы @inject :

Фильтры¶

Фильтры помогают разработчикам инкапсулировать такие вещи как обработка ошибок или авторизация. Фильтры запускают для методов действий пользовательскую “до” и “после” обработку, и их можно настроить так, чтобы они запускались в конкретной точке в потоке выполнения запроса. Фильтры можно применять к контроллерам или методам действий в виде атрибутов (либо их можно запускать глобально). Некоторые фильтры (еапример, Authorize ) включены во фреймворк.

Области¶

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

Веб API¶

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

Фреймворк поддерживает согласование контента HTTP со встроенным форматированием данных , как JSON или XML. Вы можете написать пользовательские механизмы форматирования , если хотите поддерживать свои собственные форматы.

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

Тестируемость¶

Поскольку фреймворк использует интерфейсы и внедрение зависимостей, созданные с его помощью приложения очень легко тестировать. Это касается и модульного, и интеграционного тестирования. Для второго во фреймворк включены такие функции как TestHost и InMemory провайдер для Entity Framework. См. тестирование логики контроллера .

Движок представления Razor¶

В ASP.NET Core MVC представлениях для отображения используется движок представления Razor . Razor — это компактный, выразительный язык разметки шаблонов для определения представлений, использующий встроенный C# код. Razor используется для динамического генерирования веб контента на сервере. Вы можете смешивать серверный и клиентский код, не загрязняя его.

Используя движок представления Razor, вы можете определить верстку , частичные представления и заменяемые разделы.

Строго типизированные представления¶

Razor представления в MVC могут быть строго типизированными. Контроллер может передать представлению строго типизированную модель, и тогда будет проверяться тип представления, а также включаться поддержка IntelliSense.

Например, следующее представление определяет модель типа IEnumerable

Тег-хелперы¶

Тег-хелперы позволяют серверному коду принимать участие в создании и отображении HTML элементов в Razor файлах. Тег-хелперы можно использовать для определения пользовательских тегов (например, ) или для изменения поведения существующих тегов (например, ). Тег-хелперы привязываются к конкретным элементам, основываясь на имени элемента и его атрибутах. Они дают преимущества отображения со стороны сервера, сохраняя возможности HTML редактирования.

Для общих задач существует множество встроенных тег-хелперов — для создания форм, ссылок, загрузки активов и так далее — и еще больше доступно в открытых GitHub репозиториях и в виде NuGet пакетов. Тег-хелперы работают с HTML элементами, основываясь на имени элемента, имени атрибута или родительском теге. Например, встроенный LinkTagHelper можно использовать для создания ссылки к методу действия«Login« контроллера AccountsController :

EnvironmentTagHelper можно использовать для включения в представление различных скриптов (например, сырых или минимизированных), основываясь на среде, как то Development, Staring или Production:

Компоненты представления¶

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

Ссылка на основную публикацию
Что написать о себе в инстаграмме девушке
Вроде как и всё ясно, но в самом деле, как только доходит до дела, написать о себе в Инстаграм, у...
Чем открыть cab файл на компьютере
Файл формата CAB открывается специальными программами. Чтобы открыть данный формат, скачайте одну из предложенных программ. Чем открыть файл в формате...
Чем открыть fb2 на телефоне
Формат электронных публикаций FB2, наряду с EPUB и MOBI, является одним из самых популярных для книг, публикуемых в интернете. Мы...
Что нового в айос 12 1
Apple выпустила iOS 12.1.1 − скорее всего, последнюю публичную сборку iOS 12 в этом году. Хотя это обновление по большей...
Adblock detector