Введение в ASP.NET MVC
ASP.NET MVC представляет собой платформу для создания сайтов и веб-приложений с использованием паттерна (или шаблона) MVC (model — view — controller).
Работа над новой платформой была начата в 2007 году, а в 2009 году появилась первая версия. В итоге к текущему моменту (2012 год) уже было выпущено 4 версии платформы, а сам фреймворк обрел большую популярность по всему миру благодаря своей гибкости и адаптивности.
Шаблон MVC, лежащий в основе новой платформы, подразумевает взаимодействие трех компонентов: контроллера (controller), модели (model) и представления (view). Что же представляют эти компоненты?
Контроллер (controller) представляет класс, с которого собственно и начинается работа приложения. Этот класс обеспечивает связь между моделью и представлением. Получая вводимые пользователем данные, контроллер исходя из внутренней логики при необходимости обращается к модели и генерирует соответствующее представление.
Представление (view) — это собственно визуальная часть или пользовательский интерфейс приложения — например, html-страница, через которую пользователь, зашедший на сайт, взаимодействует с веб-приложением.
Модель (model) представляет набор классов, описывающих логику используемых данных.
Общую схему взаимодействия упрощенно можно представить следующим образом:

ASP.NET MVC и ASP.NET Web Forms
ASP.NET MVC является в некотором роде конкурентом для традиционных веб-форм и имеет по сравнению с ними следующие преимущества:
- Разделение ответственности . В MVC приложение состоит из трех частей: контроллера, представления и модели, каждая из которых выполняет свои специфичные функции. В итоге приложение будет легче поддерживать модифицировать в будущем.
- В силу разделения ответственности приложения mvc обладают лучшей тестируемостью . И мы можем тестировать отдельные компоненты независимо друг от друга.
- Соответствие протоколу HTTP . Приложения MVC в отличие от веб-форм не поддерживают объекты состояния (ViewState). Ясность и простота платформы позволяют добиться большего контроля над работой приложения
- Гибкость . Вы можете настраивать различные компоненты платформы по своему усмотрению. Изменять какие-либо части конвейера работы MVC или адаптировать его к своим нуждам и потребностям.
В то же время не стоит однозначно сбрасывать со счетов ASP.NET WebForms. Поскольку она также имеет свои сильные стороны, например, модель событий, которая будет ближе тем разработчикам, которые ранее занимались созданием клиентских приложений.
В традиционных веб-формах вы имеете контроль над разметкой и можете в реальном времени в визуальном редакторе Visual Studio увидеть, как будет выглядеть та или иная страница. При работе с MVC Visual Studio подобного не позволяет делать.
В любом случае вы вольны выбирать ту платформу, которая приходится вам больше по душе. И если у вас написаны объемные проекты с применением традиционных веб-форм, возможно, стоит продолжать с ними работать. Тем более, что ASP.NET Web Forms еще не умирает и также продолжает развиваться.
Курс ASP.NET

Изучение ASP.NET Core MVC / #1 — Создание сайта на C#
В курсе вы познакомитесь с платформой ASP.NET Core. Вы научитесь писать полноценные веб сайты на языке C#, а также научитесь работать с шаблоном MVC, изучите работу с базами данных и научитесь строить сайты со множеством страниц и функций.
Видеоурок
Полезные ссылки:
- Полный курс по C# ;
- Скачать Visual Studio .
Подавляющее большинство хоть что-то, но слышали о платформе ASP.NET (или же ASP NET CORE). Многие ошибочно называют платформу как ASP CORE NET, но это неверное название. Платформа называется ASP .NET, а приставка Core обозначает дословно – платформа.
Знания относительно MVC ASP NET очень разбросанные и неструктурированные, от чего нет чёткого представления о возможностях данной платформы. В рамках данного материала рассмотрим ключевые особенности ASP.NET.
ASP.NET – это платформа для разработки в вебе (сайты, приложения). Она поддерживает работу с несколькими языками программирования, входящими в сборку фреймворка: Basic NET, C# , J# и ряд прочих. С данной платформой есть возможность создавать как простейшие веб-ресурсы, так и очень сложные сайты, способные к обработке многотысячного потока пользователей.
ASP.NET по скорости работы значительно превосходит прочие скриптовые языки. Причина быстрой обработки заключается в том, что основа компилируется при первом подключении пользователя и сразу добавляется в кэш компьютера. Все последующие переходы по сайту используют уже кэшированный код, который просто извлекается из памяти, а не скачивается с сервера повторно. Такой подход сильно экономит время на парсинге, загрузке и обработке файлов.
Популярнейшие технологии и языки программирования для разработки веб-ресурсов:

В нынешних реалиях ASP .NET невероятно популярна, она лежит в основе огромных интернет-порталов. Нам удалось найти хороший материал , в котором освещено 10 лучших веб-ресурсов, созданных на данной платформе.
В этом списке присутствуют:
- StackOverflow – это один из самых больших форумов. С его помощью тысячи людей ежедневно получают ответы на насущные вопросы;
- Основной портал корпорации Microsoft ;
- Крупнейший сайт для регистрации доменов GoDaddy . Сегодня занимает лидирующие места в сфере веб-хостинга.
- Официальный веб-сайт Dell .
Этим список не ограничивается, есть масса других сайтов.
В ASP .NET применяется традиционная схема MVC – Модель-Вид-Контроллер (ASP NET Core MVC ). Эта же схема часто встречается в C# (C# MVC). Все элементы отвечают за конкретные действия. Для примера, пользователь запускает процесс регистрации и отправляет на сервер регистрационные данные. Контроллер интерпретирует действия человека и передаёт модели информацию о внесённых изменениях в статус пользователя. Модель реагирует на действия контроллера и работает с поставляемыми данными. Вид отвечает за отображение информации с модели.
Пример стандартной MVC C# представлен ниже. Точно такая же используется в ASP NET C#:

После отправки запроса на сервер, его начинает обрабатывать контроллер, затем передаёт изменения в модель, которая реагирует на обновление и выдаёт всё нужное для отображения сайта. Вид выполняет только роль отображения внешнего вида страницы – обычный HTML-шаблон.
Если подытожить, это очень удачная и перспективная технология. Отдав ей предпочтение, вы наверняка не пожалеете в будущем.
ASP .NET или ASP .NET Core?
.NET Core – кроссплатформенная среда выполнения для приложений из веба или консольных программ. Программные продукты, разработанные на ней, могут успешно исполняться на Linux, Windows, MacOS.
Основные плюсы: мультиплатформенность, открытый исходный код.
.NET Framework – среда исполнения, которая предназначена исключительно для Виндовс. Помогает в разработке десктопных программ под Windows и веб-приложений ASP .NET под IIS.
Ключевые достоинства: огромный ассортимент готовых библиотек, значительно больше возможностей в сравнении с прошлой платформой.
Сегодня Microsoft усиленно продвигает и модернизирует Core, постоянно добавляя полезный функционал. Может быть скоро эта среда сравняется с .NET Framework.
Пара сценариев для разработчиков веб-ресурсов на профессиональном уровне.
ASP .NET Core – лучше применять, если вы:
- Желаете установить таргетинг в приложении на все популярные ОС;
- Не страшитесь изучения нового;
- Не боитесь уделять достаточно времени исправлениям и доработкам, ведь Core не дошёл до статической точки, периодически меняется.
ASP .NET – идеальное решение, если вы:
- Не испытываете необходимости организовывать кросплатформенную поддержку веб-приложения;
- Нуждаетесь в стабильной среде разработки;
- Не имеете большого количества времени для разработки, то есть дедлайны поджимают;
- Уже занимаетесь разработкой или модернизацией существующей программы;
- Входите в состав команды, обладающей опытом работы с ASP.NET.
Тем, кто сегодня только планирует начать обучение и в ближайший год начать работать на крупные компании, ASP .NET Core идеально подходит. С этой средой вы получаете много перспектив на будущее.
План курса
В ходе курса для начинающих мы освоим платформу ASP Core и на её основе создадим сайта. Для его реализации мы будем использовать реальные примеры создания сайта, что отлично подойдут для понимания начинающим программистам.
К концу курса мы разработаем полноценный сайт. На базе полученных знаний вы сможете разрабатывать сайты на ASP NET.
Дополнительные курсы
Фреймворк .NET поддерживает множество языков, но самым популярным является C#. Прежде чем приступать к видео курсу вам следует изучить C#. На нашем ресурсе представлено множество курсов на эту тематику. Просмотреть их все можете по этой ссылке .
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
ASP.NET . Создание основного веб-сайта ASP.NET [2 из 13]
Создание динамического веб-сайта проще, чем возможно. ASP.NET позволяет использовать C# и смешивать с HTML для создания страниц Razor. Страницы Razor чисты и просты, так как они просто HTML, который вы уже знаете с небольшими битами C# вы учитесь сейчас!
Смотреть всю серию здесь
Скачайте Visual Studio 2019 здесь
Скачайте .NET Core 3.0 здесь
Дополнительные сведения о ASP.NET:
- Создание веб-сайта ASP.NET Core
- Что такое ASP.NET?
- Начало работы с ASP.NET?
- Репозиторий GitHub: ASP.NET
- Репозиторий ContosoCrafts: ContosoCrafts
Создание динамического веб-сайта проще, чем возможно. ASP.NET позволяет использовать C# и смешивать с HTML для создания страниц Razor. Страницы Razor чисты и просты, так как они просто HTML, который вы уже знаете с небольшими битами C# вы учитесь сейчас!
Смотреть всю серию здесь
Скачайте Visual Studio 2019 здесь
Скачайте .NET Core 3.0 здесь
Дополнительные сведения о ASP.NET:
- Создание веб-сайта ASP.NET Core
- Что такое ASP.NET?
- Начало работы с ASP.NET?
- Репозиторий GitHub: ASP.NET
- Репозиторий ContosoCrafts: ContosoCrafts
Сайт на ASP.NET для начинающих — первые шаги
ASP.NET позволяет создавать сложные и многофункциональные веб-приложения. Эта статья является вводным курсом по созданию сайта на ASP.NET.
ASP.NET — платформа от Microsoft для создания и развёртывания сайтов, веб-приложений и сервисов. По данным SimilarTech, около 2 000 000 сайтов используют эту платформу. В этой статье описаны первые шаги создания сайта на ASP.NET.
Для разработки будем использовать Visual Studio.
Создание ASP.NET проекта
Откройте Visual Studio Installer и нажмите «Изменить» на нужной среде разработки. Перед вами откроется список всех нагрузок. В категории Веб-разработка и облако нужно включить ASP.NET и разработка веб-приложений. После этого нажмите на кнопку Изменить в нижнем правом углу и дождитесь установки нагрузки.
Перейдите в Visual Studio и создайте новый проект, выбрав тип Веб-приложение ASP.NET (.NET Framework). Потом нужно выбрать необходимую модель приложения:
- Веб-формы — можно легко создавать динамические веб-сайты, используя сотни элементов управления и компонентов.
- MVC — эффективный, основанный на шаблонах способ создания динамических сайтов. Предоставляет полный контроль над разметкой для гибкой разработки.
- Веб-API — позволяет легко создавать HTTP службы для широкого диапазона клиентов. Идеальная платформа для сборки REST-приложений.
- Приложение SPA — одностраничное веб-приложение, которое загружает HTML-страницу и динамически обновляет её при взаимодействии с пользователем.
Выберете модель Веб-формы и завершите создание проекта.
Внутренняя структура проекта
В проекте сайта уже загружены некоторые библиотеки, необходимые для комфортного старта: CSS-фреймворк Bootstrap, JS-фреймворк jQuery, MSAjax и некоторые другие.
После создания тут уже присутствуют 3 страницы: Default, About и Contact. Каждая страница состоит из 3 файлов:
- Page.aspx — содержит в себе HTML-разметку конкретной страницы;
- Page.aspx.cs — отвечает за логику работы конкретной страницы;
- Page.aspx.designer.cs — является мостом между Page.aspx и Page.aspx.cs.
Вот так выглядит About.aspx:
.
Your application description page.
Use this area to provide additional information.
Как видно, этот файл содержит лишь контент конкретной страницы. Вся общая разметка находится в Site.Master и Site.Mobile.Master .
Чтобы проверить и запустить проект, нажмите IIS Express или же традиционную клавишу F5. После этого все файлы скомпилируются и сайт откроется по адресу http://localhost:4400 в браузере по умолчанию. Номер порта может отличаться.
Создание веб-формы
Чтобы создать новую страницу, в контекстном меню проекта выберите Добавить→Веб-форма. После этого автоматически сгенерируются и заполнятся все 3 файла.
Примечание Веб-формы можно создавать с помощью встроенного графического конструктора веб-форм. Что бы открыть его, в контекстном меню нужной веб-формы нажмите на Открыть в конструкторе. Все необходимые элементы можно достать из Панели Элементов (Вид→Панель элементов). Но если вам нужна максимальная гибкость и функциональность — лучше разрабатывать формы вручную в коде.
Потом можно добавить ссылку на новую страницу в панель навигации в Site.Master :
Примечание Обратите внимание, что в ссылке указывается название страницы без расширения.
Если вы откроете новую страницу, то заметите, что вся общая вёрстка отсутствует. Это потому, что в новой странице не подвязывается разметка из Site.Master . Чтобы исправить это, нужно в новой форме вместо сгенерированной вёрстки вставить это:
Во всех упоминаниях нужно заменить News на название вашей страницы. Теперь форма будет отображаться вместе с общей вёрсткой.
Для интеграции значений в вёрстку из aspx.cs используют специальный тег :
В этом случае SomeVar должен быть публичным полем. Если нужно выполнить какой-либо код для присвоения значения этой переменной, то выполнить его нужно в сгенерированном методе Page_Load .
Получение значений параметров из URL производится через статический класс Request , в котором хранятся и прочие данные о запросе:
int aria-label="Копировать код" data-v-04728ac0>
Изучить все возможности веб-форм можно в официальной документации.
Движок представлений Razor
Razor позволяет делать вставки C# кода прямо в HTML разметке. Для этого нужно создать отдельный файл .cshtml (Контекстное меню проекта→Добавить→Страница представления MVC 5 (Razor)). Разметка в этом файле ничем не отличается от обычной HTML-вёрстки.
По умолчанию языком Razor является HTML. Для перехода с вёрстки на C# используют символ @ , а сам блок кода помещается в фигурные скобки.
Тут идёт ваша вёрстка
@ < // Тут идёт код на C# SomeMethod(); >Тут снова идёт вёрстка
В Razor также можно выполнять неявные выражения прямо в HTML разметке:
@DateTime.Now
Тут есть привычные для ЯП конструкции, которые могут значительно облегчить вёрстку. Вот некоторые из них:
@for (var i = 0; i < people.Length; i++) < var person = people[i]; Имя: @person.Name
>
@if (value % 2 == 0) < Это значение чётное.
> else if (value >= 1337) < Это значение нечётное и больше либо равно 1337.
> else < Это значение нечётное и меньше, чем 1337.
>
@try < throw new InvalidOperationException("Вы сделали что-то не то."); >catch (Exception ex) < Сообщение исключения: @ex.Message
> finally < Итоговый блок.
>
Также всегда будет полезным просмотр open source проектов. Там вы найдёте не только лучшие практики по ASP.NET, но и просто решение популярных задач.