Автор работы: Пользователь скрыл имя, 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 Критерии эффективности коммерческих инв
В данном пункте была рассмотрена технология доступа к данным ADO.NET, определено её место в обеспечении взаимодействия приложения с базой данных, а также рассмотрены основные классы, которые будут использоваться при разработке дипломного проекта.
3.2 Компоненты доступа к данным
В профессиональных, хорошо спроектированных приложениях код взаимодействия с базой данных никогда не встраивается непосредственно в код, лежащий в основе web-страницы. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении. Чтобы выполнить операцию с базой данных, необходимо создать экземпляр класса и вызвать соответствующий метод.
При разработке дипломного проекта был использован именно такой подход. Для каждой таблицы базы данных, с которой будет взаимодействовать web-приложения, создан свой компонент доступа к данным, включающий все необходимые методы. Методы объявлены как статические, таким образом, вызывать их можно непосредственно через имя класса, не создавая его экземпляр. Каждый метод осуществляет обработку ошибок при взаимодействии с БД и информирует об этом web-страницу, из которой он был вызван.
Например, в компоненте данных OrdersDB,
находятся все необходимые
OrdersDB.GetOrderDetails(
При этом весь код взаимодействия с базой данных находится в этом методе:
public class OrdersDB
{
. . .
public static DataSet GetOrderDetails(int orderID)
{
SqlConnection conn = new SqlConnection(
SqlCommand cmd = new SqlCommand("GetOrderDetails", conn);
…………………………………………………;
cmd.Parameters.Add("OrderID", SqlDbType.Int);
cmd.Parameters["OrderID"].
…………………………………………….;
SqlDataAdapter da = new SqlDataAdapter(cmd);
try
{
da.Fill(ds);
…………..;
return ds;
}
catch (SqlException)
{
……………;
return null;
}
}
. . .
)
На рисунке 5 изображена диаграмма классов всех компонентов доступа к данным.
Рис.5 «Диаграмма классов компонентов доступа к данным»
Примечание.
3.3 Привязка данных
Помимо механизмов извлечения информации из источника данных, современные web-приложения нуждаются в удобном способе отображения этой информации на web-странице. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении. Это означает, что не нужно вручную программировать логику циклического чтения строк, состоящих из многочисленного количества столбцов, и манипулирования отдельными элементами управления.
Например, чтобы отобразить на web-странице таблицу, содержащую позиции заказа, необходимо выполнить следующий код:
GridViewOrderDetails.
Метод GetOrderDetails возвращает объект DataSet, содержащий результаты запроса к базе данных. Для того чтобы отобразить их на web-странице, используя привязку данных, необходимо присвоить DataSet специальному полю DataSource элемента управления (в данном случае GridView) и вызвать метод DataBind() элемента управления, чтобы выполнить привязку. В итоге на web-странице будет изображена таблица, содержащая позиции заказа с заданным номером.
Привязку данных можно также осуществлять с помощью элементов управления источниками данных. При разработке дипломного проекта использовался элемент управления источниками данных – ObjectDataSource, который для привязки данных использует компоненты доступа к данным. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении. Ниже приведён пример использования элемента управления источником данных ObjectDataSource при отображении отзывов покупателей об альбоме с заданным номером:
<asp:ObjectDataSource ID="ObjectDataSource1" SelectMethod="GetResponse"
TypeName="ComponentsDB.
<SelectParameters>
<asp:QueryStringParameter Name="ProductID" QueryStringField="ProductID" Type="Int32" />
…………………..
</asp:ObjectDataSource>
…
<asp:GridView ID="ResponsesGridView" DataSourceID=”
ObjectDataSource1” runat="
Всё это выполняется декларативно в файле дескрипторов web-страницы. При этом можно указывать, откуда ObjectDataSource должен брать параметры запроса, если они необходимы. В данном случае параметр ProductID берётся из строки запроса.
3.4 Пример взаимодействия с БД
Ниже приведён пример взаимодействия web-приложения с базой данных, используя технологию ADO.NET и компоненты доступа к данным. Web-страница HistoryOrders.aspx выводит на экран таблицу, содержащую все заказы данного пользователя.
На странице HistoryOrders.aspx находится элемент управления GridView, предназначенный для отображения табличных данных:
<asp:GridView ID="GridViewOrders" AutoGenerateColumns="False" EnableViewState="False"
ShowFooter="true" SkinID="GridViewStyle" runat="server">
<Columns>
<asp:BoundField DataField="OrderID" HeaderText="Номер заказа" />
<asp:BoundField DataField="OrderDate" DataFormatString={0:dd.MM.yy}
………………………………………………………………………………
<asp:BoundField DataField="SendDate"
HeaderText="Дата отправки" HtmlEncode="False"
DataFormatString="{0:dd.MM.yy}
<asp:BoundField DataField="ConditionName" HeaderText="Состояние заказа" />
……………………………………………………………………..
<asp:BoundField DataField="TotalPrice" DataFormatString={0:c} HtmlEncode="false" HeaderText="Цена"/>
…………………
<ItemTemplate>
<asp:HyperLink ID="OrderDetailsHyperLink" Text="Подробности"
NavigateUrl='<%#"~/
runat="server" CssClass="GridViewLink"></asp:
</ItemTemplate>
<ItemStyle Width="100" />
……………………….
</Columns>
</asp:GridView>
Для доступа к базе данных используется компонент доступа к данным – OrdersDB, для выборки данных – метод OrdersDB.GetOrdersByUser
public static DataSet GetOrdersByUser(Guid userID)
{
SqlConnection conn = new SqlConnection(
…………………………………………………………
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("UserId", SqlDbType.UniqueIdentifier);
cmd.Parameters["UserId"].Value = userID;
………………………………………
SqlDataAdapter da = new SqlDataAdapter(cmd);
try
{
da.Fill(ds);
………….
}
catch (SqlException)
{
conn.Close();
return null;
}
}
Хранимая процедура GetOrdersByUser, находящаяся на сервере базы данных:
CREATE PROCEDURE GetOrdersByUser (@UserId UNIQUEIDENTIFIER) AS
SELECT OrderID,OrderDate,SendDate,
WHERE UserId = @UserId
ORDER BY OrderDate
GO
В файле кода web-страницы HistoryOrders.aspx.cs вызывается метод GetOrdersByUser класса OrdersDB:
MembershipUser _user = Membership.GetUser(User.
DataSet ds = OrdersDB.GetOrdersByUser((
if(ds == null)
{
………………………………..
}
GridViewOrders.DataSource = ds;
GridViewOrders.DataBind();
Компонент доступа к данным вызывает хранимую процедуру на сервере базы данных, передавая в неё в качестве параметра код пользователя. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении, и если была обнаружена ошибка при взаимодействии с БД, то осуществляется переход на страницу информации об ошибке.
В результате на web-страницы будет изображена таблица, представленная на рисунке 6.
Рис. 6 «История заказов покупателя»
4 ПРОЕКТИРОВАНИЕ КОМПОНЕНТОВ WEB
4.1 Общая структура web-приложения
4.1.1 Структура каталогов
На рисунке 7 изображена полная структура каталогов разработанного web-приложения.
Рис. 7 лист 3 «Структура каталога web-приложения»
Подкаталог AdminProtectedPages содержит web-страницы(файлы дескрипторов .aspx и файлы кода .cs), доступные только аутентифицированным пользователям, чьи учётные записи относятся к роли Administrator. Подробнее о ролях рассмотрено в пункте №. 4.5.3
Назначение web-страниц подкаталога AdminProtectedPages:
Подкаталог ImageAlbum содержит обложки музыкальных альбомов.
Подкаталог App_Code содержит файлы пользовательских классов:
В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении.
Подкаталог App_Theme содержит файл темы оформления и css-файл. (будут рассмотрены в пункте 4.2.3).
Подкаталог Images содержит изображения, используемые для оформления web-страниц.
Подкаталог MasterPages содержит файлы мастер-страниц, которые будут рассмотрены в пункте 4.2.1
Назначение web-страниц подкаталога MasterPages:
Подкаталог ProtectedPages содержит web-страницы(файлы дескрипторов .aspx и файлы кода .cs), доступные только аутентифицированным пользователям. Подробнее об аутентификации будет написано в пункте 4.5.2.
Назначение web-страниц подкаталога ProtectedPages:
Подкаталог UserControls, содержит файлы пользовательских элементов управления. Подробнее о пользовательских элементах управления написано в пункте 4.2.2.
Назначение пользовательских элементов управления: