Бизнес-план интренет-магазина

Автор работы: Пользователь скрыл имя, 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 файл

Диплом.doc

— 2.87 Мб (Скачать файл)

 

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

 

3.2 Компоненты доступа  к данным

 

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

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

Например, в компоненте данных OrdersDB, находятся все необходимые методы для управления заказами покупателей, взаимодействующие с таблицами базы данных Orders и OrderDetails. Вызов метода, который возвращает позиции заказа с указанным номером, в коде web-страницы будет выглядеть следующим образом:

OrdersDB.GetOrderDetails(orderID);

При этом весь код взаимодействия с базой данных находится в этом методе:

public class OrdersDB

{

. . .

public static DataSet GetOrderDetails(int orderID)

{

SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["connStr"].ConnectionString);

     SqlCommand cmd = new SqlCommand("GetOrderDetails", conn);

     …………………………………………………;

 

     cmd.Parameters.Add("OrderID", SqlDbType.Int);

     cmd.Parameters["OrderID"].Value = orderID;

     …………………………………………….;

     SqlDataAdapter da = new SqlDataAdapter(cmd);

     try

     {

      da.Fill(ds);

…………..;

            return ds;

     }

     catch (SqlException)

     {

           ……………;

           return null;

     }

}

. . .

)

На рисунке 5 изображена диаграмма  классов всех компонентов доступа  к данным.

    

Рис.5 «Диаграмма классов компонентов  доступа к данным»

Примечание.

  • ArtistDB – взаимодействие с таблицей Artists(Исполнители);
  • OrdersDB - взаимодействие с таблицами Orders(Заказы) и OrderDetails(Детали заказа);
  • TypeProductDB - взаимодействие с таблицей TypeProduct(Категории продукции);
  • CatalogDB - взаимодействие с таблицей Catalogue(Каталог);
  • ResponsesDB - взаимодействие с таблицей Responses(Отзывы);
  • TypePaymentDB - взаимодействие с таблицей TypePayment(Способы оплаты);

 

 

 

3.3 Привязка данных

 

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

Например, чтобы отобразить на web-странице таблицу, содержащую позиции заказа, необходимо выполнить следующий код:

GridViewOrderDetails.DataSource = OrdersDB.GetOrderDetails(orderID); GridViewOrderDetails.DataBind();

 

Метод GetOrderDetails возвращает объект DataSet, содержащий результаты запроса к базе данных. Для того чтобы отобразить их на web-странице, используя привязку данных, необходимо присвоить DataSet специальному полю DataSource элемента управления (в данном случае GridView) и вызвать метод DataBind() элемента управления, чтобы выполнить привязку. В итоге на web-странице будет изображена таблица, содержащая позиции заказа с заданным номером.

Привязку данных можно также  осуществлять с помощью элементов  управления источниками данных. При  разработке дипломного проекта использовался элемент управления источниками данных – ObjectDataSource, который для привязки данных использует компоненты доступа к данным. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы.  Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении. Ниже приведён пример использования элемента управления источником данных ObjectDataSource при отображении отзывов покупателей об альбоме с заданным номером:

<asp:ObjectDataSource ID="ObjectDataSource1" SelectMethod="GetResponse" TypeName="ComponentsDB.ResponseDB" runat="server">

<SelectParameters>

            <asp:QueryStringParameter Name="ProductID" QueryStringField="ProductID" Type="Int32" />

…………………..

</asp:ObjectDataSource>

<asp:GridView ID="ResponsesGridView" DataSourceID=”  ObjectDataSource1” runat="server" />

 

Всё это выполняется декларативно в файле дескрипторов 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}" NullDisplayText="Неизвестна"/>

<asp:BoundField DataField="ConditionName" HeaderText="Состояние заказа" />

……………………………………………………………………..

<asp:BoundField DataField="TotalPrice" DataFormatString={0:c} HtmlEncode="false" HeaderText="Цена"/>

…………………

<ItemTemplate>

<asp:HyperLink ID="OrderDetailsHyperLink" Text="Подробности" NavigateUrl='<%#"~/ProtectedPages/HistoryOrderDetails.aspx?OrderID=" + …………………………….

runat="server" CssClass="GridViewLink"></asp:HyperLink>

</ItemTemplate>

<ItemStyle Width="100" />

……………………….

</Columns>

</asp:GridView>

 

Для доступа к базе данных используется компонент доступа к данным – OrdersDB, для выборки данных – метод OrdersDB.GetOrdersByUser

public static DataSet GetOrdersByUser(Guid userID)

