бесплатные рефераты

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

3. Взаимодействие с БД

3.1 Архитектура ADO.NET

На сегодняшний момент существует множество технологий доступа к данным - ODBC, DAO, ADO и многие другие. Среда.NET Framework имеет свою собственную технологию доступа к данным - ADO.NET.

ADO.NET состоит из управляемых классов, позволяющих приложениям.NET подключаться к источникам данных (обычно реляционным базам данных), выполнять команды, осуществлять выборку, обработку и хранение данных.

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

Важным элементом автономного доступа к данным является контейнер для табличных данных, который не знает о СУБД. Такой контейнер представлен в ADO.NET классом DataSet или DataTable.

Архитектуру ADO.NET можно разделить на две фундаментальные части: подключённую и автономную. Все различные классы ADO.NET можно отнести к подключённой или автономной части. Единственным исключением является класс DataAdapter. Работающий как посредник между подключённой и автономной частями.

Подключённая часть содержит классы, которым для работы нужно доступное открытое соединение, чтобы взаимодействовать с источником данных. Сюда входят классы для установки подключения к источнику данных (Connection), управления транзакциями (Transaction), выполнения команд (Command) и другие.

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

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

Рис. 4 "Общая структура ADO.NET и её место в обеспечении доступа к данным"

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

В данном пункте была рассмотрена технология доступа к данным 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-приложения"

Подкаталог 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 - навигационная панель;

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

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

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

· AddQuestion.aspx - добавление вопроса администрации магазина;

· CatalogList.aspx - отображает список альбомов в зависимости от указанных критериев поиска;

· Default.aspx - страница по;

· ErrorPage.aspx - отображается при ошибке работы с;

· FAQ.aspx - отображает вопросы покупателей и;

· InfoShop.aspx - информация по работе Интернет-магазина;

· TypePayment.aspx - информация о способах оплаты;

· Login.aspx - страница входа в Интернет-магазин (аутентификация и авторизация);

· PasswordRecovery.aspx - восстановление пароля;

· ProductDetails.aspx - отображает подробности о выбранном альбоме, добавление отзывов об альбоме;

· Registration.aspx - страница регистрации;

· Responses.aspx - отображает отзывы покупателей о выбранном альбоме;

· ShoppingCart.aspx - отображает товары, находящиеся в покупательской корзине;

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

4.1.2 Файл конфигурации web-приложения web.config

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

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

· Строка подключения к БД

<connectionStrings>

<add name= "connStr"

connectionString="Data Source=localhost; Integrated

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

providerName= "System. Data. SqlClient"/>

</connectionStrings>

· Конфигурация интерфейса MemberShip API, подробнее о котором написано в пункте 4.5.1.

<membership defaultProvider= "MyMembershipProvider">

<providers>

<add name= "MyMembershipProvider"

type= "System. Web. Security. SqlMembershipProvider"

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

applicationName="/MusicInternetShop"

enablePasswordRetrieval= "true"

enablePasswordReset= "true"

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

requiresQuestionAndAnswer= "true"

requiresUniqueEmail= "true"

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

minRequiredPasswordLength= "7"/>

</providers>

</membership>

· Конфигурация системы аутентификации, подробнее о которой написано в пункте 4.5.2

<authentication mode= "Forms">

<forms name= "CookieName"

loginUrl= "Login.aspx"

…………………….

slidingExpiration= "true"

cookieless= "AutoDetect"

protection= "All"

…………………….

path="/">

</forms>

</authentication>

· Конфигурация интерфейса Roles API, подробнее о котором написано в пункте 4.5.3.

<roleManager

defaultProvider= "MySqlProvider"

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

cookieName=".MyRoleCookie"

cookieTimeout= "20"

cookieSlidingExpiration= "true"

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

createPersistentCookie= "false">

<providers>

<add name= "MySqlProvider"

type= "System. Web. Security. SqlRoleProvider"

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

applicationName="/MusicInternetShop"/>

</providers>

</roleManager>

· Конфигурация интерфейса Profiles API, подробнее о котором написано в пункте 4.6

<profile defaultProvider= "MySqlProvider" automaticSaveEnabled= "false">

<providers>

<add name= "MySqlProvider"

type= "System. Web. Profile. SqlProfileProvider"

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

applicationName="/MusicInternetShop"/>

</providers>

<properties>

<add name= "Cart" type= "ComponentsShoppingCart. ShoppingCart" serializeAs= "Binary" allowAnonymous= "true"/>

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

<add name= "SumPurchase" type= "decimal" serializeAs= "Binary"/>

</properties>

</profile>

Также в файле web.config находятся элементы конфигурации SMTP-сервера, уровни доступа к различным подкаталогам, модель генерации html-кода. Более подробное описание каждого элемента конфигурации приведено в соответствующих пунктах пояснительной записки. Полный код файла web.config приведён в приложении 1.

Файл global.asax позволяет определять обработчики событий, реагирующие на глобальные события web-приложения, такие как начало и завершение запроса, моменты завершения аутентификации и авторизации и многие другие. При разработке дипломного проекта был определён обработчик Profile_MigrateAnonymous, позволяющий переносить товары из временной корзины в корзину покупателя, когда пользователь входит в систему или регистрируется. Подробнее об этом написано в пункте 4.6.

4.2 Компоновка и оформление webтраниц

4.2.1 Мастер-страницы

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

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

Чтобы связать страницу содержимого с необходимой мастер-страницей необходимо выполнить следующие действия:

· В директиве Page страницы содержимого указать путь к файлу мастер-страницы: MasterPageFile= "~/MasterPages/AdminMasterPage.master";

· В дискрипторе Content страницы содержимого полю ContentPlaceHolderID присвоить идентификатор элемента ContentPlaceHolder, расположенному на;

Ниже приведён текст мастер-страницы AdminMasterPage.master, для web-страниц, входящих в интерфейс администратора музыкального Интернет-магазина:

<%@ Master Language= "C#" AutoEventWireup= "true" CodeFile= "AdminMasterPage.master.cs"

Inherits= "MasterPages_AdminMasterPage"%>

<%@ Register Src="../UserControls/MenuAdmin.ascx" TagName= "MenuAdmin" TagPrefix= "uc"%>

<! DOCTYPE html PUBLIC "- //W3C //DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

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

<head runat= "server">

<title>Untitled Page</title>

</head>

<body>

<form id= "form1" runat= "server" style= "text-align: center;">

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

<tr>

<td colspan= "2" style= "vertical-align: middle; text-align: center; height: 150px;">

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

<div class= "HeaderPageFont2">Интерфейс администратора</div>

</td>

</tr>

<tr>

<td style= "width: 150px; vertical-align: top;">

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

</td>

<td style= "vertical-align: top; text-align: center; height: 700px; width: 850px;" class= "PageBackColor">

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

</asp: ContentPlaceHolder>

</td>

</tr>

<tr>

<td colspan= "2">

<span>copyright Луцкин Д.В. гр. №4231</span>

</td>

</tr>

………

</form>

</body>

</html>

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

<%@ MasterPageFile= "~/MasterPages/AdminMasterPage.master" …%>

<asp: Content ID= "Content1" ContentPlaceHolderID= "ContentPlaceHolder1" Runat= "Server">

Содержимое соответствующей web-страницы.

</asp: Content>

На рисунках 8 и 9 представлена компоновка мастер-страниц AdminMasterPage.master и UserMasterPage.master, для web-страниц, входящих в интерфейс покупателя и администратора, соответственно.

4.2.2 Пользовательские элементы управления

Ещё одним средством стандартизации компоновки web-страниц ASP.NET, использованным при разработке дипломного проекта, являются пользовательские элементы управления (UserControl). Пользовательский элемент управления - это небольшая часть страницы, которая может содержать статический HTML-код и серверные элементы управления ASP.NET. Один и тот же пользовательский элемент управления может использоваться на множестве web-страниц. Применение пользовательских элементов управления значительно облегчает процесс отладки и модификации, а также позволяет более гибко использовать механизм кэширования. Подробнее о кэшировании пользовательских элементов управления описано в пункте 5.2.1.

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

Рис. 8 "Компоновка мастер-страницы AdminMasterPage.master"

131

Рис. 9 "Компоновка мастер-страницы UserMasterPage.master"

