Концепция MVC (Model-View-Controller: модель-вид-контроллер) очень часто упоминается в мире веб программирования в последние годы. Каждый, кто хоть как-то связан с разработкой веб приложений, так или иначе сталкивался с данным акронимом. Сегодня мы разберёмся, что такое - концепция MVC, и почему она стала популярной.

Древнейшая история

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

Впервые она была описана в 1979 году, конечно же, для другого окружения. Тогда не существовало концепции веб приложения. Tim Berners Lee (Тим Бернерс Ли) посеял семена World Wide Web (WWW) в начале девяностых и навсегда изменил мир. Шаблон, который мы используем сегодня, является адаптацией оригинального шаблона к веб разработке.

Бешеная популярность данной структуры в веб приложениях сложилась благодаря её включению в две среды разработки, которые стали очень популярными: Struts и Ruby on Rails. Эти две среды разработки наметили пути развития для сотен рабочих сред, созданных позже.

MVC для веб приложений

Идея, которая лежит в основе конструкционного шаблона MVC, очень проста: нужно чётко разделять ответственность за различное функционирование в наших приложениях:

Приложение разделяется на три основных компонента, каждый из которых отвечает за различные задачи. Давайте подробно разберём компоненты на примере.

Контроллер (Controller)

Контроллер управляет запросами пользователя (получаемые в виде запросов HTTP GET или POST, когда пользователь нажимает на элементы интерфейса для выполнения различных действий). Его основная функция — вызывать и координировать действие необходимых ресурсов и объектов, нужных для выполнения действий, задаваемых пользователем. Обычно контроллер вызывает соответствующую модель для задачи и выбирает подходящий вид.

Модель (Model)

Модель - это данные и правила, которые используются для работы с данными, которые представляют концепцию управления приложением. В любом приложении вся структура моделируется как данные, которые обрабатываются определённым образом. Что такое пользователь для приложения — сообщение или книга? Только данные, которые должны быть обработаны в соответствии с правилами (дата не может указывать в будущее, e-mail должен быть в определённом формате, имя не может быть длиннее Х символов, и так далее).

Модель даёт контроллеру представление данных, которые запросил пользователь (сообщение, страницу книги, фотоальбом, и тому подобное). Модель данных будет одинаковой, вне зависимости от того, как мы хотим представлять их пользователю. Поэтому мы выбираем любой доступный вид для отображения данных.

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

Вид (View)

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

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

Разберём пример

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

У нас есть определённый контроллер для обработки всех действий, связанных с книгами (просматривать, редактировать, создавать и так далее). Давайте назовем его books_controller.php в нашем примере. Также нам нужна модель, например, book_model.php , которая обрабатывает данные и логику, связанные с позицией в магазине. В заключение, нам нужно несколько видов для представления данных, например, список книг, страница для редактирования и так далее.

Следующий рисунок показывает, как обрабатывается запрос пользователя для просмотра списка книг по теме фэнтези :

Контроллер (books_controller.php) получает запрос пользователя (запрос HTTP GET или POST). Мы можем организовать центральный контроллер, например, index.php, который получает запрос и вызывает books_controller.php.

Контроллер проверяет запрос и параметры, а затем вызывает модель(book_model.php), запрашивая у неё список доступных книг по теме фэнтези .

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

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

В чем преимущества?

Самое очевидное преимущество, которое мы получаем от использования концепции MVC — это чёткое разделение логики представления (интерфейса пользователя) и логики приложения.

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

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

А зачем использовать рабочую среду?

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

Рассмотрим cakePHP в качестве примера рабочей среды MVC. После установки у вас будет три основных директории:

  • cake/
  • vendors/

Папка app является местом размещения ваших файлов. Это место для разработки вашей части приложения.

В папке cake размещаются файлы cakePHP (функциональность рабочей среды).

Папка vendors служит для хранения библиотек PHP сторонних разработчиков.

Ваше рабочее пространство (директория app) имеет следующую структуру:

  • app/
    • config/
    • controllers/
    • locale/
    • models/
    • plugins/
    • tests/
    • vendors/
    • views/
    • webroot/

Вам нужно размещать ваши контроллеры в директории controllers , модели в директории models и виды в директории views !

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

Использование рабочей среды для нашего примера

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

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

Итак, как только пользователь нажимает кнопку, браузер запрашивает данный url:

Www.ourstore.com/books/list/fantasy

CakePHP форматирует URL по шаблону /controller/action/param1/param2 , где action - это функция, которая вызывается контроллером. В старом классическом виде url будет выглядеть так:

Www.ourstore.com/books_controller.php?action=list&category=fantasy

Контроллер

В рабочей среде cakePHP, наш контроллер будет выглядеть так:

class BooksController extends AppController {

Function list($category) {

$this->set("books", $this->Book->findAllByCategory($category));

Function add() { ... ... }

Function delete() { ... ... }

... ... } ?>

Просто, не так ли?. Данный контроллер будет сохранен как books_controller.php и размещён в /app/controllers . Он содержит список функций, которые выполняют действия для нашего примера, а также другие функции для выполнения связанных с книгами операций (добавить новую книгу, удалить книгу, и так далее).

Рабочая среда предоставляет нам множество готовых решений и нужно только сформировать список книг. Есть базовый класс, в котором уже определено базовое функционирование контроллера, таким образом, надо унаследовать свойства и функции этого класса (AppController является наследником Controller ).

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

this->Book - это наша модель, и часть кода:

$this->Book->findAllByCategory($category)

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

Метод set в строке:

$this->set("books", $this->Book->findAllByCategory($category));

Контроллер передаёт данные виду. Переменная books принимает данные, возвращённые моделью, и они становятся доступными для вида.

Теперь остаётся только вывести на экран вид, но эта функция выполняется автоматически в cakePHP, если мы используем вид по умолчанию. Если мы хотим использовать другой вид, то надо явно вызвать метод render .

Модель

Модель даже ещё проще:

class Book extends AppModel {

Почему она пустая? Потому что она является наследником базового класса, который обеспечивает необходимую функциональность и нам нужно использовать соглашение об именах в CakePHP для того, чтобы рабочая среда выполняла все другие задачи автоматически. Например, cakePHP известно на основании имени, что данная модель используется в BooksController , и что она имеет доступ к таблице базы данных с именем books.

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

Код сохраняем как book.php в папке /app/models .

Вид

Все, что нам нужно теперь сделать — это создать вид (по крайней мере, один) для списка действий. Вид будет иметь код HTML и несколько (как можно меньше) строк кода PHP для организации цикла по массиву книг, которые предоставляется моделью.












Название Автор Цена

Как можно заметить, вид создаёт не полноценную страницу, а лишь фрагмент HTML (таблицу в данном случае). Потому, что CakePHP обеспечивает другой способ для определения шаблона страницы, и вид вставляется в данный шаблон. Рабочая среда также обеспечивает нас некоторыми вспомогательными объектами для выполнения общих задач во время создания частей HTML страницы (вставка форм, ссылок, Ajax или JavaScript).

Сохраняем вид как list.ctp (list — это имя действия, а ctp означает шаблон CakePHP) в папке /app/views/books (потому, что это вид для действия контроллера).

Вот так выполняются все три компонента с помощью рабочей среды CakePHP!

Профиль аудитории:

  • Курс предназначен для профессиональных веб-разработчиков, использующих Microsoft Visual Studio индивидуально или в команде, в больших или маленьких организациях.

Предварительные требования:

  • 2-3 года опыта разработки веб-приложений, используя Microsoft Visual Studio и Microsoft ASP.NET;
  • практический опыт работы с.NET Framework;
  • базовые знания языка программирования C#.

По окончании курса слушатели смогут:

  • описывать веб-технологии Майкрософт и выбирать подходящий инструмент для решения поставленной задачи;
  • проектировать архитектуру и реализацию веб-приложения, которое будет удовлетворять набору функциональных требований, требованиям пользовательского интерфейса и соответствовать бизнес-модели;
  • создавать Модель MVC и писать код, реализующий бизнес логику приложения и работу с данными;
  • добавлять Контроллеры к приложениям MVC, чтобы управлять взаимодействием с пользователем, обновлением Модели и обеспечивать взаимодействие с Представлениями;
  • создавать Представления MVC, которые позволяют отображать и редактировать данные и взаимодействуют с Моделями и Контроллерами;
  • запускать модульные тесты (unit tests) и инструменты отладки для веб-приложений в Visual Studio 2012 и конфигурировать приложения для поиска неисправностей;
  • разрабатывать веб приложения, которые используют маршрутизацию ASP.NET, чтобы предоставлять удобные адреса URL и логически понятную навигацию для пользователей;
  • обеспечивать согласованный внешний вид страниц сайта, включая корпоративный брэндинг, во всем веб-приложении MVC;
  • использовать частичное обновление страниц и кеширование для уменьшения сетевой загрузки, создаваемой приложением, и уменьшать время реакции на действия пользователя;
  • писать код JavaScript, который запускается на клиентской стороне и использует библиотеку скриптов jQuery для оптимизации взаимодействия веб приложений MVC с пользователем;
  • создавать приложения MVC, устойчивые к вредоносных атакам и сохраняющие информация о настройках пользователях;
  • понимать, как написать веб-службу Windows Azure и обратиться к нему из MVC приложения;
  • описывать, что такое Web API и зачем разработчики могут добавлять их в приложение;
  • изменять режим обработки запросов браузера приложением MVC;
  • описывать, как упаковывать и развертывать ASP.NET MVC 5 веб-приложение с компьютера разработчика на веб сервер;
  • разработку веб приложений с помощью ASP.NET MVC 5;
  • разработку Моделей ASP.NET MVC 5;
  • разработку Контроллеров ASP.NET MVC 5;
  • разработку Представлений ASP.NET MVC 5;
  • как выполнять тестирование и отладку веб приложений ASP.NET MVC 5;
  • структурирование ASP.NET MVC 5 веб-приложений;
  • особенность применения стилей к веб приложениям ASP.NET MVC 5;
  • механизм построения быстро реагирующих страниц в ASP.NET MVC 5;
  • особенность использования JavaScript и jQuery для построения быстро реагирующих веб-приложений MVC 5;
  • принципы контроля доступа к веб-приложениям ASP.NET MVC 5;
  • как создавать надежные веб приложения ASP.NET MVC 5;
  • реализацию Web APIs в веб-приложениях ASP.NET MVC 5;
  • обработку запросов в веб-приложениях ASP.NET MVC 5;
  • принципы развертывания веб-приложений ASP.NET MVC 5.

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

Сегодня мы подобрали для вас лучшие курсы ASP.NET MVC 5. На базе этого фреймворка Microsoft разрабатывает различные динамические веб-приложения с управлением данными. В качестве ресурса была выбрана Udemy, самая популярная платформа для онлайн-обучения, которая содержит 45000+ курсов и насчитывает 15 млн.+ студентов со всего мира.

Онлайн-курсы ASP.NET MVC 5

В чем преимущества онлайн-курсов ASP.NET MVC 5:
— обучение в удобном для вас ритме;
— постоянный доступ и возможность вернуться к непонятому материалу;
— возможность прочесть отзывы и заранее подобрать под себя курс;
— большой выбор, не ограничиваемый географическими рамками.

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

Лучшие к урсы ASP.NET MVC 5 2017

  1. Полный курс ASP.NET MVC 5

Преподаватель: Мош Хамедани, идейный инженер программного обеспечения, входит в число лучших преподавателей на Udemy
Стоимость: 190$
Количество студентов: 16773+
Объем программы: 138 лекций; 7,5 часов
Уровень подготовки (требования для курса): C# (лямбда-выражения на минимальном уровне, LINQ); базовые знания веб-разработки (HTML, CSS, JavaScript и jQuery)

Чему вы научитесь?
— Понимать архитектурный шаблон MVC
— Создавать формы с валидацией со стороны сервера и клиента
— Использовать мощные плагины jQuery
— Использовать Entity для запроса и обновления данных
— Создавать и развертывать приложения
— Управлять зависимостями клиент-сервер
— Работать с AutoMapper
— Выполнять операции CRUD
— Создавать службы RESTful с помощью веб-API ASP.NET
— Аутентификация и авторизация с помощью веб-API ASP.NET
— Понимать и применять лучшие практики безопасности
— Создавать и настраивать конфигурации сборки
— Тестировать API с помощью PostMan

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

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

Курс рассчитан на новичков, но предполагает знание C# и веб-разработки. Курс очень популярный (16 тысяч студентов!) и имеет высокий рейтинг (4.6) Курсы C# можно найти , а курсы по веб-разработке .

