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

 














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


СОДЕРЖАНИЕ


Введение

1.ЦЕЛЬ И ЗАДАЧИ

2.КРАТКИЙ ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ

2.1Описание основных понятий

2.2.Классификация CMS систем

3. ПОИСК И СРАВНЕНИЕ АНАЛОГОВ

3.1Rumba XML

3.2Made Simple

3.3Kandidat CMS

3.4Zimplit CMS

3.5Get Simple

3.6Таблица сравнения аналогов

4. ФОРМИРОВАНИЕ ТРЕБОВАНИЙ К ПО

4.1Диаграмма вариантов использования UML

5. ТЕХНОЛОГИЧЕСКАЯ ПЛАТФОРМА

5.1 Язык C#

5.2ASP.NET MVC 3

5.3XML

5.4ARGO UML - инструмент проектирования UML

6. Проектирование архитектуры

6.1Прототипирование графического интерфейса пользователя

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

7. Реализация и руководство пользователя

7.1Установка и запуск приложения

7.2Описание страниц приложения


8. Апробация на прикладной задаче

9. Расчет экономических показателей программного продукта

9.1Расчет себестоимости создания программного продукта

заключение

БИБЛИОГРАФИЯ

Приложение А

Приложение Б





Введение

программный приложение интерфейс сайт

Среди простых пользователей существует мнение, что разрабатывать веб-сайты могут только подготовленные специалисты. Но это не всегда так. Возьмем в качестве примера обычную компьютерную программу: программы разрабатываются программистами, но они предназначены для обычных пользователей, а целью их создания является облегчение работы пользователя. Это применимо к любой отрасли компьютерных систем. Любая программа создается для упрощения работы обычных людей, знакомых с компьютерными системами на уровне пользователя. Интернет-технологии в этом плане не исключение.

Много времени прошло с момента появления в сети Интернет первых сайтов, созданных при помощи языка HTML. Сейчас пришло время программ, которые предоставляют людям совсем другие способы создания сайтов на уровне обычного пользователя компьютерной системы.

Эти специализированные программы называются CMS (Content Management System). В дословном переводе CMS обозначает «Система управления контентом (или содержимым)». Система действительно управляет содержимым сайта, или, иначе называемым контентом.

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

Однако большинство CMS имеют массу функций, которые далеко не всегда используются. Для создания небольшого сайта, сайта-портфолио или небольшой фото-галереи использование мощной CMS с множеством функций не требуется. Для таких сайтов наиболее оптимально использовать CMS на файлах (без базы данных). Такие системы меньше грузят сервер и имеют меньше проблем при переносе сайта на хостинг, т.к. не требуется решать проблемы с базой данных, кодировкой и другие.

Данная работа основана на потребности в использовании легкого класса CMS-систем, пригодных для сайтов-резюме, сайтов-визиток и т.п.


1. ЦЕЛЬ И ЗАДАЧИ


Целью работы является разработка системы управления web-контентом, предоставляющей функции создания, редактирования, контроля и организации веб-страниц.

Для достижения поставленной цели были сформулированы следующие задачи:

1.Анализ предметной области. Чтобы разработать программную систему, которая принесет реальную пользу определенным пользователям, необходимо выяснить, какие задачи она должна решать для этих людей и какими свойствами обладать.

.Анализ существующих аналогичных программных продуктов. Будут изучены существующие аналоги с целью выявления достоинств и недостатков - визуальных и функциональных

3.Формирование требований к будущей системе и выбор платформы разработки. В результате будут детально прояснены требования к разрабатываемой системе и выбраны подходящие средства разработки.

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

.Реализация спроектированных подсистем. В ходе реализации будет разработана система, удовлетворяющая сформулированным ранее требованиям на основе спроектированной ранее архитектуры.

.Проведение тестирования системы на примере реальной задачи. В процессе тестирования будет произведена проверка соответствия реализованной системы поставленным ранее требованиям и задачам.

Все эти задачи будут рассмотрены в следующих главах.

При создании CMS необходимо учитывать тот момент, что возможно ей будут пользоваться люди, которые не имеют опыта в работе с Web-сайтами. Кроме того, важно обеспечить безопасность системы. Для этого выясним, в каких местах система может стать уязвимой, и создадим какие-либо способы защиты, которые будут доступны очень узкому кругу пользователей.


2КРАТКИЙ ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ


2.1Описание основных понятий


Как мы выяснили ранее, система управления контентом - это программа, предназначенная для работы в Интернете или веб-приложение. Фраза «работа в Интернете» означает работу CMS на хостинге, предоставляемом провайдером услуг. Хостинг - это удаленный веб-сервер с предустановленной версией операционной системы и другим сопутствующим программным обеспечением[1]. Программное обеспечение сервера предназначено помочь администратору сервера при организации клиентских площадок и простому пользователю при организации визуальных средств для работы с сайтом. Веб-сервером называют компьютер, предназначенный для выполнения на нем сервисного программного обеспечения, а также само программное обеспечение, установленное на нем и осуществляющее взаимодействие по HTTP-протоколу с браузерами: принимает http-запросы от браузеров и выдает им http-ответы с html-страницей, изображением, файлом, медиа-потоком или другими данными[1].

В основном провайдером используются такие операционные системы, как FreeBSD[2], Debian[3], Windows Server[4] и другие.

В качестве веб-сервера может использоваться Apache[5] или IIS[6] и необходимые для работы расширения, такие как базы данных, компиляторы и другие. В нашем случае, будет использован сервер с операционной системой Windows Server и в качестве веб-сервера - Microsoft IIS[6]. Microsoft Internet Information Services является вторым по полярности сервером в глобальной сети интернет.

В основе выпуска IIS 7.5 лежит полностью модульный web-сервер, включающий более 40 компонентов, которые можно объединять в компактные web-серверы, оптимизированные для необходимой роли в топологии приложения. Эти компоненты создаются на основе нового слоя расширяемости, что позволяет разработчикам расширять или замещать практически любую функцию сервера в машинном коде[7].7.0 предлагает расширяемость компонентов выполнения, управления и рабочих компонентов, облегчая создание комплексных решений в соответствии с конкретными потребностями.

В платформе IIS 7.5 по сравнению с предыдущей версией решаются многие проблемы, связанные с управляемостью и эксплуатацией сервера. Она обладает принципиально новой системой настройки, обеспечивающей полностью делегированное управление узлами. Новые интерфейсы API для управления и диагностические компоненты делают процедуры развертывания, администрирования и устранения неполадок сервера значительно проще и удобнее, чем когда-либо прежде.

Web-сервер IIS поддерживает несколько различных технологий создания web-приложений:

·ASP.NET[8] - для систем Windows это основное, на сегодняшний день, средство создания web-приложений и web-служб. Поддержка ASP.NET встроена в IIS начиная с версии 6.0.

·ASP[9] - устаревшая технология создания динамических web-страниц на основе сценариев. Входит в поставку IIS, начиная с версии 3.0.

·CGI[10]- стандартная технология создания динамических веб-страниц.

·ISAPI - для Windows систем это наиболее мощная технология, предоставляющая полный доступ ко всем возможностям IIS.

При помощи CGI и ISAPI к web-серверу IIS могут подключаться сторонние средства поддержки web-приложений, например, PHP и Perl.

Одним из интересных и перспективных нововведений в IIS,начиная с версии 7.0, является пакет IIS Media Pack. Два дополнительных бесплатных модуля позволят превратить web-сервер в современный инструмент медиа-вещания. Новые технологии Microsoft позволяют оптимизировать и грамотно управлять цифровым потоком медиа-данных. Сервер позволяет производить вещание данных в различных форматах: ASF, AVI, FLV, M4V, MOV, MP3, MP4, RM, RMVB, WMA, WMV.

Еще одной особенностью является встроенная поддержка новой технологии Silverlight[11] . Это технология представления данных в Интернете. Предназначена для запуска на различных платформах. Она позволяет создавать насыщенные, визуально привлекательные web-страницы, работающие в различных обозревателях, устройствах и настольных операционных системах (например Apple Macintosh).

Поверх всего перечисленного ранее программного обеспечения устанавливается так называемая панель управления хостингом, позволяющая работать с веб-хостингом из удобной графической визуальной среды. Так выглядит готовый к работе сервер провайдера услуг.


2.2 Классификация CMS систем


CMS системы делятся по месту хранения данных на

·использующие базы данных

·использующие flat-файлы.

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

CMS, не использующие базы данных для хранения контента сайта, используют для этого различные типы файлов, такие как txt, xml и другие. Преимуществами систем на файлах являются легкость настройки системы, отсутствие возможных проблем с сервером базы данных на хостинге, а так же возможность сэкономить при выборе тарифного плана при покупке хостинга.