<%@ Register Src="../UserControls/MenuGenres.ascx" TagName= "MenuGenres" TagPrefix= "uc"%>, где

· Src - путь к исходному файлу;

· TagPrefix - префикс дескриптора;

· TagName - имя дескриптора;

После этого элемент управления можно использовать на web-странице:

<uc: MenuGenres ID= "MenuGenres1" runat= "server" />

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

4.2.3 Каскадные таблицы стилей и темы оформления

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

Каскадные таблицы стилей состоят из правил. Каждое из правил содержит набор атрибутов и их значений, определяющих формат элемента управления. Имя каждого правила состоит из двух частей. Часть правила, находящаяся слева от точки, указывает дескриптор, к которому оно будет применяться. Если перед точкой ничего не стоит, то правило может применяться к любому дескриптору. Справа от точки указывается уникальное имя, которое идентифицирует правило, оно называется именем класса CSS.

Например, правило HeaderSpanFont определяет шрифт Times New Roman, кегель 14, цвет - красный.

HeaderSpanFont

{

font-family: Times New Roman;

font-size: 14pt;

color: Red;

}

Это правило можно применить для форматирования текста элемента управления ASP.NET или HTML-дескриптора:

<div class=" HeaderSpanFont">Текст </div>

<asp: Label ID=" Label1" runat=" server" Text="" CssClass=""></asp: Label>

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

В отличие от каскадных таблиц стилей темы основаны на элементах управления, а не на HTML-дескрипторах. Ниже приведён фрагмент файла темы SkinFile.skin, в котором определяется внешний вид элемента управления GridView:

<asp: GridView runat= "server" SkinID= "GridViewStyle" BorderWidth= "1" BorderColor= "#dbdbc6">

<HeaderStyle BackColor= "#A52A2A" Font-Names= "Times New Roman" Font-Size= "12" ForeColor= "White" />

<RowStyle BackColor= "#F5F5DC" Font-Names= "Times New Roman" Font-Size= "12" HorizontalAlign= "Center" />

<AlternatingRowStyle BackColor= "#dbdbc6" Font-Names= "Times New Roman" Font-Size= "12" HorizontalAlign= "Center" />

<FooterStyle BackColor= "Aqua" HorizontalAlign= "Left" Font-Names= "Times New Roman" Font-Size= "10" Font-Bold= "true" />

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

<PagerStyle HorizontalAlign= "Center" Font-Names= "Times New Roman" Font-Size= "12" BackColor= "#A52A2A" Font-Bold= "true" ForeColor= "White" />

</asp: GridView>

У элемента управления может быть определено несколько вариантов оформления, для этого каждому варианту необходимо задать уникальное имя с помощью атрибута SkinID.

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

4.3 Элементы управления проверкой достоверности

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

Ниже приведён пример использования элементов управления проверкой достоверности при разработке дипломного проекта:

<asp: TextBox ID= "Email" runat= "server" MaxLength= "50"></asp: TextBox> <asp: RequiredFieldValidator ID= "EmailRequired" runat= "server" ControlToValidate= "Email" ErrorMessage= "Вы забыли указать E-mail" ToolTip= "E-mail is required."

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

<asp: RegularExpressionValidator ID= "EmailRegular" runat= "server" ValidationGroup= "CreateUserWizard1" ErrorMessage= "Недопустимый формат E-mail" ControlToValidate= "Email" ValidationExpression="\S+@\S+\.\S+">*</asp: RegularExpressionValidator>

<asp: ValidationSummary HeaderText= "Неправильно заполненные поля:" ID= "ValidationSummary1" Font-Size= "10" DisplayMode= "BulletList" ValidationGroup= "CreateUserWizard1" runat= "server" />

RequiredFieldValidator проверяет, чтобы пользователь не забыл ввести адрес электронной почты.

RegularExpressionValidator проверяет, чтобы введённый адрес соответствовал определённому формату, который определён с помощью регулярного выражения.

ValidationSummary отображает итоговую информацию об ошибках.

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

4.4 Класс webтраницы с возможностью отслеживания обновления

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

Страницы: 1, 2, 3, 4


© 2010 РЕФЕРАТЫ