{

            SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["connStr"].ConnectionString);

            …………………………………………………………

            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,ConditionName,TypePaymentName, TotalPrice FROM OrdersView

WHERE UserId = @UserId

ORDER BY OrderDate

GO

 

В файле кода web-страницы HistoryOrders.aspx.cs вызывается метод GetOrdersByUser класса OrdersDB:

MembershipUser _user = Membership.GetUser(User.Identity.Name);

DataSet ds = OrdersDB.GetOrdersByUser((Guid)_user.ProviderUserKey);

if(ds == null)

{

………………………………..

}

GridViewOrders.DataSource = ds;

GridViewOrders.DataBind();

 

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

В результате на web-страницы будет  изображена таблица, представленная на рисунке 6.

 

Рис. 6 «История заказов покупателя»

 

 

4 ПРОЕКТИРОВАНИЕ КОМПОНЕНТОВ WEB-ПРИЛОЖЕНИЯ

 

4.1 Общая структура web-приложения

 

4.1.1 Структура каталогов

 

На рисунке 7 изображена полная структура каталогов разработанного web-приложения.

 

 
Рис. 7 лист 1 «Структура каталога web-приложения»

 
Рис. 7 лист 2 «Структура каталога web-приложения»

Рис. 7 лист 3 «Структура каталога web-приложения»

 

Подкаталог AdminProtectedPages содержит web-страницы(файлы  дескрипторов .aspx и файлы кода .cs), доступные только аутентифицированным  пользователям, чьи учётные записи относятся к роли Administrator. Подробнее  о ролях рассмотрено в пункте №. 4.5.3

Назначение web-страниц подкаталога AdminProtectedPages:

  • AddProduct.aspx – добавление новых альбомов в;
  • AdminDefault.aspx – страница по умолчанию интерфейса администратор;
  • ManagementArtist.aspx – добавление, удаление и редактирование информации об;
  • ManagementGenre.aspx  - добавление, удаление и редактирование информации о;
  • AdminFAQ.aspx – просмотр и ответ на вопросы пользователей;
  • ManagementTypeProduct.aspx  - добавление, удаление и редактирование информации о;
  • Orders.aspx – просмотр заказов;
  • OrdersDetails.aspx – детали заказа, печать накладной заказа, изменение состояния выполнения заказа;
  • UpdateDeleteProduct.aspx – редактирование и удаление данных об.

 

Подкаталог ImageAlbum содержит обложки  музыкальных альбомов.

 

Подкаталог App_Code содержит файлы пользовательских классов:

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

Подкаталог App_Theme содержит файл темы оформления и css-файл. (будут рассмотрены  в пункте 4.2.3).

Подкаталог Images содержит изображения, используемые для оформления web-страниц.

Подкаталог MasterPages содержит файлы  мастер-страниц, которые будут рассмотрены  в пункте 4.2.1

Назначение web-страниц подкаталога MasterPages:

  • UserMasterPage.master – мастер-страница интерфейса покупателя;
  • AdminMasterPage.master - мастер-страница интерфейса администратора;

 

Подкаталог ProtectedPages содержит web-страницы(файлы  дескрипторов .aspx и файлы кода .cs), доступные только аутентифицированным  пользователям. Подробнее об аутентификации будет написано в пункте 4.5.2.

Назначение web-страниц подкаталога ProtectedPages:

  • HistoryOrderDetails.aspx – подробности о;
  • HistoryOrders.aspx – заказы покупателя;
  • Order.aspx – оформление заказа;
  • UserPersonalData.aspx – просмотр и редактирование личных данных покупателя, смена пароля, смена контрольного вопроса и ответа, управление подпиской;

 

Подкаталог UserControls, содержит файлы  пользовательских элементов управления. Подробнее о пользовательских элементах  управления написано в пункте 4.2.2.

Назначение пользовательских элементов  управления:

  • MenuAdmin.ascx – меню функций администратора;
  • MenuAlphabet.ascx – алфавитное меню для поиска продукции по первой букве в названии;
  • MenuGenres.ascx – панель поиска продукции по музыкальным жанрам;
  • MenuUser.ascx – навигационная панель, отображает разные ссылки в завасимости от того аутентифицирован пользователь или нет, и к какой роли принадлежит его учётная запись;
  • OrderSearch.ascx – панель поиска заказов;
  • RandomAlbum.ascx – отображает случайный альбом из каталога;
  • ShopInfo.ascx – навигационная панель;

Информация о работе Бизнес-план интренет-магазина