В данной работе, будет разработана система, использующая в качестве хранилища данных xml-файлы.


3ПОИСК И СРАВНЕНИЕ АНАЛОГОВ


Чтобы сформировать представление о рынке систем управления контентом, необходимы подобные образцы программных продуктов. Рассмотрим их далее в этой главе и в конце описания аналогов создадим сводную таблицу.


3.1Rumba XML


Первое web-приложение, взятое для сравнения - это Rumba XML 2.8[12].

Дизайн сайта, созданного при помощи этой CMS, представлен на рисунке 3.1.


Рисунок 3.1 - Сайт, созданный с помощью RumbaXML 2.8


На рисунке 3.2 представлен дизайн административной панели системы.

Данная CMS подходит для создания новостного сайта, блога, сайта визитки, персональной страницы.

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

Рисунок 3.2 - Административная панель RumbaXML 2.8


Реализованы функции постраничного вывода в порядке убывания, лента новостей, карта сайта, гостевая, комментарии к статьям (можно разрешать/запрещать комментарии к каждой статье), поиск по сайту с постраничным выводом результатов, URL в виде статичных html, оптимизированные названия страниц, возможность автоматического обновления контента. Кроме того скрипт имеет SEO оптимизацию т.е. возможность продвижения сайта в поисковых системах, кроме того в дистрибутиве движка есть скрипт импорта базы из WordPress[13].

В качестве хранилища данных используются текстовые файлы и xml.

Помимо всего прочего можно с использованием локального сервера создать сайт для бесплатных хостингов, не поддерживающих PHP, например, для размещения сайта на хостинге Yandexа - narod.ru[14].

В процессе ознакомления с этой системой была обнаружена проблема - на некоторых хостингах, например, hut.ru, система не функционировала по непонятным причинам.

Интерфейс административной панели достаточно удобен, но дизайн готового сайта, генерируемый этой CMS сложно назвать красивым.

Распространяется бесплатно[13].

3.2Made Simple


Вторым приложением для сравнения будет CMS Made Simple[15].


Рисунок 3.3 - Сайт, созданный с помощью Made Simple 1.9.4


Пример сайта, созданного при помощи CMS Made Simple, представлен на рисунке 3.3.


Рисунок 3.4 - Административная панель Made Simple 1.9.4


Как видно из рисунка, при помощи этой системы можно создать сайт с простым и красивым дизайном. На рисунке 3.4 изображен внешний вид административной панели этой CMS.

Эта CMS предназначена для создания сайтов любой сложности от домашних страниц до больших порталов. Присутствует русская поддержка. На сайте есть много статей и видеоуроков по настройке самой CMS, инструкции по настройке модулей и работе с шаблонами, а также установке системы на локальный и удаленный web-серверах[16]. При необходимости усложнения сайта, есть возможность расширить функции при помощи модулей и тэгов. В качестве хранилища данных, также как и в Rumba XML используются xml-файлы. Административная панель имеет интуитивно понятный интерфейс. Распространяется рассматриваемая CMS бесплатно по лицензии GNU GPL[16].


3.3Kandidat CMS


Следующая система, приведенная как аналог будет Kandidat_CMS[17].


Рисунок 3.5 - Сайт, созданный с помощью Kandidat CMS 1.4.4


Рисунок 3.6 - Административная панель Kandidat CMS 1.4.4

С помощью этой CMS можно в короткие сроки создавать сайты-визитки, а также несложные сайты.

Эту систему разработала российская компания Kan-studio. На сайте движка выложен список бесплатных хостингов, которые дают возможность работать с этим движком.

Под Kandidat CMS легко переделываются шаблоны.

К возможностям рассматриваемой CMS относятся: создание категорий и страниц для материалов сайта, встроенный визуальный редактор для редактирования страниц, загрузка изображений, файлов на сайт с последующей вставкой в материал, возможность выводить ссылки в список меню, смена шаблона сайта в один клик, добавление новых модулей для сайта, легкое "вживление" javascript и ajax-скриптов, редактирование HTML-кода шаблона прямо в административной панели, смена названия сайта и пароля администратора, страница обратной связи пользователей с администрацией сайта, также доступна настройка несуществующей страницы.

Как и у предыдущих рассматриваемых аналогов, данные этой системы хранятся в текстовых и xml-файлах.