  1. Проект на ASP.NET MVC 5 – CMS и корзина с поддержкой PayPal

Преподаватель: Воислав Ковачевич, веб-программист с огромным опытом и знаниями в области PHP, C#, ASP.NET MVC, OOP, HTML, JavaScript и т.д.
Стоимость: 30$
Количество студентов: 354+
Объем программы: 70 лекций; 9 часов
Уровень подготовки (требования для курса): Visual Studio 2015 Community; навыки работы в Visual Studio, базовые знания C#, MVC и веб-разработки (желательно, но не обязательно)

Чему вы научитесь?
— Работать с ASP.NET MVC и Entity Framework
— Создавать собственные приложения на ASP.NET MVC и Entity Framework

Если предыдущий курс был посвящен основам и теоретической части с небольшими практическими заданиями, то этот курс в корне отличается от него. Это практический курс по ASP.NET MVC 5 с использованием технологий Entity Framework и Bootstrap.

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

  1. Создание сайта с подписками на базе ASP.NET MVC 5

Преподаватель: Йонас Фагерберг, профессиональный преподаватель, разработчик и консультант
Стоимость: 75$
Количество студентов: 354+
Объем программы: 239 лекций; 25,5 часов
Уровень подготовки (требования для курса): базовые знания MVC 5, HTML5 и CSS3, уверенное владение C#

Чему вы научитесь?
— Создавать реальную базу данных на коде с помощью Entity Framework
— Использовать валидацию на стороне клиента и сервера
— Использовать ASP.NET Identity для безопасности
— Создавать стили пользовательских интерфейсов с помощью CSS3 и Bootstrap
— Создавать сценарии для подписки на продукты с помощью регистрационных кодов
— Реализовать функцию сброса пароля
— Управлять пользователями и их подписками
— Добавлять и изменять, модели, виды и контроллеры для выполнения операций CRUD в базах данных
— Использовать JavaScript, jQuery и Ajax для создания отличных пользовательских интерфейсов с асинхронными вызовами служб
— Создавать отзывчивые сайты
— Реализовать альтернативный способ входа в приложение
— Регистрировать пользователей на сайте

Так же, как и предыдущий, это очень практический курс. Он предполагает наличие базовых знаний по MVC 5, поэтому перед началом советуем пройти первый курс в нашей подборке «Полный курс ASP.NET MVC 5» . Вам понадобятся знания HTML5 и CSS3 , а также .

За время курса вы научитесь создавать полнофункциональный сайт с подписками (членством) и двумя пользовательскими интерфейсами (для админа и для пользователя) на базе ASP.NET MVC 5 с помощью базы данных Entity Framework. Все объясняется пошагово, и вы выполняете все упражнения вместе с преподавателем, что повышает интерактивность обучения.

После прохождения курса, кроме сертификата, вы получите веб-приложение, которое можно будет добавить к резюме или разместить в портфолио на биржах фрилансеров типа UpWork – это реальный опыт, подтвержденный на деле.

Помните, что онлайн-курсы ASP.NET MVC 5 не только дают вам необходимые знания и расширяют возможности для карьерного роста, но и экономят ваше время и деньги. Выбирайте только самое лучшее с InBenefit и Udemy!

Александр - основатель проекта сайт «Веб-лаборатория успеха», созданного в поддержку начинающим и продолжающим интернет-предпринимателям.Убежденный трудоголик, за плечами которого профессиональный опыт руководства редакцией интернет-журнала, создания и управления собственным интернет-магазином. Основной род занятий: продвижение бизнесов (в т.ч. интернет-магазинов) через Facebook и Google Adwords. Основное увлечение: монетизация сайтов через инструменты партнерского маркетинга и Google Adsense. Личные подтвержденные рекорды: 3 миллиона посетителей блога в месяц.

Модуль 1: Изучение ASP.NET Core MVC

Microsoft ASP.NET Core MVC и другие веб-технологии ASP.NET Core могут помочь вам создавать и размещать динамические, мощные и расширяемые веб-приложения. ASP.NET Core, частью которого является ASP.NET Core MVC, является кроссплатформенной средой с открытым исходным кодом, которая позволяет создавать веб-приложения. Вы можете разрабатывать и запускать веб-приложения ASP.NET Core в Windows, macOS, Linux или на любой другой платформе, которая его поддерживает. ASP.NET Core MVC поддерживает гибкий, управляемый тестами цикл разработки. Он также позволяет использовать новейшие стандарты HTML и интерфейсные среды, такие как Angular, React и другие.

  • Обзор веб-технологий Microsoft
  • Обзор ASP.NET 4.x
  • Введение в ASP.NET Core MVC

Лабораторная работа: изучение ASP.NET Core MVC

  • Изучение приложения бритвенных страниц
  • Изучение приложения веб-API
  • Изучение приложения MVC
  • Понимать разнообразие технологий, доступных в веб-стеке Microsoft.
  • Опишите различные модели программирования, доступные для разработчиков в ASP.NET.
  • Выберите между ASP.NET Core и ASP.NET 4.x.
  • Опишите роль ASP.NET Core MVC в стеке веб-технологий и как использовать ASP.NET Core MVC для создания веб-приложений.
  • Различать модели MVC, контроллеры MVC и представления MVC.

Модуль 2. Разработка веб-приложений ASP.NET Core MVC

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

  • Планирование на этапе разработки проекта
  • Проектирование моделей, контроллеров и представлений

Лабораторная работа: разработка веб-приложений ASP.NET Core MVC

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

Модуль 3. Настройка промежуточного программного обеспечения и служб в ASP.NET Core

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

  • Настройка Middlewares
  • Настройка сервисов

Лабораторная работа: настройка промежуточного программного обеспечения и сервисов в ASP.NET Core

  • Работа со статическими файлами
  • Создание собственного промежуточного программного обеспечения
  • Использование внедрения зависимости
  • Внедрение услуги в контроллер

После прохождения этого модуля студенты смогут:

  • Использовать существующее промежуточное ПО для настройки приложения ASP.NET Core.
  • Создавать свое собственное промежуточное программное обеспечение и используйте его для определения пользовательского поведения.
  • Понимать основные принципы, лежащие в основе внедрения зависимостей, и то, как они используются в ASP.NET Core.
  • Знать, как создать пользовательскую службу, настроить ее область действия и внедрить ее как в промежуточное ПО, так и в контроллеры ASP.NET Core MVC.

Модуль 4: Разработка контроллеров

ASP.NET Core MVC - это платформа для создания веб-приложений с использованием архитектурного шаблона Model-View-Controller (MVC). Контроллер по существу отвечает за обработку веб-запроса путем взаимодействия с моделью и последующей передачи результатов в представление. Модель представляет бизнес-уровень, иногда называемый доменом, и может включать объекты данных, логику приложения и бизнес-правила. Представление использует данные, которые оно получает от контроллера, для создания HTML или другого вывода, который отправляется обратно в браузер. В этом модуле вы узнаете, как разрабатывать контроллеры. Контроллеры являются центральными для приложений MVC. Понимание того, как работают контроллеры, крайне важно для возможности создавать соответствующие объекты модели, манипулировать ими и передавать их в соответствующие представления. Контроллер - это класс. Он содержит несколько методов. Эти методы называются действиями. Когда приложение MVC получает запрос, оно находит, какой контроллер и действие должны обработать запрос. Это определяется с помощью маршрутизации Uniform Resource Locator (URL). URL-маршрутизация является еще одной очень важной концепцией, необходимой для разработки приложений MVC. Среда ASP.NET Core MVC включает гибкую систему маршрутизации URL, которая позволяет вам определять правила отображения URL в ваших приложениях. Чтобы максимизировать повторное использование кода в контроллерах, важно знать, как писать фильтры действий. Вы можете использовать фильтры действий для запуска кода до или после каждого действия в веб-приложении, для каждого действия в контроллере или для других комбинаций действий контроллера.

  • Написание контроллеров и действий
  • Настройка маршрутов
  • Написание фильтров действий

Лаборатория: Разработка контроллеров

  • Добавление контроллеров и действий в приложение MVC
  • Настройка маршрутов с использованием таблицы маршрутизации
  • Настройка маршрутов с использованием атрибутов
  • Добавление файла действий

После прохождения этого модуля студенты смогут:

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

Модуль 5: Разработка видов

Представления являются одним из трех основных компонентов модели программирования Model-View-Controller (MVC). Вы можете определить пользовательский интерфейс для вашего веб-приложения, создав представления. Представление - это комбинация разметки HTML и кода C #, которая выполняется на веб-сервере. Поэтому, чтобы создать представление, вам нужно знать, как писать разметку HTML и код C # и использовать различные вспомогательные классы, встроенные в MVC. Вам также необходимо знать, как создавать частичные представления и компоненты представления, которые отображают фрагменты HTML, которые можно повторно использовать в вашем веб-приложении.

  • Создание видов с помощью синтаксиса Razor
  • Использование HTML Helpers и Tag Helpers
  • Повторное использование кода в представлениях

Лабораторная работа: разработка представлений

  • Добавление видов в приложение MVC
  • Добавление частичного вида
  • Добавление компонента просмотра

После прохождения этого модуля студенты смогут:

  • Создайте представление MVC и добавьте в него разметку Razor для отображения данных пользователям.
  • Используйте HTML-помощники и теги-помощники в представлении.
  • Повторно используйте разметку Razor в нескольких местах в приложении.

Модуль 6: Разработка моделей

Большинство веб-приложений взаимодействуют с различными типами данных или объектов. Например, приложение электронной коммерции управляет продуктами, корзинами, покупателями и заказами. Приложение социальной сети может помочь управлять пользователями, обновлениями статуса, комментариями, фотографиями и видео. Блог используется для управления записями блога, комментариями, категориями и тегами. Когда вы пишете веб-приложение Model-View-Controller (MVC), вы создаете модель MVC для моделирования данных для вашего веб-приложения. Внутри этой модели вы создаете класс модели для каждого типа объекта. Класс модели описывает свойства каждого типа объекта и может включать бизнес-логику, соответствующую бизнес-процессам. Следовательно, модель является фундаментальным строительным блоком в приложении MVC. В этом модуле вы узнаете, как создавать код для моделей.

  • Создание моделей MVC
  • Работа с формами
  • Проверить приложение MVC

Лабораторная работа: разработка моделей

  • Добавление модели
  • Работа с формами
  • Добавить проверку

После прохождения этого модуля студенты смогут:

  • Добавьте модель в приложение MVC и напишите в ней код для реализации бизнес-логики.
  • Используйте отображение и редактирование аннотаций данных.
  • Проверьте ввод пользователя с аннотациями данных.

Модуль 7: Использование Entity Framework Core в ASP.NET Core

Веб-приложения часто используют информацию, и им обычно требуется хранилище данных для этой информации. Рендеринг веб-страниц, использующих данные из хранилища данных, позволяет создавать веб-приложения, которые постоянно изменяются в ответ на пользовательский ввод, административные действия и публикации событий. Хранилище данных обычно представляет собой базу данных, но иногда используются другие типы хранилищ данных. В приложениях Model-View-Controller (MVC) вы можете создать модель, которая реализует логику доступа к данным и бизнес-логику. Кроме того, вы можете отделить бизнес-логику от логики доступа к данным с помощью репозитория. Репозиторий - это класс, который контроллер может вызывать для чтения данных из хранилища данных и записи данных в хранилище данных. При написании приложения ASP.NET вы можете использовать технологии Entity Framework Core (EF Core) и Language Integrated Query (LINQ), которые делают код доступа к данным очень быстрым для написания и простым для понимания. В этом модуле вы увидите, как создать управляемый базой данных веб-сайт в MVC.

  • Введение в Entity Framework Core
  • Работа с Entity Framework Core

Лабораторная работа: использование Entity Framework Core в ASP.NET Core

  • Добавление Entity Framework Core
  • Используйте Entity Framework Core для извлечения и хранения данных
  • Используйте Entity Framework Core для подключения к Microsoft SQL Server

После прохождения этого модуля студенты смогут:

  • Подключите приложение к базе данных для доступа и хранения данных.
  • Объясните EF Core.
  • Работа с Entity Framework Core.
  • Используйте EF Core для подключения к базе данных, включая Microsoft SQL Server

Модуль 8. Использование макетов, CSS и JavaScript в ASP.NET Core MVC

При создании веб-приложений вы должны применять единообразный внешний вид приложения. Вы должны включить согласованные разделы верхнего и нижнего колонтитула во все представления. Microsoft ASP.NET Core MVC включает такие функции, как стили и макеты каскадных таблиц стилей (CSS), которые улучшают внешний вид и удобство использования вашего веб-приложения. В ASP.NET Core MVC вы можете создавать интерактивные элементы HTML с помощью JavaScript. Вам нужно знать, как использовать JavaScript в вашем веб-приложении. Чтобы упростить добавление JavaScript в ваше веб-приложение, вам нужно знать, как использовать библиотеки, такие как jQuery.

  • Использование макетов
  • Использование CSS и JavaScript
  • Использование jQuery

Лабораторная работа: использование макетов, CSS и JavaScript в ядре ASP.NET

  • Применение макета и ссылок на него
  • Использование CSS
  • Использование JavaScript
  • Использование jQuery

После прохождения этого модуля студенты смогут:

  • Примените согласованную разметку к приложениям ASP.NET Core MVC.
  • Добавьте код JavaScript в ваше веб-приложение.
  • Используйте библиотеку jQuery в своем веб-приложении.

Модуль 9: Разработка на стороне клиента

При создании приложения важно знать, как разработать приложение как на стороне клиента, так и на стороне сервера. В этом модуле вы изучите клиентские инструменты, которые позволят вам создавать обширные веб-приложения в любом масштабе. Эти инструменты основаны на темах, описанных в модуле 8 «Использование макетов, CSS и JavaScript в ASP.NET Core MVC». В этом модуле вы узнаете, как использовать среду Bootstrap для стилизации вашего веб-приложения. Затем вы узнаете, как использовать Sass and Less, два распространенных препроцессора Cascading Style Sheets (CSS), которые добавляют в CSS такие функции, как переменные, вложенные правила и функции. Это значительно повышает удобство сопровождения сложных веб-приложений. Далее вы узнаете, как настроить исполнители задач, такие как Grunt и gulp, и как использовать их для компиляции файлов Sass во время сборки Microsoft Visual Studio. Вы узнаете, как использовать средство запуска gulp для выполнения связывания и минимизации файлов CSS и JavaScript, а также как настроить задачу-наблюдатель для компиляции файлов Sass во время написания кода без необходимости перестраивать решение. Наконец, вы изучите адаптивные инструменты дизайна, которые позволяют настраивать отображение вашего веб-приложения на основе возможностей и спецификаций веб-браузера или устройства. Вы научитесь писать медиа-запросы CSS, как использовать адаптивную сеточную систему Bootstrap и как применять макет флексбокса CSS к своим представлениям.

  • Применение стилей
  • Использование бегунов задач
  • Адаптивный дизайн

Лаборатория: Разработка на стороне клиента

  • Используйте gulp для запуска задач
  • Стилизация с использованием Sass
  • Использование Bootstrap

После прохождения этого модуля студенты смогут:

  • Используйте Bootstrap, Sass и Less в приложении Microsoft ASP.NET Core.
  • Используйте обработчики задач в приложении ASP.NET Core.
  • Убедитесь, что веб-приложение правильно отображается на устройствах с разными размерами экрана.

Модуль 10: Тестирование и устранение неисправностей

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

  • Тестирование приложений MVC
  • Реализация стратегии обработки исключений
  • Регистрация приложений MVC

Лабораторная работа: тестирование и устранение неисправностей

  • Тестирование модели
  • Тестирование контроллера с использованием поддельного репозитория
  • Реализация репозитория в проекте MVC
  • Добавить обработку исключений
  • Добавить запись

После прохождения этого курса студенты смогут:

  • Запускать модульные тесты для компонентов Model-View-Controller (MVC), таких как классы моделей и контроллеры, и найдите потенциальные ошибки.
  • Создать приложение Microsoft ASP.NET Core MVC, которое обрабатывает исключения плавно и надежно.
  • Запустить поставщиков журналов, которые приносят пользу вашим приложениям, и запускайте их, используя общий API ведения журналов.

Модуль 11: Управление безопасностью

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

  • Аутентификация в ASP.NET Core
  • Авторизация в ASP.NET Core
  • Защита от атак

Лабораторная работа: управление безопасностью

  • Использовать личность
  • Добавить авторизацию
  • Избегайте атаки подделки межсайтовых запросов

После прохождения этого модуля студенты смогут:

