Оглавление
- Два исходника MVC
- Что такое MVC
- Краткая история MVC
- Составляющие части MVC
- Практический смысл MVC
- Упрощение работы над сложной структурой сайта
- Исходники на ASP.NET MVC C#
- Создание шаблона MVC
- Модель шаблона ASP.NET MVC
- Модель приложения класс Animals
- Контроллер шаблона ASP.NET MVC
- Контроллер Animals
- Представления это компонент View ASP.NET MVC
- Представление для метода контроллера Cats
- Код HTML в браузере после обработки сервером
- Маршрутизация и веб-адреса шаблона ASP.NET MVC
- Последовательность создания сайта на MVC в Visual Studio
- Ещё раз о комфортности схемы MVC
- Исходники сайтов на платформе ASP.NET MVC
Два исходника MVC
Исходники сайта на языке программирования C# построенных по шаблону MVC на платформе ASP.NET. В одном исходнике для каждой модели одно представление (View). Второй исходник демонстрирует более широкие возможности схемы MVC: одна модель имеет несколько представлений, несколько видов отображения данных.
Что такое MVC
Аббревиатура MVC происходит от слов Model-View-Controller. Model (Модель) - что будем показывать, View (Вид) - как будем показывать, Controller (Контроллер) - кто будет управлять. Стандарт MVC наиболее распространённый стиль создания сайтов. Четкое разделение разных составляющих веб проекта: дизайн, управление запросами пользователей, программная логика. Благодаря разбиению сложного на простые части повышается эффективность работы над веб-сайтом.
Краткая история MVC
Впервые концепция MVC была сформулирована и описана Трюгве Реенскаугом (норвежский ученый в сфере компьютерных наук и заслуженный профессор университета Осло) в 1979 году, работавшим в то время над языком программирования Smalltalk в Xerox PARC. Затем, на практике, была реализована версия MVC для библиотеки классов Smalltalk-80. Окончательная версия концепции была опубликована лишь в 1988 году в журнале Journal of Object Technology. Впоследствии шаблон проектирования MVC стал развиваться и конкретизироваться.
Составляющие части MVC
В настоящее время 3-х составная схема MVC широко распространена, и применяется в веб-разработках независимо от языка программирования, платформ и операционных систем.
Функции частей MVC:- Model - программная обработка и обращение к базе данных;
- View - выводит результат в требуемом виде, к одной модели можно прикрепить несколько разных представлений;
- Controller - распределяет внешние запросы пользователей между моделью и представлением.
Практический смысл MVC
Практическая польза от создания сайтов по концепции MVC:- Комфортность работы над сложной структурой сайта;
- Сосредоточение в одном секторе программирования;
- Возможность многократного использования отдельных частей приложения;
- Возможность использования множества макетов для любой страницы сайта;
- Небольшое количество шаблонов страниц позволяет создавать богатое разнообразное содержание сайта.
Упрощение работы над сложной структурой сайта
Используя шаблон MVC изменить дизайн сайта или его логику работы гораздо проще и быстрее. Даже отдельный разработчик, не боясь запутаться в коде, может создавать веб-приложения высокой организованности. Работая в команде, прикладные программисты и веб-дизайнеры, будут чувствовать себя каждый в своей родной стихии.
Исходники на ASP.NET MVC C#
Концепция MVC используется для многих платформ и языков программирования, не исключение и ASP.NET. В нашем случае исходники веб-сайтов написаны на языке C# на платформе ASP.NET в соответствии с шаблоном Модель-Вид-Контроллер. C# мощный, легко изучаемый язык программирования, специально созданный для платформы .NET. Являясь языком прикладного уровня C# предоставляет огромные возможности по сравнению с другими языками веб-разработок. Одно из многих достоинств C# это то, что он играючи справляется с любыми кодировками и символами.
Создание шаблона MVC
Самостоятельно создать шаблон сайта MVC очень сложно, и если не задаваться целью создания собственного каркаса, рекомендуется использовать готовые шаблоны в составе среды программирования Microsoft Visual Studio .NET. Для отдельных разработчиков компания Microsoft предоставляет бесплатные интегрированные среды Visual Studio Express и Visual Studio Community, а для организаций - профессиональные инструменты с широчайшими возможностями Visual Studio Professional и Visual Studio Enterprise.
Модель шаблона ASP.NET MVC
В шаблоне MVC платформы ASP.NET в качестве модели выступают «обыкновенные классы» C#, получающие данные из источника для формирования контента. Название класса может быть любым, но если используется Entity Framework для доступа к данных, то названия классов должны совпадать с названиями таблиц базы. Как правило, в классах происходит основная логическая работа, далее через контроллеры в представления передаются уже готовые данные. Вспомогательную часть программной обработки можно осуществлять в дополнительных классах и контроллерах, стараясь минимизировать количество программного кода в методах контроллеров.
Модель приложения класс Animals
// Класс модели
// Все запросы к базам данных в этом классе
public class Animals
{
// Список с данными животных
public List<DataAnimals> List = new List<DataAnimals>();
// Инициализация каталога со списком животных
public Animals(string dir = null)
{
Dogs dogs;
Cats cats;
Fish fish;
switch (dir)
{
case "Dogs":
dogs = new Dogs(List, "dogs/");
break;
case "Cats":
cats = new Cats(List, "cats/");
break;
case "Fish":
fish = new Fish(List, "fish/");
break;
default:
dogs = new Dogs(List, "dogs/");
cats = new Cats(List, "cats/");
fish = new Fish(List, "fish/");
break;
}
}
// Инициализация данных животного по идентификатору
public Animals(string dir, string id)
{
Dogs dogs;
Cats cats;
Fish fish;
switch (dir)
{
case "Dogs":
dogs = new Dogs(List, "dogs/", id);
break;
case "Cats":
cats = new Cats(List, "cats/", id);
break;
case "Fish":
fish = new Fish(List, "fish/", id);
break;
default:
//
break;
}
}
}
Контроллер шаблона ASP.NET MVC
Контроллер это специальный класс ASP.NET MVC, производный от базового класса Controller
. Название каждого контроллера обязательно должно состоять из двух частей: имени и суффикса Controller, например HomeController
, AnimalsController
. Контроллеров в веб-приложении может быть несколько. Controller шаблона ASP.NET MVC имеет методы реагирующие на HTTP-запросы направляемые на веб-сайт. Имена контроллеров и названия методов являются частями веб-адреса, например: http://domen/home(контроллер)/index(метод)
, http://domen/animals(контроллер)/dogs(метод)
.
Контроллер Animals
public class AnimalsController : Controller
{
// GET:
public ActionResult Index()
{
Animals animals = new Animals();
return View(animals);
}
public ActionResult Dogs(string id)
{
Animals animals;
if(id != null)
{
animals = new Animals("Dogs", id);
return View("Id", animals);
}
animals = new Animals("Dogs");
return View(animals);
}
public ActionResult Cats(string id)
{
Animals animals;
if (id != null)
{
animals = new Animals("Cats", id);
return View("Id", animals);
}
animals = new Animals("Cats");
return View(animals);
}
}
Представления это компонент View ASP.NET MVC
В качестве представлений выступают файлы с расширением .cshtml, vbhtml с обработчиком Razor, позволяющий гармонично внедрять код языков .NET в код HTML. Основой синтаксиса Razor является знак @, после которого осуществляется переход к коду на языках C#/VB.NET. Также возможно использование и сторонних движков для представлений. Файлы .cshtml и .vbhtml в процессе генерации ответа контроллером компилируются в классы, из которых затем создается страница с "чистым" HTML кодом. Концепция MVC предписывает использовать минимальное количество кода C# и VB.NET в представлениях, поскольку вся основная программная обработка должна происходить в модели и контроллерах.
Представление для метода контроллера Cats
@* Устанавливаем тип модели *@
@model ASPMVC.Models.Animals
@{
ViewBag.Title = "Семейство кошачьих";
Layout = "~/Views/_LayoutPage1.cshtml";
}
<h2>Семейство кошачьих</h2>
@* После того как тип модели установили, обращаемся
к объекту модели по имени Model *@
<ul>
@for (int i = 0; i < @Model.List.Count; i++)
{
<li><a href="/animals/@Model.List[i].Url">@Model.List[i].Name</a></li>
}
</ul>
Код HTML в браузере после обработки сервером
<h2>Семейство кошачьих</h2>
<ul>
<li><a href="/animals/cats/koshka-dom">Кошка домашняя</a></li>
<li><a href="/animals/cats/tigr">Тигр</a></li>
<li><a href="/animals/cats/rys">Рысь</a></li>
</ul>
Маршрутизация и веб-адреса шаблона ASP.NET MVC
В шаблон ASP.NET MVC встроена возможность создания человеко-понятных (ЧПУ) веб-адресов. При обработке запросов каркас ASP.NET MVC опирается на продвинутую систему маршрутизации, которая сопоставляет все входящие запросы с определенными в системе маршрутами. Каждый отдельный маршрут указывает какой контроллер (его метод) должен обработать входящий запрос. Встроенный в шаблон маршрут по умолчанию предполагает трехзвенную структуру: контроллер/метод/параметр
, а непосредственно адрес выглядит: домен/каталог(имя_контроллера)/раздел(название_метода)/параметр
. Возможно определение любой структуры маршрутов.
Последовательность создания сайта на MVC в Visual Studio
- Создание пустого шаблона MVC
- Создание модели для получения (создания) требуемых данных
- Создание контроллера для возможных запросов пользователей
- Создание страницы макета для представлений. С помощью макета достигается однообразие дизайна веб страниц сайта
- Создание представлений
Ещё раз о комфортности схемы MVC
По мере работы над сайтом можно возвращаться к каждой части шаблона модель-вид-контроллер и по необходимости дорабатывать и совершенствовать ее. Последовательность работы с контроллерами, моделями и представлениями любая, можно работать над каждой частью независимо от других частей, в чем и достоинство концепции MVC.
Исходники сайтов на платформе ASP.NET MVC
Ниже прикреплены исходники сайтов шаблона ASP.NET MVC: с одним представлением для каждой модели, в другом для одной модели используются несколько визуальных форм. Исходники можно тестировать создавая новые контроллеры, представления и изменяя модель. Исходный код написан в среде MS Visual Studio .NET 2015 Community, для работы над исходниками можно использовать MS Visual Studio .NET 2013 и выше, а также SharpDevelop 4.4 и выше.
Примечание. После загрузки исходника в Visual Studio .NET требуется очистить проект, а затем его вновь собрать. Таким образом будут установлены необходимые библиотеки. Компьютер должен быть подключён к сети интернет.
Скачать исходник
aspmvc.zip
- Размер: 2282 Кбайт
- Загрузки: 2638