Опубликован: 04.07.2012 | Уровень: специалист | Доступ: платный
Лекция 11:

Разработка web-приложений на платформе .NET. Системы управления контентом

Архитектура MVC (Model - View - Controller)

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

Подход к проектированию программных систем Модель-Вид-Контроллер (MVC) основан на разделении программы на три части.

  • Компонента Модель (Model) отвечает за хранение данных и обеспечение интерфейса к ним.
  • Компонента Вид (View) отвечает за представление этих данных пользователю.
  • Контроллер (Controller) управляет компонентами, получая сообщения в виде реакции на действия пользователя, и уведомляя об изменениях компоненту Модель.

Такая внутренняя структура в целом разбивает систему на самостоятельные части и распределяет ответственность всего приложения на различные компоненты. Архитектура такого взаимодействия представлена на рис. 16.1.

Архитектура взаимодействия MVC

Рис. 16.1. Архитектура взаимодействия MVC

Важно отметить, что как представление, так и поведение зависят от модели. Однако модель не зависит ни от представления, ни от поведения. Это одно из ключевых достоинств подобного разделения. Оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели.

ASP.NET MVC - продукт выпущенный в апреле 2009 г. компанией Microsoft, призванный упростить разработчикам создание веб-приложений, использующих шаблон MVC (model-view-controller). Фактически это готовый framework для языка ASP.NET.

ASP.NET MVC обеспечивает полный контроль за HTML-разметкой, структурой URL-адресов, упрощает модульное тестирование и способствует использованию модели разработки TDD (test driven development).

ASP.NET MVC 1.0 доступен как в виде отдельного пакета, так и через инсталлятор Microsoft Web Platform Installer.

На рис. 16.2 представлена структура проекта, созданного на основе шаблона ASP.NET MVC Web Application в Visual Web Developer 2008 Express.

Структура проекта, созданного на основе шаблона ASP.NET MVC

увеличить изображение
Рис. 16.2. Структура проекта, созданного на основе шаблона ASP.NET MVC

Организация процесса разработки веб-контента: CMS/CMF системы.

Система управления контентом (Content management system, CMS) - компьютерная программа, используемая для создания, редактирования, управления и публикации контента некоторым систематическим образом. Обычно такие системы используются для хранения и публикации большого количества документов, изображений, музыки или видео.

Система управления веб-контентом (Web content management system, WCMS или Web CMS) - програмное обеспечения CMS класса, реализованное обычно в виде веб-приложения, и предназначенное для создания, и управления HTML содержимым. WCMS обычно используется для управления и контроля большими, динамически изменяемыми коллекциями веб-материала (HTML документами и связанными с ними картинками). Такая система упрощает процесс создания, управления, редактирования контента и многие другие важные задачи, связанные с поддержкой этих процессов.

WCMS предоставляет следующие возможности:

  • Применение автоматических шаблонов отображения (в HTML или XML формате), автоматически применяемых к новому или существующему контенту. Тем самым вид всех документов может задаваться из одного места.
  • Простота редактирования контента. Пользователю достаточно легко создавать и управлять контентом, поскольку ему либо вообще не требуется знания языков программирования или языков разметки, либо требуется минимальное знание таковых.
  • Масштабируемость. Возможность расширения функциональности существующего сайта путем установки поставляемых с дистрибутивом WCMS плагинов и модулей.
  • Управление документами. Имеются средства управления жизненным циклом документов с момента создания до удаления.
  • Визуализация контента. Любой пользователь может работать с виртуальной копией всего веб-сайта, множества документов или кодами программ, что позволяет увидеть все изменения множества взаимосвязанных ресурсов перед их окончательным применением.

В зависимости от способа применения шаблонов для генерации веб-страниц принято выделять три основные типа WCMS-систем: с автономной обработкой, он-лайн обработкой и гибридные системы.

  • Автономные системы обрабатывают все содержимое путем применением шаблонов перед публикацией веб-страниц.
  • On-line системы применяют шаблоны в момент посещения сайта пользователями (либо извлекают страницы и кэша).
  • Гибридные системы комбинируют первые два подхода. Некоорые из них вместо статических HTML страниц генерируют исполняемые коды (JSP, PHP, Perl), избавляя от необходимости установки WCMS-системы на каждом веб-сервере.

В качестве примера системы рассмотрим WCMS Drupal.

Drupal - это WCMS система, разработанная на языке PHP и использующая в качестве хранилища данных реляционную базу данных (поддерживаются MySQL, PostgreSQL и другие). Архитектура Drupal позволяет применять его для построения различных типов сайтов - от блогов и форумов, до информационных архивов или сайтов новостей.

Функциональность обеспечивается подключаемыми модулями, обращающимися к общему API Drupal. Стандартный набор модулей включает, например, такие функции как новостная лента, блог, форум, загрузка файлов, сборщик новостей, голосования, поиск и др.

Наиболее важные функции, предоставляемые модулями входящими в поставку Drupal:

  • единая категоризация всех видов содержимого (таксономия) - от форумных сообщений до блогов и новостных статей;
  • широкий набор свойств при построении рубрикаторов: плоские списки, иерархии, иерархии с общими предками, синонимы, родственные категории;
  • вложенность категорий любой глубины;
  • поиск по содержимому сайта, в том числе поиск по таксономии и пользователям;
  • разграничение доступа пользователей к документам;
  • динамическое построение меню;
  • поддержка XML-форматов:
  • вывод документов в RDF/RSS;
  • аггрегация материалов с других сайтов;
  • BlogAPI для публикации материалов с помощью внешних приложений;
  • поддержка сменных тем оформления сайта с предоставлением нескольких готовых вариантов;
  • переводы интерфейса сайта на разные языки, а также поддержка ведения разноязычного контента;
  • возможность создания сайтов с пересекающимся содержимым (например общей базой пользователей или общими настройками);
  • раздельные конфигурации сайта для различных виртуальных хостов (в том числе собственные наборы модулей и тем оформления для каждого подсайта);
  • механизм для ограничения нагрузки на сайт (автоматическое отключение при высокой посещаемости части информационных блоков и модулей).

Существует огромное множество систем как коммерческих, так и бесплатных. Например, Microsoft предлагает реализацию WCMS системы на базе Windows SharePoint Services.

CMF системы

Каркасная система управления контентом (Content Management Framework, CMF) - это инструментарий для создания систем управления контентом, а также отдельных веб-приложений. Некоторые CMS, предоставляющие API для расширения своей функциональности, можно рассматривать как CMF, например WCMS Drupal .

Сергей Крупко
Сергей Крупко

Добрый день.

Я сейчас прохожу курс  повышения квалификации  - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?

 

Галина Башкирова
Галина Башкирова

Здравствуйте, недавно закончила курс по проф веб программиованию, мне прислали методические указания с примерами тем, однако темы там для специальности 

Системный администратор информационно-коммуникационных» систем.
Мне нужно самой найти тему? или делать по высланным темам

 

Елена Кашникова
Елена Кашникова
Россия, братск