  • Добавьте базовую аутентификацию в ваше приложение.
  • Настройте Microsoft ASP.NET Core Identity.
  • Добавьте базовую авторизацию в ваше приложение.
  • Используйте несколько разных подходов авторизации.
  • Знать, как работают эксплойты безопасности и как лучше защищаться от них

Модуль 12: Производительность и связь

Современные веб-приложения требуют сложного взаимодействия с пользователями. Пользователи часто запрашивают много данных за небольшой промежуток времени, а также ожидают соответствующих данных, как только они появятся в сети. Это может легко вызвать значительную нагрузку на неподготовленный сервер, что приведет к излишне сложным или повторным операциям и большой нагрузке на ваш сервер. К счастью, есть несколько способов уменьшить нагрузку. Кэширование позволяет хранить часто повторяющиеся запросы, предотвращая необходимость повторного выполнения одной и той же логики. Используя кеширование, вы можете повторно использовать уже загруженные данные и представить их пользователю. Это обеспечивает пользователю быстрое время отклика и уменьшает системные ресурсы, используемые при проведении логики для действия. Между тем состояние позволяет достичь состояния согласованности между различными запросами. Используя различные формы управления состоянием, вы можете преобразовать обычную веб-среду без сохранения состояния в ту, которая настраивается индивидуально для отдельных клиентов, при этом разные пользователи получают отдельную и релевантную работу в одном приложении. Наконец, SignalR - это структура, которая позволяет абстрагировать несколько различных протоколов связи в простой в использовании API, который позволяет легко создавать единый набор инструментов на сервере и клиенте для упрощения двусторонней связи. Это позволяет вам сосредоточиться на логике, которую вы хотите реализовать, в то же время позволяя вам не обслуживать определенные браузеры.

  • Государство управления
  • Двусторонняя связь

Лаборатория: Производительность и общение

  • Реализация стратегии кэширования
  • Управление государством
  • Двусторонняя связь

После прохождения этого модуля студенты смогут:

  • Реализация кэширования в приложении Microsoft ASP.NET Core.
  • Используйте технологии управления состоянием для улучшения взаимодействия с клиентом, предоставляя пользователю постоянный опыт.
  • Внедрите двустороннюю связь с помощью SignalR, позволяя серверу уведомлять клиента о важных событиях.

Модуль 13: Реализация веб-API

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

  • Представляем веб-API
  • Разработка веб-API
  • Вызов веб-API

Лабораторная работа: реализация веб-API

  • Добавление действий и вызов их с помощью Microsoft Edge
  • Вызов веб-API с использованием серверного кода
  • Вызов веб-API с использованием jQuery

После прохождения этого модуля студенты смогут:

  • Создавайте сервисы с помощью ASP.NET Core Web API.
  • Вызовите веб-API из серверного кода и jQuery.

Модуль 14: Хостинг и Развертывание

Приложения ASP.NET Core MVC предназначены для предоставления услуг нескольким пользователям одновременно, при этом требуется только установка сервера и предоставление клиентам доступа к нему через браузеры. Это приводит к крайне желательным приложениям, которые не зависят от установки пользователем специального программного обеспечения и обеспечения его доступности для клиентов на самых разных машинах. Чтобы настроить приложение ASP.NET Core для производственной среды, вам необходимо скомпилировать код и сжать его, а затем настроить и запустить на выделенном сервере. Хостинг предполагает использование выделенного сервера для размещения скомпилированного приложения и предоставления его пользователям в качестве веб-службы. Существует множество различных технологий, которые можно использовать для размещения вашего приложения, и вы должны выбрать ту, которая соответствует вашим требованиям. Развертывание - это процесс, в котором код проекта компилируется, а затем передается на хост-сервер таким образом, чтобы он соответствовал требованиям среды хостинга. Microsoft Azure - это облачный сервис, предоставляемый Microsoft. Он может использоваться для размещения приложений ASP.NET Core и является популярным инструментом на рынке облачных технологий. Он предоставляет удобные сервисы, связанные с веб-приложениями, с несколькими вариантами выставления счетов в соответствии с требованиями.

  • Локальный хостинг и размещение
  • Развертывание в Microsoft Azure
  • Основы Microsoft Azure

Лабораторная работа: хостинг и развертывание

  • Развертывание веб-приложения в Microsoft Azure
  • Загрузите изображение в хранилище BLOB-объектов Azure

После прохождения этого модуля студенты смогут:

  • Разместить и развернуть приложение ASP.NET Core MVC на IIS.
  • Разместить и развернуть приложение ASP.NET Core MVC в Microsoft Azure.
  • Уметь использовать службы, предлагаемые Microsoft Azure, для улучшения возможностей ваших веб-приложений.