Автор работы: Пользователь скрыл имя, 17 Мая 2013 в 10:12, дипломная работа
Целью данного дипломного проекта является создание web-приложения, представляющего собой интернет – магазин по продаже музыкальных CD и DVD дисков, которое позволит продавцу размещать в Интернет информацию о продукции и принимать заказы покупателей. А покупатели соответственно смогут просматривать каталог и заказывать музыкальную продукцию, доставка которой будет осуществляться через систему почтовой связи.
В качестве ОС для разработки была выбрана Windows XP Professional. В качестве технологии разработки будет использоваться ASP.NET 2.0. Информационная система будет представлять собой реляционную базу данных под управлением СУБД SQL Server 2000.
Перечень сокращений………………………………………………………………………………9
Введение……………………………………………………………………………………………10
1 Исследование предметной области…………………………………………………………….11
1.1 Актуальность систем электронной коммерции……………………………………...11
1.2 Требования к системе………………………………………………………………….11
1.3 Сравнение с аналогами………………………………………………………………..12
1.4 Описание способов оплаты……………………………………………………….…...14
1.5 Решения по реализации………………………………………………………………..15
1.5.1 Выбор технологии для разработки………………………………………….15
1.5.2 Основные особенности технологии ASP.NET……………………………..17
1.5.3 Выбор ОС и web-сервера………………………………………………...….18
1.5.4 Выбор языка программирования для разработки………………………….19
1.5.5 Выбор информационной системы…………………………………………..20
1.5.6 Выбор среды разработки…………………………………………………….21
1.6 Обработка страниц на web-сервере и модель событий ASP.NET………………..…22
2 Проектирование БД…………………………………………………………………………...…25
2.1 Физическая модель БД………………………………………………………………...25
2.2 Описание таблиц БД……………………………………………………………….….27
3 Взаимодействие с БД………………………………………………………………………...….30
3.1 Архитектура ADO.NET……………………………………………………………..…30
3.2 Компоненты доступа к данным…………………………………………………….....31
3.3 Привязка данных……………………………………………………………………....34
3.4 Пример взаимодействия с БД………………………………………………………...35
4 Разработка компонентов web-приложения…………………………………………………....38
4.1 Общая структура web-приложения……………………………………………….….38
4.1.1 Структура каталогов…………………………………………………………38
4.1.2 Файла конфигурации web-приложения web.config………………………..43
4.2 Компоновка и оформление web-страниц…………………………………………….46
4.2.1 Мастер-страницы………………………………………………………….....46
4.2.2 Пользовательские элементы управления…………………………………...49
4.2.3 Каскадные таблицы стилей и темы оформления…………………………..50
4.3 Элементы управления проверкой достоверности……………………………….…..52
4.4 Класс web-страницы с возможностью отслеживания обновления………………....53
4.5 Аутентификация и авторизация пользователей……………………………………..58
4.5.1 Описание и настройка интерфейса Membership API………………………58
4.5.2 Аутентификация форм………………………………………………………60
4.5.3 Авторизация и настройка интерфейса Roles API………………………….63
4.6 Описание профилей пользователей………………………………………………….68
4.7 Основные элементы интерфейса покупатель музыкального Интернет-магазина...72
4.7.1 Регистрация нового покупателя…………………………………………….72
4.7.2 Личные данные покупателя…………………………………………………74
4.7.3 Каталог продукции…………………………………………………………..75
4.7.4 Страница подробностей о продукции………………………………………76
4.7.5 Отзывы о продукции………………………………………………………...77
4.7.6 Корзина покупателя………………………………………………………….79
4.7.7 Оформление заказа…………………………………………………………..80
4.7.8 История заказов……………………………………………………………...81
4.7.9 Страница вопросов покупателей……………………………………………82
4.8 Основные элементы интерфейса администратора музыкального Интернет-магазина…………………………………………………………………………………………….84
4.8.1 Управление каталогом товаров……………………………………………..84
4.8.2 Управление заказами………………………………………….......................87
4.8.3 Страница для ответов на вопросы покупателей…………….......................88
5 Производительность и масштабируемость web-приложения………………………………..89
5.1 Способы повышения производительности и масштабируемости………………....89
5.2 Применение механизма кэширования……………………………….........................90
5.2.1 Кэширование вывода………………………………………………………..90
5.2.2 Кэширование данных…………………………………………………….....91
5.3 Настраиваемое разбиение на страницы с помощью ObjectDataSource…………93
6 Развёртывание web-приложения и модели компиляции……………………………………..98
6.1 Развёртывание web-приложения……………………………………………………..98
6.2 Модели компиляции………………………………………………………………......99
7 Разработка бизнес-плана……………………………………………………………………….101
7.1 Резюме………………………………………………………………………………...101
7.2 Анализ положения дел в отрасли……………………………………………………101
7.3 Суть разрабатываемого проекта……………………………………………………..102
7.3.1 Назначение…………………………………………………………………..102
7.3.2 Форма реализации…………………………………………………………..102
7.3.3 Преимущества перед аналогами…………………………………………..103
7.4 План маркетинга……………………………………………………………………..103
7.4.1 Анализ конкурентоспособности товара………………………………….103
7.4.2 Анализ рынка сбыта……………………………………….........................104
7.4.3 Разработка стратегии ценообразования и стратегии продвижения товара……………………………………………………………………………………………..105
7.5 Производственный план…………………………………………………………….105
7.6 Планирование разработки и определение себестоимости программного обеспечения………………………………………………………………………………………106
7.6.1 Планирование разработки…………………………………………………106
7.6.2 Определение себестоимости программного обеспечения………………107
7.7 Оценка экономической эффективности инвестиционного проекта.......................109
7.7.1 Критерии эффективности коммерческих инв
1.5.4 Выбор языка программирования для разработки
Так как для разработки web-приложения была выбрана технология ASP.NET, то в качестве языка программирования мы можем выбрать один из трёх языков – С#, Visual Basic.NET, J# или даже использовать несколько.
В качестве языка программирования был выбран C#. Это достаточно новый язык программирования, который характеризуется следующими двумя преимуществами:
- Он спроектирован и разработан специально для применения с платформой .NET Framework. Таким образом, он позволяет наиболее полно и эффективно использовать все широчайшие возможности, предоставляемые этой средой.
- Это язык, основан
на современной объектно-
- С# вобрал
в себя все лучшее из таких
популярных языков как С++, Visual
Basic, Java и Object Pascal. С# обеспечивает
быструю разработку, в то же
время позволяет писать
Основные особенности нового языка:
- автоматическая “сборка мусора” – освобождение
неиспользуемой памяти;
- возможность манипулировать указателями
и иметь непосредственный доступ к;
- поддержка свойств и (аналогично VB);
- поддержка атрибутов;
- встроенная поддержка основных типов
(строка, массив и);
- множественное наследование возможно
только от интерфейсов (как в Java);
- поддержка С API, Windows API и COM+ на уровне языка;
- контроль типов;
- автоматическая инициализация переменных;
Таким образом, для разработки был выбран язык программирования C#, который был специально разработан для платформы .NET Framework полностью в соответствие с объектно-ориентированными принципами и позволяет наиболее полно и эффективно использовать все возможности платформы.
1.5.5 Выбор информационной системы
Разрабатываемое web-приложение будет хранить значительные объёмы структурированной информации, к которой необходимо обеспечить эффективный множественный доступ. Исходя из этого, в качестве информационной системы была выбрана реляционная база данных.
Для управления базой данных необходимо выбрать СУБД, которая будет максимально отвечать требованиям, предъявляемым к разрабатываемому web-приложению.
Довольно часто для малых и средних проектов используется СУБД MySQL, однако она первоначально была разработана как простая бесплатная база данных, в которой в угоду простоте, дешевизне и быстродействию были исключены многие функции, например, поддержка целостности и хранимые процедуры. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении.
Таким образом, для управления базой данных Музыкального Интернет-магазина потребуется более производительная СУБД с большим набором функций, например, Oracle 9i Database или MS SQL Server 2000. Ниже приведены некоторые преимущества каждой из них.
Преимущества SQL Server 2000:
- SQL Server 2000 дешевле Oracle 9i Database в 0 раза.
- SQL Server 2000 удерживает высшие результаты TPC-C по производительности и.
- SQL Server 2000, в общем, считается более легким для установки, использования и.
Преимущества Oracle 9i Database:
- Oracle 9i Database поддерживается на всех известных платформах, а не только на Windows-платформах.
- PL/SQL более мощный язык, чем T-SQL.
- Большее количество тонких настроек конфигурации может быть сделано через параметры запуска.
Оба продукта могут быть использованы для построения стабильных и эффективных систем, однако, в нашем случаё более подходящим является MS SQL Server 2000. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении. К тому же использование SQL Server обойдётся в 2-3 раза дешевле, чем аналогичный вариант на Oracle.
Также необходимо отметить, что часть среды .NET Framework – ADO.NET, которая обеспечивает взаимодействие с базами данных, во многом ориентирована на взаимодействие именно с SQL Server. Это позволяет достичь наилучшего быстродействия при обращении к базе данных, что особенно важно для web-приложений. Кроме того, в библиотеке классов .NET есть всё необходимое для подключения и взаимодействия с базами данных SQL Server.
Исходя из вышеперечисленного, в качестве СУБД был выбран Microsoft SQL Server 2000. Это эффективный и надёжный сервер, отвечающий самым высоким требованиям к производительности, масштабируемости и отказоустойчивости, имеет широкую поддержку языка XML и стандартов Интернета. Он обладает эффективными и удобными средствами администрирования.
1.5.6 Выбор среды разработки
В качестве среды разработки была выбрана Microsoft Visual Studio 2005.
Это профессиональный инструмент разработки приложений любой степени сложности, в том числе и приложений ASP.NET. Она позволяет сделать процесс разработки и отладки быстрым и эффективным. Ниже приведены некоторые преимущества Visual Studio:
- Реализация принципа WYSIWYG (“Что видишь, то и получаешь”), позволяющего максимально упростить проектирование пользовательского интерфейса и.
- Встроенный Web-сервер, наподобие IIS для.
- Многоязыковая разработка. Разные web-страницы в одном приложении могут быть реализованы на.
- Большой набор отладочных
- Механизм IntelliSense, отлавливающий ошибки и предлагающий решения в.
Исходя из требований к разрабатываемому web-приложения, было принято вести разработку на ОС Windows Professional, на платформе .NET Framework. В качестве технологии для разработки используется ASP.NET, а языком программирования выбран C#. В качестве СУБД выбран SQL Server 2000, а для доступа к базе данных используется технология ADO.NET. Для разработки используется Visual Studio 2005.
1.6 Обработка страниц на Web-сервере и модель событий ASP.NET
В общем случае процесс взаимодействия пользователя с web-приложением происходит следующим образом. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении. После соответствующей обработки ресурс возвращается IIS, а затем и клиенту. Общая схема обработки запросов представлена на рисунке 1.
Рис 1. «Обработка запросов с помощью IIS и ASP.NET»
После того как web-сервер передал запрос исполняющей среде ASP.NET, вся последующая обработка происходит уже там. Ниже кратко описана модель событий ASP.NET:
Как было сказано, выше после отправки страницы клиенту вся информация о ней удаляется из памяти web-сервера, что позволяет экономить ресурсы сервера, это означает, что информация будет теряться после каждой обратной отсылки. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении. Эта информация используется, чтобы при повторном создании объёктов страницы на web-сервере, привести их в состояние, в котором они были перед последней отправкой страницы клиенту.
На рисунке 2 представлен жизненный цикл страницы ASP.NET.
Рис 2. «Жизненный цикл страницы ASP.NET»
В данном пункте был обобщённо рассмотрен процесс взаимодействия пользователя с web-приложением посредством web-сервера и среды ASP.NET, а также приведён порядок обработки страниц средой ASP.NET.
2 ПРОЕКТИРОВАНИЕ БД
2.1 Физическая модель БД
Проектирование таблиц базы данных
и связей между ними осуществлялось
с помощью встроенного
Рис. 3 лист 1 «Физическая модель базы данных»
Рис. 3 лист 2 «Физическая модель базы данных»
Скрипт для создания базы данных, а также примеры хранимых процедур, представлены в приложении 4.
Таблицы, представленные на рис. 3 лист 2, специально выделены в отдельную группу. Они необходимы для работы интерфейсов Membership API, Roles API и Profile API, предназначенных для обеспечения аутентификации и авторизации пользователей, а также управление профилями пользователей. Подробнее об этих интерфейсах и их использовании при разработке приложения написано в пунктах 4.5.1, 4.5.3 и 4.6 соответственно.
2.2 Описание таблиц БД
В таблице 1 представлена структура основных таблиц базы данных.
Таблица 1 «Структура основных таблиц БД»
Таблица |
Атрибут |
Тип данных |
Примечание |
Catalogue (Каталог) |
ProductID (Код продукта) |
int |
Первичный ключ, автоинкрементное |
ProductCode (Код продукта в каталоге |
nvarchar(30) |
Уникальное | |
ArtistID (Код исполнителя) |
Внешний ключ из таблицы Artists, часть составного уникального поля | ||
nvarchar(50) |
Часть составного уникального поля | ||
TypeProductID (Код категории) |
int |
Внешний ключ из таблицы TypeProduct, часть составного уникального поля | |
GenreID (Код муз. жанра) |
int |
||
PublisherID (Код фирмы-издателя) |
int |
Внешний ключ из таблицы Publishers, часть составного уникального поля | |
YearRelease (Год выпуска) |
int |
||
DateAddition (Дата добавления в каталог) |
smalldatetime |
||
Description (Описание) |
nvarchar(4000) |
||
TrackList (Список композиций) |
nvarchar(1000) |
||
bit |
|||
BoughtQuantity (Кол-во заказов) |
int |
||
UnitCost (Цена) |
money |
||
ImageFile (Файл обложки) |
|||
TypeProduct (Категория продукта) |
TypeProductID (Код категории) |
int |
Первичный ключ, автоинкрементное |
TypeProductName (Название категории) |
nvarchar(30) |
Уникальное | |
Description (Описание) |
nvarchar(50) |
||
Genres (Музыкальные жанры) |
GenreID (Код муз. жанра) |
Первичный ключ, автоинкрементное | |
GenreName (Название жанра) |
nvarchar(50) |
||
Description (Описание) |
nvarchar(50) |
||
Publishers (Фирмы-издатели) |
PublisherID (Код фирмы-издателя) |
int |
Первичный ключ, автоинкрементное |
PublisherName (Название фирмы-издателя) |
nvarchar(50) |
Уникальное | |
nvarchar(50) |
|||
Artists (Исполнители) |
ArtistID (Код испонителя) |
int |
Первичный ключ, автоинкрементное |
ArtistName (Название исполнителя) |
nvarchar(50) |
Уникальное | |
Description (Описание) |
nvarchar(50) |
||
Responses (Отзывы о продукции) |
int |
Часть составного первичного ключа, автоинкрементное | |
ProductID (Код продукта) |
Часть составного первичного ключа, внешний ключ из таблицы Catalogue | ||
Rating (Оценка) |
tinyint |
||
UserName (Имя пользователя) |
nvarchar(250) |
||
Response (Отзыв) |
nvarchar(500) |
||
DateAddition (Дата добавления) |
smalldatetime |
||
FAQ (Вопрос/Ответ) |
FAQID (Код) |
int |
Первичный ключ, автоинкрементное |
UserName (Имя пользователя) |
nvarchar(50) |
||
nvarchar(500) |
|||
Answer |
nvarchar(500) |
||
Orders (Заказы) |
OrderID (Код заказа) |
int |
Первичный ключ, автоинкрементное |
uniqueidentifier |
Внешний ключ из таблицы aspnet_Users | ||
OrderDate (Дата заказа) |
smalldatetime |
||
SendDate (Дата отправки заказа) |
|||
ConditionOrderID (Код состояния заказа) |
int |
Внешний ключ из таблицы ConditionOrder | |
TypePaymentID (Код способа оплаты) |
int |
Внешний ключ из таблицы TypePayment | |
TotalPrice (Цена заказа) |
money |
||
Discount (Скидка) |
int |
||
OrderDetails |
OrderID (Код заказа) |
int |
Часть составного первичного ключа, внешний ключ из таблицы Orders |
ProductID (Код продукта) |
int |
Часть составного первичного ключа, внешний ключ из таблицы Catalogue | |
Quantity (Кол-во) |
int |
||
UnitCost (Цена) |
money |
||
ConditionOrderID (Код состояния заказа) |
int |
Первичный ключ, автоинкрементное | |
ConditionName (Наименование состояния заказа) |
nvarchar(50) |
||
Description (Описание) |
|||
TypePayment (Способы оплаты) |
TypePaymentID (Код способа оплаты) |
int |
Первичный ключ, автоинкрементное |
3 ВЗАИМОДЕЙСТВИЕ С БД
3.1 Архитектура ADO.NET
На сегодняшний момент существует множество технологий доступа к данным - ODBC, DAO, ADO и многие другие. Среда .NET Framework имеет свою собственную технологию доступа к данным – ADO.NET.
ADO.NET состоит из управляемых
классов, позволяющих
В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении.
Важным элементом автономного доступа к данным является контейнер для табличных данных, который не знает о СУБД. Такой контейнер представлен в ADO.NET классом DataSet или DataTable.
Архитектуру ADO.NET можно разделить на две фундаментальные части: подключённую и автономную. Все различные классы ADO.NET можно отнести к подключённой или автономной части. Единственным исключением является класс DataAdapter. Работающий как посредник между подключённой и автономной частями.
Подключённая часть содержит классы, которым для работы нужно доступное открытое соединение, чтобы взаимодействовать с источником данных. Сюда входят классы для установки подключения к источнику данных (Connection), управления транзакциями (Transaction), выполнения команд (Command) и другие.
К автономной части относятся классы, которым не требуется доступное открытое подключение. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении.
Далее на рисунке 4 представлена общая структура ADO.NET и то, как с помощью неё программа взаимодействует с источником данных.
Рис. 4 «Общая структура ADO.NET и её место в обеспечении доступа к данным»
Отличительной особенностью ADO.NET являются то, что для доступа к разным базам данных используются разный набор классов. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении. Классы автономной части ADO.NET являются одинаковыми для всех баз данных.