Административная панель удобна и имеет минималистичный дизайн. Сайты, созданные с использованием Kandidat CMS также имеют минималистичный серьезный дизайн.

При изучении этой системы, я выявила некоторые недостатки: недостаточность дополнительных модулей (достаточно только для сайта-визитки) и проблематичность при создании сложных шаблонов. Например, если пользователю необходимо создать выпадающее или многоуровневое меню, это будет очень сложно реализовать. Данная CMS распространяется бесплатно[17].

3.4Zimplit CMS


Очередная система для сравнения - Zimplit CMS[18].


Рисунок 3.7- Сайт, созданный с помощью Zimplit CMS


Рисунок 3.8- Административная панель Zimplit CMS


Zimplit позволяет создавать мини-сайты. Система состоит только из одного базового файла. Особенностью рассматриваемой CMS является то, что в ней нет административной панели, что в некоторой степени упрощает создание сайта с помощью нее, а местами наоборот затрудняет. Русской документации к этой системе нет, это окупается простыми и интуитивно понятными инструментами редактирования CMS. Нет ни плагинов, ни каких либо дополнений для Zimplit. При помощи Zimplit CMS возможно создавать сайты с очень красивым и ярким дизайном. В недостатки рассматриваемого движка можно отнести, невозможность к расширению возможностей. Однако для создания небольшого рекламного сайта или просто небольшого сайта этот движок годится больше, чем все остальные. Распространяется, так же как и предыдущие аналоги бесплатно[18].


3.5Get Simple


Завершает обзор аналогов CMS Get Simple[19]. Get Simple подходит для создания мини-сайтов, сайтов-визиток и мини-страниц. Русская поддержка есть, и не одна. Присутствует возможность резервного копирования сайта и создания отдельных резервных копий всех файлов.


Рисунок 3.9 - Сайт, созданный с помощью Get Simple 3


Рисунок 3.10 - Административная панель Get Simple 3


Под эту систему легко сделать свой шаблон оформления. Кроме всего прочего, с помощью этой CMS можно создать простой сайт с привлекательным дизайном, а дизайн административной панели не только удобный, но и красивый. Есть возможность расширения функций при использовании дополнительных плагинов. Для хранения данных GetSimple использует xml-файлы. Необходимо отметить, что система обладает надежной системой безопасности. Распространяется бесплатно по лицензии GNU GPL[20].


3.6Таблица сравнения аналогов


На основе обзора аналогов составим сравнительную таблицу характеристик CMS (таблица 3.1).


Таблица 3.1 - Сравнение характеристик систем управления контентом

Характеристики для сравненияRumbaMade SimpleKandidatZimplitGetSimpleПростой интерфейс административной панели+++++Визуальный редактор-++++Расширения, плагины-+--+Шаблоны (темы)-++++Несколько авторов+----База данныхXmlSQLXmlНетXmlКомментирование+-+-+Работа с картинками+++++Борьба со спамом+---+Подключение форума++---Экспорт /импорт+----

В результате сравнения можно выявить главные критерии будущего проекта:

·Простой интерфейс административной панели

·Наличие визуального редактора с основными функциями форматирования текста

·Возможность использования шаблонов оформления страниц

·Возможность командной разработки сайта

·Использование xml-файлов для хранения данных

·Возможность работы с изображениями

4 ФОРМИРОВАНИЕ ТРЕБОВАНИЙ К ПО


4.1Диаграмма вариантов использования UML


Рисунок 4.1 - Диаграмма вариантов использования UML


Чтобы определить требования к проектируемой системе, опишем требования в виде UML диаграммы вариантов использования (Рисунок 4.1).

Сформируем формальные требования к системе.

В системе имеются 2 действующих лица:

·Авторизованный пользователь

·Неавторизованный пользователь

Каждый вариант использования отражает последовательность действий, которые может осуществлять система в ответ на воздействия пользователей.

Рассмотрим действия, которые доступны неавторизованному пользователю системы:

«Просмотр страниц»

Основной поток событий:

.Вариант использования начинается после того, как пользователь переходит на страницу своего сайта.

2.Приложение выводит пользователю запрашиваемые страницы сайта, оформленные либо с использованием стандартного шаблона оформления, либо с использованием шаблона оформления, примененного авторизованным пользователем системы.

.Вариант использования завершается.

«Авторизация»

Основной поток событий:

1.Вариант использования начинается после того, как неавторизованный пользователь переходит на страницу административной панели системы.

2.Приложение выводит форму авторизации и предлагает пользователю ввести логин и пароль.

.Пользователь вводит логин и пароль.

.Приложение проверяет введенные данные и подтверждает их. Пользователь становится авторизованным пользователем.

.Вариант использования завершается.

Альтернативный поток событий:

.Приложение информирует пользователя о том, что введенные данные не верны.

2.Приложение предлагает ввести логин и пароль еще раз.

Постусловия:

Выполнить вариант использования «Просмотр информации о системе».

Далее рассмотрим варианты использования для авторизованного пользователя.

«Просмотр информации о системе»

Основной поток событий:

1.Вариант использования начинается после завершения варианта использования «Авторизация»

2.Приложение предоставляет информацию о количестве статей, стилей и пользователей, зарегистрированных в нем.

.Вариант использования завершается.

«Редактирование меню»

Основной поток событий:

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

2.Приложение регистрирует внесенные изменения и сохраняет в xml-файлы для дальнейшего использования сайтом.

.Вариант использования завершается.

«Редактирование стилей оформления»

Основной поток событий:

1.Вариант использования начинается, когда пользователь применяет, изменяет или удаляет шаблоны оформления.

2.Приложение регистрирует внесенные изменения и сохраняет в xml-файлы для дальнейшего использования сайтом.

.Вариант использования завершается.

«Редактирование разделов»

Основной поток событий:

1.Вариант использования начинается, когда пользователь изменяет, добавляет или удаляет раздел.

2.Приложение регистрирует внесенные изменения и сохраняет в xml-файлы для дальнейшего использования сайтом.

.Вариант использования завершается.

«Редактирование статей»

Основной поток событий:

1.Вариант использования начинается, когда пользователь изменяет, добавляет или удаляет статью.

2.Приложение регистрирует внесенные изменения и сохраняет в xml-файлы для дальнейшего использования сайтом.

.Вариант использования завершается.

«Загрузка изображений»

Основной поток событий:

1.Вариант использования начинается, когда пользователь на странице со статьей прикрепляет изображение.

2.Изображение копируется с компьютера пользователя на веб-сервер.

.Приложение регистрирует внесенные изменения и сохраняет в xml-файлы для дальнейшего использования сайтом.

.Вариант использования завершается.

«Управление списком пользователей»

Основной поток событий:

1.Вариант использования начинается, когда пользователь изменяет, добавляет или удаляет пользователя.

2.Приложение регистрирует внесенные изменения и сохраняет в xml-файлы для дальнейшего использования сайтом.

.Вариант использования завершается.

«Просмотр сайта»

Такой же поток событий, как и у неавторизованного пользователя.

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


5.ТЕХНОЛОГИЧЕСКАЯ ПЛАТФОРМА


В результате анализа требований были выбраны следующие технологии реализации: язык программирования C#, ASP.NET MVC 3, XML, ARGO UML - UML редактор.


5.1 Язык C#


C# - это объектно-ориентированный язык программирования. Был разработан в 1998-2001 годах группой инженеров в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET Framework. Он входит в состав среды разработки Visual Studio [21].

C# относится к языкам с C-подобным синтаксисом <#"justify">5.2ASP.NET MVC 3


ASP.NET[23] - это часть веб-платформы для разработки серверных веб-приложений. Платформой для ASP.NET является .NET Framework, что позволяет использовать функции .NET.Framework в приложениях ASP.NET.

ASP.NET MVC 3[24] - это программное обеспечения для создания веб-приложений, на основе шаблона MVC. Преимущества данного подхода будут рассмотрены позже.

Вот некоторые достоинства ASP.NET MVC:

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

·Расширенная поддержка маршрутизации ASP.NET. Этот мощный компонент сопоставления URL-адресов позволяет создавать приложения с понятными URL-адресами, которые можно использовать в поиске. URL-адреса не должны содержать расширения имен файлов и предназначены для поддержки шаблонов именования URL-адресов, обеспечивающих адресацию, оптимизированную для поисковых систем (SEO).

·Поддержка существующих функций ASP.NET. ASP.NET MVC позволяет использовать такие функции, как проверка подлинности с помощью форм и Windows, проверка подлинности по URL-адресу, членство и роли, кэширование вывода и данных, управление состоянием сеанса и профиля, наблюдение за работоспособностью, система конфигурации и архитектура поставщика[25].


5.2.1Razor - движок представления

