Пояснительная записка (1207236), страница 4
Текст из файла (страница 4)
На рисунке 2.13 отображена специфика компонентов приложения согласно шаблону проектирования MVC. Папка Models содержит модели, используемые приложением. В папке Views размещаются представления. Представления группированы по папкам, каждая из которых соответствует одному контроллеру. После получения и обработки запроса контроллер отправляет одно из этих представлений, заполненных некоторыми данными, клиенту.
В папке App_Data хранятся все необходимые файлы и ресурсы.Папка App_Start включает весь функционал конфигурации приложения, выполняющейся при запуске.
Файл Web.config – это файл конфигурации приложения, который находится в корневой папке приложения. В данном файле прописываются многие параметры, настраивающие работы приложения и взаимодействия с базой данных.В папке Content могут размещаться файлы стилей css. Так, этой папке находится файл Bootstrap.css, который содержит стили приложения. Папка Controllers содержит контроллеры – классы, отвечающие за работу приложения. Папка Scripts содержит скрипты на JavaScript. По умолчанию в эту папку помещены файлы библиотеки jQuery.
Рисунок 2.13 – Диаграмма компонентов структуры шаблона проектирования MVC
На рисунке 2.14 показаны отношения зависимости между компонентами и их классами. Согласно шаблону MVC, разрабатываемая системы разделяется на модели, представления и контроллеры, их структура и взаимосвязь отображены на диаграмме компонентов, приведённой ниже.
Рисунок 2.14 – Диаграмма компонентов приложения
Диаграмма развертывания предназначена для визуализации элементов и компонентов системы, существующих лишь на этапе ее исполнения, к которым относятся исполнимые файлы, динамические библиотеки, таблицы баз данных и т. д. Те компоненты, которые не используются на этапе исполнения (например, исходные тексты программ), на диаграмме не показываются.
Основные цели, преследуемые при разработке диаграммы развертывания:
-
распределение компонентов системы по ее физическим узлам;
-
отображение физических связей между узлами системы на этапе исполнения.
Из диаграммы, представленной на рисунке 2.15 видно, что Пользователь и Администратор получают доступ к интернет магазину через браузер, переходя на соответсвующий URL-адрес. Само приложениебудет размещено на хостинг сервере.
Рисунок 2.15 – Диаграмма развёртывания
2.4 Программная часть проекта
Разработка проекта осуществляется на ASP.net MVC на языке программирования C#. Данная технология выбрана, поскольку имеет ряд существенных преимуществ:
-
хорошая расширяемость;
-
использование шаблона MVC;
-
жёсткий контроль над HTML и HTTP;
-
тестируемость;
-
система маршрутизации;
-
современный API-интерфейс;
-
инфраструктура ASP.NET MVC имеет открытый код.
Рассмотрим указанные выше преимущества более подробно.
Инфраструктура MVC Framework построена в виде набора независимых компонентов, которые удовлетворяют интерфейсу .NET или созданы на основе абстрактного базового класса. Компоненты, подобные системе маршрутизации, механизму визуализации и фабрике контроллеров, можно легко заменять другими компонентами с собственной реализацией.
Существующая платформа ASP.NET производства Microsoft предлагает зрелый, хорошо проверенный набор компонентов и средств для разработки эффективных и высокопроизводительных веб-приложений. Наиболее очевидное преимущество заключается в том, что поскольку инфраструктура ASP.NET MVC построена на основе платформы .NET, существует возможность писать код на любом языке .NET и при этом иметь доступ к одним и тем же функциям API-интерфейсов, которые определены не только в MVC Framework, но и в обширной библиотеке классов .NET, а также в широком множестве библиотек .NET от независимых разработчиков.
Инфраструктура ASP.NET MVC генерирует ясный и соответствующий стандартам код разметки. Ее встроенные вспомогательные методы HTML производят соответствующий стандартам вывод, но существует также гораздо более значимое философское изменение по сравнению с WebForms. Вместо генерации громадного объема трудно поддающейся управлению HTML-разметки инфраструктура MVC Framework стимулирует создание простых и элегантных элементов, оформленных стилями CSS.
Инфраструктура ASP.NET MVC работает в тесном сотрудничестве с HTTP. При этом имеется контроль над запросами, передаваемыми между браузером и сервером, что позволяет очень точно настраивать пользовательский интерфейс по своему усмотрению. Технология AJAX проста, и ей не нужны какие-то автоматические обратные отправки запросов для взаимодействия с состоянием клиентской стороны.
В среду разработки MSVisualStudio включены инструменты, позволяющие производить модульное тестирование.
Код интерпретируемый на стороне клиента представлен следующими технологиями:
-
HTML строго говоря не является языком программирования, используется для разметки страниц;
-
CSS – каскадные таблицы стилей, отвечают за внешний вид страниц, обеспечивая гибкую систему управления дизайном сайта;
-
JavaScript – язык программирования исполняемый на стороне клиента.
В качестве СУБД выбран продукт MicrosoftSQLServer. SQL Server, являясь основой всесторонней платформы данных Microsoft, демонстрирует высочайшую производительность критически важных приложений благодаря встроенным технологиям обработки в оперативной памяти, более быстрого получения результатов анализа любых данных при использовании привычных средств и встроенной платформе для создания и развертывания решений, которая поддерживает как локальные ресурсы, так и облачную среду.
3 Проектирование структуры базы данных.
Проектирование БД следует начинать с построения логической и физической модели данных. Прежде чем переходить к рассмотрению этих двух моделей изучим структуру таблиц базы данных.
Таблица 3.1 содержит информацию о пользователях их ФИО, а также логическое поле, отвечающее за блокировку аккаунта. Данная таблица связана с таблицей 3.2, которые вместе отвечают за авторизацию пользователя в системе.
Таблица 3.1 – Пользователь
Название поля | Тип данных | Описание |
IDПользователь | Int | Уникальный номер, идентифицирующий пользователя |
Почта | varchar | Адрес электронной почты |
Фамилия | varchar | Фамилия пользователя |
Имя | varchar | Имя пользователя |
Отчество | varchar | Отчество пользователя |
Активность | byte | Блокировка пользователя |
Так в таблице 3.2 содержаться дата создания записи, пароль пользователя и токен восстановления пароля, который создаётся и отправляется на электронный адрес пользователя при его запросе.
Таблица 3.2 – Авторизация
Название поля | Тип данных | Описание |
ID | int | Уникальный номер |
Дата | Datetime | Дата регистрации в системе |
Пароль | int | Пароль пользователя для входа в систему |
Токен | int | Код восстановления пароля |
Таблица 3.3 служит для разбиения связи многие ко многим между таблицами 3.4 и 3.6, которые будут рассмотрены ниже. Здесь также содержится количество единиц товара, которые относятся к конкретному заказу. Данная таблица формируется автоматически при разработке приложения при помощи подхода code-first, что облегчает процесс разработки и предотвращает появление связей многие ко многим в разрабатываемой базе данных.
Таблица 3.3 – Корзина
Название поля | Тип данных | Описание |
IDКорзина | int | Уникальный номер, идентифицирующий корзину |
Количество | int | Количество товаров |
IDТовар | int | Уникальный номер, идентифицирующий товар |
IDЗаказ | int | Уникальный номер, идентифицирующий заказ |
В таблице 3.4 хранятся данные о заказе пользователя и включает дату составления, дату исполнения заказа, поля типа byte, которые могут принимать значения равные True или False устанавливающие статус заказа. Использования логических полей, определяющих статус заказа продиктовано логикой приложения.
Таблица 3.4 – Заказ
Название поля | Тип данных | Описание |
IDЗаказ | int | Уникальный номер, идентифицирующий заказ |
Итог | int | Итоговая стоимость заказа |
Новый | byte | Логическое поле, означающее, что заказ не обработан менеджером сайта |
Впроцессе | byte | Логическое поле, означающее, что заказ отправлен покупателю |
Завершён | byte | Логическое поле, означающее, что заказ доставлен покупателю |
Дата составления | DateTime | Дата составления заказа |
Дата исполнения | DateTime | Дата доставки заказа |
IDПользователь | int | Уникальный номер, идентифицирующий пользователя |
В таблице 3.5 хранятся контактные данные для доставки заказа и место доставки. Данная таблица связана как с таблицей 3.4, так и с таблицей 3.1, что позволяет пользователю добавлять несколько адресов доставки, кроме того, тип связи, используемой даёт возможность на один адрес оформлять несколько заказов.
В таблицу 3.5 введено поле типа byte, которое устанавливает основной адрес доставки. Это поле позволяет пользователю производить процесс оформления и заказа товара быстрее. А поле “Индекс” служит для отправления товаров посредством почты. Идентификатор пользователя в таблице служит для обеспечения связи с таблицей 3.1.
Таблица 3.5 – Адрес
Название поля | Тип данных | Описание |
IDАдрес | int | Уникальный номер, идентифицирующий адрес |
Улица | varchar | Улица доставки товара |
Город | varchar | Город доставки товара |
Область | varchar | Регион доставки товара |
Страна | varchar | Страна доставки товара |
Индекс | int | Почтовый индекс |
Телефон | varchar | Контактный телефон |
Основной | byte | Поле определяющее является ли адрес доставки основным для пользователя |
Здание | varchar | Номер дома |
IDПользователь | int | Уникальный номер, идентифицирующий пользователя |
В таблице 3.6 содержатся все параметры предмета одежды, выставленного на продажу. Для обеспечения возможности отслеживания снижения цены предусмотрены два поля, отвечающие за цену.
Таблица 3.6 –Товар
Название поля | Тип данных | Описание |
IDТовар | int | Уникальный номер, идентифицирующий адрес |
Наименование | varchar | Наименование товара |
Цена | int | Цена товара |
Поступление | DateTime | Дата поступления товара |
Производитель | int | Уникальный номер, идентифицирующий бренд |
ЦенаСтар | int | Старая цена, до скидки |
Описание | varchar | Описание товара |
Популярный | byte | Поле определяющее нужно ли выводить товар в список популярных товаров |
IDКатегория | int | Уникальный номер, идентифицирующий категорию товара |
Новый | byte | Поле определяющее нужно ли выводить товар в список новых товаров |
Цвет | varchar | Цвет товара |
Сезон | varchar | Рекомендуемый сезон для ношения одежды |
В таблице 3.7 содержится информация о количестве экземпляров товара определённого размера. Данная таблица хранит в себе ссылку в виде идентификатора товара, которому соответствует запись.