Предыдущий ролик Следующий ролик  

Видео урок: The MVC mindset

Основы ASP.NET MVC 5

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

Исходя из того что сейчас вы смотрите этот курс, я сделаю вывод, что если вас когда-то и пугал MVC, то сейчас вы его уже не боитесь. Но я понял, что большинство разработчиков, никогда неработающих с MVC или имеющих небольшой опыт работы с этим паттерном, имеют о нем неправильное представление, что отчасти вводит их в заблуждение. Поэтому ниже я поясню, чем НЕ является MVC. MVC не есть совершенно новый способ выполнения всех задач. Вы будете рассматривать компоненты своего приложения с несколько другой стороны, но при этом будете продолжать использовать HTML, JavaScript, C# или VB, и объектно-ориентированное программирование.

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

Но могу вас уверить в том, что компания Microsoft не собирается отпугивать разработчиков от ASP.NET. И MVC-фреймворки, к примеру, Ruby on Rails, никогда бы не стали столь широко использоваться, если бы были слишком сложными и люди не могли к ним быстро приспособиться. MVC был создан для того, чтобы упростить, а не усложнить нашу жизнь как разработчиков. Я слышал от некоторых разработчиков подобные фразы: "Я ненавижу MVC, он только еще больше все усложняет". Скорее всего, таким разработчикам хочется оставаться в зоне комфорта, поскольку они считают, что могут быть достаточно производительными и без изучения новых способов работы.

Но если вы попросите их показать вам тот набор средств и инструментов, которым они пользуются при создании приложений, то возможно, вы увидите нечто похожее на эту картинку. В таком наборе сложно найти то, что нужно, а при перемещении одного элемента повредятся другие или даже совсем сломаются. MVC помогает нам контролировать сложность благодаря принципу, известному под названием "разделение ответственностей" (separation of concerns). Основные компоненты зашифрованы в трех буквах названия паттерна - MVC. Модели (Models) - это классы, которые используются для работы с данными и в которых инкапсулирована бизнес-логика.

Представления (Views) - компоненты, отвечающие за визуальное отображение и графический интерфейс, Контроллеры (Controllers) - классы, которые обрабатывают взаимодействия пользователей и контролируют управляющую логику приложения. Таким образом, если вы применяете принцип разделения ответственностей, то ваш инструментальный набор может начать походить вот на такую мастерскую. Здесь легко найти нужную вещь, к тому же у вас появляется свободное пространство, позволяющее взять какой-то фрагмент кода и работать с ним, не опасаясь при этом навредить окружающим фрагментам. Итак, приведу несколько моментов, которые следует учитывать при рассмотрении сути MVC. Это удобный способ организации кода, разметки и управляющей логики. Он прост в изучении.

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

Я буду делать это на примере реализации системы банкоматов с помощью принципов MVC. Одна из причин того, что мне нравится этот проект, - с этой системой знакомы все. Другая причина - я хочу уйти от представления о том, что браузеры запрашивают только веб-страницы, поскольку в MVC браузер будет более или менее взаимодействовать с нашим приложением путем прямого вызова методов класса контроллеров, к примеру таких методов, как withdraw, deposit, view balance и transfer funds.

Перед тем как приступить к созданию этого приложения, в следующем видео я познакомлю вас с концепцией действий контроллера.