В ASP.NET 3 используется движок представлений Razor[26]. К его ключевым достоинствам можно отнести:

·Понятный и сжатый синтаксис, что значительно снижает объем кода View

·Простота в изучении, это связано с тем, что он базируется на существующих языках C# и Visual Basic

·Поддержка подсветки синтаксиса в Visual Studio[27].

5.2.2 MVC (Model-View-Controller)

Сейчас популярен шаблон проектирования MVC[28]. Он служит для отделения логики приложения от пользовательского интерфейса. Проясним что такое шаблон проектирования.

Это набор типовых решений проектирования, каркас архитектуры или ее фрагмента. Если библиотека - это пакет повторно используемого кода, то шаблон проектирования - это пакет повторно используемых решений.

Шаблон MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента:

·Модель (Model). Модель предоставляет данные (обычно для View), а также реагирует на запросы (обычно от контроллера), изменяя свое состояние.

·Представление (View). Отвечает за отображение информации (пользовательский интерфейс).

·Поведение (Controller). Интерпретирует данные, введенные пользователем, и информирует модель и представление о необходимости соответствующей реакции.



На схеме показаны отношения между компонентами каркаса.

Преимущества подхода разработки MVC[29]:

·Четкое разделение логических слоев. Отделение представления от контроллера предоставляет возможность простой замены движка представления без модификации кода контроллера, независимость от реализации модели позволяет описать только интерфейсы объектов и подменять реализацию при необходимости.

·Полный контроль над кодом разметки. Полный контроль над разметкой может быть особенно важен, если в веб-приложении используется код, работающий на стороне клиента в браузере пользователя

·Логическое разделение функциональности. В веб-приложениях MVC Framework есть четкое разделение на действия контроллеров, и каждое действие имеет собственных URI.

·Красивые URL-адреса. Это достигается засчет использования гибкой системы маршрутизации.

·Прозрачный процесс обработки запроса. Процесс обработки запроса легко прослеживается, поскольку обработка запроса разделена на небольшое количество очень простых шагов.

·Расширяемость. В MVC Framework возможно использование разных библиотек для обработки представлений, собственных алгоритмов создания объектов контроллеров и расширение механизмов функционирования компонентов библиотеки

·Простота автоматического тестирования. Например, при тестировании кода логики приложения (контроллера) , можно подменить модель версией, созданной специально для тестирования и предоставляющей минимальный набор данных.

·Полноценная поддержка всех возможностей ASP.NET

Недостатками являются:

·Высокий порог входа в технологию

·Необходимы глубокие знания HTML, CSS, JavaScript

·Отсутствие механизма хранения состояния

·Сложности создания библиотек компонентов


5.3XML


XML (eXtensible Markup Language)[30] - формат, используемый для хранения сложных структурированных данных. Он очень похож на HTML, но здесь названия тегов, атрибутов и в целом весь формат хранения данных мы придумываем сами.

Особенности формата:

·первой строкой всегда указывается объявление XML (версия и кодировка)

·любой XML-документ должен обязательно иметь только один корневой элемент

·не допускаются незакрытые теги

В данной работе xml-файлы используются для хранения данных, таких как информации о настройках, разделах, постах и т.п. вместо базы данных. Работа с XML-файлами осуществляется при помощи набора функций LINQ.


5.4ARGO UML - инструмент проектирования UML


ARGO UML[31] является средой UML моделирования.

Функциональность:

·Поддержка спецификаций UML 1.3, 1.4, XMI 1.0, 1.1, 1.2

·9 видов диаграмм UML (диаграммы классов, состояний, кооперации, последовательности, деятельности, прецедентов, объектов, компонентов, развёртывания)

·Поддержка OCL для классов

·Генерация исходного кода Java, C++, C# и PHP

·Обратный инжиниринг из исходного кода и байткода Java.

6Проектирование архитектуры


6.1Прототипирование графического интерфейса пользователя


Прототипирование помогает в процессе создания качественных пользовательских интерфейсов. Создание прототипов позволяет вносить быстрый обзор многих идей и выявлять недочеты в проектируемом приложении на самом раннем этапе разработки. Прототипы могут быть представлены в разнообразных формах: от бумажных набросков, до дизайна, созданного в профессиональном пакете, который выглядит очень близко к желаемому результату. В данном проекте для создания прототипа был использован инструмент Microsoft Expression Blend - SketchFlow[32].

