Два примера сайтов ASP.NET MVC

Все исходники / Язык программирования C# / OS Windows / Web ASP.NET / Model-View-Controller / Два примера сайтов ASP.NET MVC
Оглавление:
  1. Два исходника MVC
  2. Что такое MVC
  3. Краткая история MVC
  4. Составляющие части MVC
  5. Практический смысл MVC
  6. Упрощение работы над сложной структурой сайта
  7. Исходники на ASP.NET MVC C#
  8. Создание шаблона MVC
  9. Модель шаблона ASP.NET MVC
  10. Модель приложения класс Animals
  11. Контроллер шаблона ASP.NET MVC
  12. Контроллер Animals
  13. Представления это компонент View ASP.NET MVC
  14. Представление для метода контроллера Cats
  15. Код HTML в браузере после обработки сервером
  16. Маршрутизация и веб-адреса шаблона ASP.NET MVC
  17. Последовательность создания сайта на MVC в Visual Studio
  18. Ещё раз о комфортности схемы MVC
  19. Исходники сайтов на платформе 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 требуется очистить проект, а затем его вновь собрать. Таким образом будут установлены необходимые библиотеки. Компьютер должен быть подключён к сети интернет.

Скачать исходник

Тема: «Два примера сайтов ASP.NET MVC» ASP.NET на языке программирования C# aspmvc.zip Размер:2282 КбайтЗагрузки:2794