Для примера рассмотрим процесс автоматического разбиения на страницы при отображении каталога альбомов, отсортированных по жанру.
Необходимо настроить элемент управления источником данных на автоматическое кэширование:
<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 руб., что свидетельствует об экономической целесообразности проекта.