Карта экранов и компонент (рисунок 6.1) показывает как они связаны между собой.


Рисунок 6.1 - Sketch flow map


Экраны - это ключевые состояния приложения. Компоненты - это части приложения, которые могут вставляться в другие компоненты или экраны, т.е. обычная композиция.

На карте видно, что есть стартовый экран Autorisation (рисунок 6.2) и есть несколько основных экранов, в каждый из которых вставлено меню в виде компоненты MainMenu, через который можно попасть на любой из экранов.

Рисунок 6.2. Прототип окна авторизации


После проверки правильности логина и пароля, экран авторизации либо переходит в приветственный экран Welcome или снова возвращается экран Autorisation.

На остальных экранах содержатся данные, такие как основные настройки, список элементов меню (рисунок 6.4), список стилей (рисунок 6.3), список разделов(рисунок 6.5) и статей, а также функционал для их использования, редактирования, создания новых элементов данных и удаления.


Рисунок 6.3 - Прототип экрана Styles


Рисунок 6.4. Прототип экрана Menu

Рисунок 6.5. Прототип экрана Categories


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


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

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

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


Рисунок 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

7Реализация и руководство пользователя


7.1Установка и запуск приложения


Перед установкой дистрибутива XCMS на веб-сервер, необходимо убедиться, что хостинг поддерживает ASP.NET 4 и ASP.NET MVC 2 или более позднюю версию. Затем, следует пройти авторизацию или регистрацию на хостинге. После этого, необходимо зайти в административную панель хостинга и включить ASP.NET 4.0 Integrated Papeline. Далее, нужно распаковать и дистрибутив XCMS на веб-сервер. Чтобы войти в административную панель XCMS, нужно в адресной строке браузера дописать к URL главной страницы вашего сайта через слеш (/) слово admin. При первой авторизации используется логин - admin и пароль admin. Рекомендуется после первой авторизации изменить пароль.


7.2Описание страниц приложения


При открытии сайта с установленной XCMS в окне браузера, пользователь должен увидеть главную веб-страницу своего сайта со стандартным шаблоном оформления.

В зависимости от статуса пользователя - авторизован он или нет, ему доступен ряд страниц. Для пользователя, не прошедшего авторизацию, доступны страницы:

·«Авторизация»

·Просмотр страниц сайта

Чтобы воспользоваться функционалом настройки сайта, необходимо пройти процедуру авторизации. Для авторизованного пользователя доступны страницы:

·Просмотр страниц сайта

·«Главная»

·«Основные настройки»

·«Редактор меню»

·«Стили»

·«Разделы»

·«Статьи»

·«Пользователи»

Рассмотрим каждую из них подробнее:

«Главная»

На данной странице (рисунок 7.1) можно увидеть приветствие текущего пользователя XCMS. Она является начальной страницей приложения. На странице отсутствует какой-либо функционал. Помимо приветствия выводится счетчик созданных статей, доступных стилей и число зарегистрированных пользователей приложения. Страница доступна только авторизованному пользователю.


Рисунок 7.1 - Главная страница


«Авторизация»

Неавторизованный пользователь, после перехода на страницу «Авторизация» (рисунок 7.2) видит 2 текстовых поля:

·Логин. Поле обязательно для заполнения, служит для авторизации в системе XCMS.

·Пароль. Поле обязательно для заполнения, обеспечивает конфиденциальность пользовательской учетной записи.

Если процедура авторизации прошла успешно (заданные логин и пароль существуют), пользователь становится авторизованным и перенаправляется на приветственную страницу XCMS «Главная». Ему становятся доступны страницы редактирования основных настроек, добавления, удаления и редактирования пунктов меню, категорий и текстов статей, пользователей, стилей оформления и выход.


Рисунок 7.2 - Окно авторизации XCMS


Рисунок 7.3 - Неудавшаяся авторизация


При неудачной попытке авторизации выдается сообщение об ошибке с указанием причины ошибки. (Рисунок 7.3)

«Основные настройки»

Страница с главными настройками сайта (рисунок 7.4). Форма страницы содержит несколько текстовых полей:

·Название сайта. Обязательно для заполнения. Содержит текст, который будет выводиться вверху браузера и на страницах сайта.

·Описание. Необязательно для заполнения. Содержит информацию о сайте для включения в html-тэг description.


Рисунок 7.4 - Страница «Основные настройки»


Рисунок 7.5 - Страница «Стили»


«Стили»

