Смекни!
smekni.com

Интернет-магазин по продаже музыкальных CD и DVD дисков (стр. 13 из 16)

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

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

<asp: ObjectDataSource ID= "ObjectDataSource1" runat= "server"

TypeName= "ComponentsDB. CatalogDB" SelectCountMethod= "GetCountByGenre" SelectMethod= "GetPageProductsByGenre" EnablePaging= "true" OnSelected= "ObjectDataSource_Selected" EnableCaching= "true" CacheDuration= "360">

<SelectParameters>

<asp: QueryStringParameter Name= "GenreID" QueryStringField= "GenreID"

Type= "Int32" />

</SelectParameters>

</asp: ObjectDataSource>

где

EnablePading = "true" – включает разбиение на страницы в источнике данных.

SelectCountMethod = "GetCountByGenre" – метод для подсчёта общего кол-ва строк в таблице. Данный метод необходим, для того чтобы GridView мог создать корректное количество ссылок страниц на панели навигации.

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

Метод GetCountByGenre:

public static int GetCountByGenre (int GenreID)

{

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

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

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

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

cmd. Parameters ["GenreID"].Value = GenreID;

int count=-1;

try

{

conn. Open();

count = (int) cmd. ExecuteScalar();

}

……………

{

conn. Close();

}

finally

{

conn. Close();

}

return count;

}

Хранимаяпроцедура GetCountByGenre

CREATE PROCEDURE GetCountByGenre (@GenreID INT)

AS

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

WHERE GenreID = @GenreID

GO

Метод GetPageProductsByGenre вызываетхранимуюпроцедуру GetPageProductsByGenre, котораявозвращаетданныедлятекущейстраницы GridView.

Метод GetPageProductsByGenre:

public static DataSet GetPageProductsByGenre (int startRowIndex, int maximumRows, int GenreID)

{

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

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

cmd. CommandType = CommandType. StoredProcedure;

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

cmd. Parameters ["Start"].Value = startRowIndex;

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

cmd. Parameters ["Count"].Value = maximumRows;

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

cmd. Parameters ["GenreID"].Value = GenreID;

DataSet ds = new DataSet();

SqlDataAdapter da = new SqlDataAdapter();

………………………….

try

{

conn. Open();

da. Fill(ds);

}

catch (SqlException)

{

conn. Close();

return null;

}

finally

{

conn. Close();

}

return ds;

}

Хранимаяпроцедура GetPageProductsByGenre:

CREATE PROCEDURE GetPageProductsByGenre (@Start INT, @Count INT, @GenreID INT)

AS

CREATE TABLE #TempProductsList

(

……………….

ProductID INT,

ArtistName NVARCHAR(50),

ArtistID INT,

……………………….

UnitCost MONEY,

Presence BIT

)

INSERT INTO #TempProductsList

(ProductID, ArtistName, ArtistID, AlbumName, UnitCost, Presence)

SELECT ProductID, ArtistName, Catalogue. ArtistID, AlbumName, UnitCost, Presence

………………………….

WHERE GenreID = @GenreID AND Catalogue. ArtistID = Artists. ArtistID

ORDER BY ArtistName

DECLARE @FromNum INT

DECLARE @ToNum INT

SET @FromNum = @Start

……………………………

SELECT ProductID, ArtistName, ArtistID, AlbumName, UnitCost, Presence FROM #TempProductsList

WHERE Num >= @FromNum AND Num <= @ToNum

GO

В данном пункте был рассмотрен метод настраиваемогого разбиения на страницы с использованием GridView и ObjectDataSource, который позволяет выбирать из базы данные только конкретной страницы, а не целиком для всей таблицы. Тем самым, снижая объём данных, выбираемых из базы данных.


6. Развёртывание web-приложения и модели компиляции

6.1 Развёртывание web-приложения

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

· Прежде всего, нужно убедиться, что на целевой ЭВМ установлено необходимое ПО (ОС WindowsXPProfessional, Windows 2000 Server или WindowsServer 2003, IIS 5.0 или 6.0 в зависимости от ОС.NETFramework 2.0, СУБД SQLServer 2000). Если какой-то компонент отсутствует, то его необходимо установить.

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

· Необходимо скопировать структуру каталога приложения и его файлы на целевой сервер.

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

· Установить права учётной записи Windows для пользователя рабочего процесса ASP.NET на доступ к каталогам приложения. В IIS 5.0 рабочий процесс называется aspnet_wp.exe и по умолчанию работает от имени учётной записи ASP.NETMachineAccount, в IIS 6.0 – w3wp.exe, учётная запись – NetworkService. На корневой каталог приложения необходимо дать право на чтение, а на папку AlbumImage дополнительно установить права на запись и изменение. Это можно сделать на вкладке "Безопасность" в свойствах папки.

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

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

Таким образом, для развёртывания web-приложения "Музыкальный Интернет-магазин" необходимо скопировать каталог с приложением на целевой сервер, сконфигурировать виртуальный каталог и задать необходимые права учётной записи ASP.NET, а также создать и сконфигурировать базу данных.

6.2 Модели компиляции

В предыдущем разделе был подробно описан процесс развёртывания web-приложения. В связи с этим необходимо упомянуть ещё один аспект – модели компиляции. Web-приложение всегда выполняется в виде скомпилированной версии, что позволяет повысить производительность. При развёртывании мы можем выбрать, где именно будет происходить компиляция.

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

Существует также возможность развёртывать web-приложение уже в скомпилированном виде, например, если необходимо скрыть доступ к исходным кодам. Эта модель получила название предварительной компиляции.

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


7. Разработка бизнес-плана

7.1 Резюме

Целью дипломного проекта является создание программного продукта под общим названием "Музыкальный Интернет-магазин". Данный продукт предназначен для организации работы магазина по продаже музыкальной продукции, осуществляющую свою деятельность только в сети Интернет или использующий её в качестве дополнительного канала сбыта продукции.

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

В ходе оценки экономической эффективности инвестиционного проекта с помощью критерия NPV (чистая приведённая стоимость), было установлено, что значение NPV выходит на положительную величину уже с первого года реализации, а за весь жизненный цикл проекта, который составляет 2 года, значение NPV составит 082512 руб., что свидетельствует об экономической целесообразности проекта.