logo
Разработка CMS системы на основе технологии ASP.NET

6.2 Общая архитектура программного средства

ASP.NET MVC 3[24] использует шаблон Model-View-Controller, который широко применяется в веб-программировании.

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

Для того чтобы понять принципы работы компонентов MVC-приложения, рассмотрим схему обработки запросов MVC-приложения (рисунок 6.6).

Размещено на http://www.allbest.ru/

Рисунок 6.6. Жизненный цикл запроса для MVC-приложения

Поступающий к веб-серверу HTTP-запрос передается среде выполнения ASP.NET, которая инициализирует инфраструктуру MVC Framework и передает запрос для обработки компоненту маршрутизации. На основании таблицы маршрутизации, загружаемой при запуске веб-приложения, модуль маршрутизации определяет имена контроллера и метода контроллера, который должен обработать запрос, а также параметры запроса, которые должны быть переданы контроллеру. После этого генерируется контекст запроса, содержащий параметры запроса и среды выполнения приложения (такие как URL-запроса, IP-адрес клиента и сервера и т.п.), создается экземпляр класса контроллера и ему передается управление путем вызова соответствующего метода класса контроллера - действия контроллера в терминах MVC[33].

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

Для обмена данных между представлением и контроллером используется специальная коллекция ViewData - являющаяся основным связующим звеном между контроллером и представлением .

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

Диаграмма, изображенная на рисунке 6.7 описывает структуру приложения.

Основными являются пакеты XCMS.Controllers, содержащий классы контроллеров, XCMS.Models, содержащий классы моделей и XCMS.Views, содержащий представления. Класс HomeController будет получать данные, необходимые для отображения страниц сайта, создаваемого с помощью CMS, а затем передавать полученные данные представлению, находящемуся в пакете Home с помощью метода Index.

Класс AdminController будет реализовывать функционал по редактированию, добавлению, удалению контента, механизм авторизации в административную панель. Основными методами являются методы передачи данных представлениям, такие как Index,Auth,MainTools, MenuEditor, Styles, Users.

Классы XCMS.Models служат для формирования наборов данных. Например, Класс StylesModel формирует набор данных из названия стиля (id) и номера (id). Затем контроллер, вызвавший модель, связывает выбранное представление с моделью.

В XCMS.Views содержатся представления, отвечающие за визуальный интерфейс приложения. Представление AdmLayout является шаблонным, включено во все представления, отвечающие за отображение административной панели. Оно отвечает за отображение главного меню в панели. Представления из пакета Admin отвечают за отображение страниц административной панели. Представление из пакета Home отвечает за отображение страниц создаваемого сайта.

Рисунок 6.7 - Диаграмма классов XCMS