При переходе на страницу «Стили» (рисунок 7.5) пользователь может увидеть список шаблонов оформления страниц (СSS шаблоны), доступных для использования на своем сайте и набор действий для них.

Есть возможность изменять файл с CSS через веб-интерфейс (рисунок 7.6).

Есть возможность добавлять свои CSS шаблоны. Для этого, необходимо скопировать папку с файлами шаблона в папку styles на веб-сервере. После этого шаблон появится в списке стилей, и его можно будет использовать.


Рисунок 7.6 - Окно редактирования стиля


«Редактор меню»

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


Рисунок 7.7 - Страница «Редактор меню»


Рисунок 7.8 - Страница «Разделы»


«Разделы»

На этой странице (рисунок 7.8) можно увидеть список разделов сайта и доступные действия для них. Разделы - это фактически страницы сайта. Чтобы страница была отображена на сайте, нужно привязать ее к элементу меню. Для этого выбираем действие «Изменить» для нужного раздела. Теперь нам доступны функции настройки раздела (рисунок 7.9). Здесь достаточно выбрать из выпадающего списка название нужного элемента меню и нажать «ОК» рядом. После этого элемент меню, который был связан с разделом, будет ссылаться на страницу, отображающую статьи привязанного раздела. Чтобы страница не была пустой, нужно добавить на нее статьи. Статьи в систему добавляются на странице «Статьи». Чтобы отобразить их на странице, достаточно привязать, кликнув на кнопку «Добавить», затем выбрать из выпадающего списка нужное название статьи и нажать «ОК». Системой предусмотрена возможность добавления основной статьи, которая будет отображена под логотипом сайта и нескольких дополнительных.


Рисунок 7.9 - Страница «Настройка раздела»

«Статьи»

Перейдя на страницу системы «Статьи» (рисунок 7.10) администратор системы может управлять списком статей.


Рисунок 7.10 - Страница «Статьи»


При добавлении или изменении статьи можно отредактировать ее текст при помощи встроенного текстового редактора (рисунок 7.11). В нем доступны основные функции редактирования текста, такие как изменения начертания, изменение шрифта и его размера.


Рисунок 7.11 - Страница «Изменение статьи»

Кроме того к статье можно присоединить изображение. Для этого нужно кликнуть левой кнопкой мыши в поле «Изображение», после чего появится диалоговое окно выбора изображения. Затем достаточно кликнуть на кнопку «Загрузить!» и изображение будет добавлено к статье.

«Пользователи»

На этой странице (рисунок 7.12) пользователь может управлять списком администраторов CMS. После первой авторизации в XCMS рекомендуется изменить стандартный пароль администратора. Для этого нужно нажать «Изменить» после чего появится окно «Редактирование параметров пользователя» (рисунок 7.13). Здесь можно поменять логин и пароль.


Рисунок 7.12 - Страница «Пользователи»


Рисунок 7.13 - Страница «Редактирование параметров пользователя»

8Апробация на прикладной задаче


Использование разработанной системы управления контентом XCMS при создании сайта автомастерской позволяет:

·снизить временные затраты на оформление дизайна сайта

·оперативно вносить изменения в содержание сайта

·ускорить процесс управления контентом сайта

При создании сайта автомастерской «Wash and Repair» с помощью данной системы был использован шаблон оформления RepairCar, взятый с ресурса Flash Templates Today[34]. В качестве наполнения разрабатываемого сайта автомастерской частично была использована информация с сайта Автомастерской №1.

На рисунке 8.1 изображена главная страница созданного сайта.


Рисунок 8.1 - Главная страница сайта автомастерской



На главной странице была размещена единственная статья - главная статья страницы. Она разместилась согласно выбранному шаблону оформления.

Следующий рисунок 8.2 иллюстрирует страницу сайта «О нас». Здесь была использована та же основная статья страницы, что и на главной странице и к ней добавилась одна дополнительная статья с более подробной информацией об организации.


Рисунок 8.2 - Страница «О нас» сайта автомастерской


Рисунок 8.3 - Страница «Контакты» сайта автомастерской

Кроме того, на этой странице можно увидеть использование функции добавления изображения в статью. Страница с изображениями выглядит лучше, нагляднее, чем та, где содержится только текст.


Разработка CMS системы на основе технологии ASP.NET СОДЕРЖАНИЕ Введение 1.ЦЕЛЬ И ЗАДАЧИ

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