Кафедра экономической информатики. Сетевая экономика

Save this PDF as:
 WORD  PNG  TXT  JPG

Размер: px
Начинать показ со страницы:

Download "Кафедра экономической информатики. Сетевая экономика"

Транскрипт

1 > Сетевая >кон о м и ка '07 т Кафедра экономической информатики Т.М. Дмитриева Сетевая экономика Рекомендовано редакционно - издательским советом университета в качестве методических указаний для студентов специальности «Прикладная информатика в экономике» МОСКВА-2007

2 УДК Д53 Дмитриева Т.М. Сетевая экономика: Методические указания для практических занятий по дисциплине «Сетевая экономика». М.: МИИТ, с. Излагаются необходимые для практической работы сведения о Microsoft Visual Studio 2005 технологии ASP. NET 2.0. Приводятся конкретные примеры и задания для разработки Интернет - магазина. Для студентов специальности «Прикладная информатика в экономике», изучающих дисциплину «Сетевая экономика». Московский государственный университет путей сообщения (МИИТ),2007 Подписано в печать- Л * 06.6К Формат 64x84/16 Тираж 100 Усл.-печ.л. 1,5 Заказ, Изд , Москва, ул.оразцова,15. Типография МИИТа

3 .3 I.Создание Web-сайта в среде MS Visual Studio 2005 Web-сайт можно создать, выбрав пункт меню File, New, а затем Web Site. Далее будет предложено выбрать тип сайта. При выборе пункта Web Site генерируется минимальное число файлов, необходимых для создания Web-сайта (будут созданы страница default.aspx и пустой каталог Data). При выборе пункта Internet Site формируется стартовый набор ASP.NET с некоторыми встроенными стандартными возможностями. Выбрать- Web Site. Затем указать папку. Для редактирования Webстраницы можно выбрать одно из трех представлений Design, Source, Server Code. Режим Design показывает HTML- страницу, позволяя выбирать и редактировать управляющие и статические элементы. Режим Source показывает разметку HTML вместе со встроенным кодом. Режим Server Code показывает только встроенный код, если он есть. На вкладке Standard Templetes в меню выбирается шаблон элемента, добавляемого к сайту: Auto Form. В Visual Studio 2005 все файлы, найденные в подкаталогах приложения, неявно становятся частью сайта. В таблице 1 перечислены некоторые специальные папки, входящие в структуру приложения ASP.NET 2.0 Таблица 1. Специальные папки в приложениях ASP.NET Описание Папка Bin Содержит все предварительно скомпилированные сборки, необходимые приложению.

4 4 Code Resources Themes Содержит файлы с исходными классами (,vb или xs), которые исполняющая среда ASP.NET динамически компилирует в сборки. Содержит файлы ресурсов (jpg,.resx,.xsd), которые исполняющая среда ASP.NET динамически компилирует в ресурсные сборки. Содержит определение тем, поддерживаемых приложением. Содержимое этой папки компилируется в динамическую сборку. II.Проектирование Web-форм и добавление к ним программного кода Заполнение страницы Web Forms осуществляется перетаскиванием управляющих элементов из окна инструментария на форму. и конфигурированием их свойств, Для подключения серверного кода к различным элементам на странице.aspx можно выполнить, например, такое действие. Поместить на форму кнопку, дважды ее щелкнуть, и, происходит переключение в режим Server Code, создается пустой обработчик для используемого по умолчанию события элемента. Для кнопки это событие Click: Void Send _ Click { object sender, EventArgs e) { } Разметка HTML модифицируется автоматически добавляется новый атрибут onclick: < asp: button runat = "server" id=send" text = "Send" onclick = "Send click" />

5 .5 Присоединение событий выполняется декларативно на странице. aspx. При первой компиляции страницы ASP.NET выполняет динамическое присоединение, и атрибут onclick преобразуется в код: // VS.NET Send.Click + = neweventhandler(this.send Click); Для тестирования Web-страницы можно нажать <F5>. Если появилось сообщение об отсутствии файла Web.config можно позволить сгенерировать системе этот файл (он необходим для отладки кода). Если создавался собственный файл Web config, нужно убедиться, что в нем есть строка: ccompilation debugs*'true" / > Для запуска страницы без отладки щелкните Run. Следует понимать, что встроенный Web-сервер - это небольшое приложение. Он не может продублировать всю функциональность полноценного Web-сервера IIS. Б итоге то, что работает под управлением локального Web-сервера, может отказать при переходе на IIS. Проблема может возникнуть при обращении к файлам, неявляющимся Web-страницами, файлам, расположенным на других машинах, реестру Windows или локальной или удаленной базе данных. Таким образом, локальный Web-сервер для проверки страниц иногда не обеспечивает реальный тестовый сценарий. III.Элементы управления, связываемые с данными. Элемент управления, связываемый с данными это - элемент, который связывается с источником данных и генерирует свой пользовательский интерфейс на основе его содержимого. Диаграмма классов элементов управления, связываемых с данными, представлена на рис.1.

6 6 Base Data Bound Control Data Bound Control Hierarchical Data Bound Control Ad Rotator List L Control Composite Data Bound Control Tree View _Bulleted List Check Box List Drop Down List List Box Radio Button List Details View Form View Grid View Menu Рис.1. Диаграмма классов элементов управления, связываемых с данными

7 7 Data Bound Control - это базовый класс, определяющий как связываемый с данными элемент связывается с набором данных или с объектом источника данных. Для работы с данными этот класс содержит следующие свойства: -DataMember - выбирает список данных, с которыми должен быть связан элемент управления; -DataSource - определяет источник данных, с которым выполняется связывание; -DataSource ID - идентификатор объекта источника данных, используемого для извлечения данных. DataBind - метод класса. Страница и элементы управления генерируют его, когда им нужно получить данные из источника данных. 3.1.Простые элементы управления AdRotator - отображает на Web-странице рекламный баннер, изменяющийся при обновлении страницы. Рекламную информацию этот элемент извлекает из отдельного XML - файла. Для каждого рекламного баннера в XML - файле указывается путь к изображению, адрес загружаемой страницы и частота показа рекламы. Этот элемент поддерживает не только рекламные баннеры, но и всплывающие рекламные объявления. Для учета посещаемости страниц элемент поддерживает счетчики, обновляемые при щелчке баннера. Ниже показано, как связать AdRotator с БД Microsoft Access: <asp: access datasource runat="server" id="myaccesssource" Data File="data/advert.mdb" SelectCommand="SELECT * FORM AdTable"/ > < asp: adrotator id="adrotatorl" runat="server" ImageUrlField="Image" NavigateUrlField="Url" AlternateTextField="AltText" PataSourceID="MyAccessSoure" / >

8 8 Bulleted List для создания маркированного списка. Позволяет указать отдельные пункты списка путем рпределения объекта ListItem для каждого желаемого пункта: <asp: bulletedlist runat="server" bulletimageurl="images/bullet.gif" bulletstyle="customimage" > <asp: listitem > One </ asp:listitem> <asp: listitem >Two </ asp:listitem> <asp: listitem >Three </ asp:listitem> </ asp: bulletedlist> Обычно маркированный список не генерируется статически, а заполняется при помощи средств связывания с данными: < asp: SqlDataSource runat="server" id="mysource" ConnectionString="SERVER=; DATABASE=northwind; UID=;" DataSourceMode="DataSet" SelectCommand="SELECT customerid, companyname FROM customers Where country='италия' / > <asp: BulletdList runat="server" id="custlist" BulletImageUrl="images/bullet.gif" BulletStyle="CustomImage" DisplayMode="LinkButton" DataSourceID="MySource" DataTextField="companyname" /> Маркированный список связывается с источником данных MS SQLServer и получает объект DataTable, возвращаемый заданным запросом. Свойство DataTextField позволяет выбрать отображаемый столбец, a DisplayMode задает режим отображения - обычный текст, кнопки- ссылки или гиперссылки. Свойство Index класса BulletedListEventArgs содержит индекс щелкнутого пункта списка, отсчитываемый от 0. Если нужно изменить стиль маркера, можно выбрать один из встроенных стилей с помощью свойства BulletStyle.

9 3.2,Иерархические элементы управления. 9 Ниже перечисляются иерархические элементы управления. Menu- меню. Допускает связывание с любым источником данных и поддерживает ряд готовых пунктов для простейших случаев. Состоит из пунктов меню, хранимых в наборе. Пример когда меню: < asp: Menu ID ="Menul" Runat ="server"> <Items> <asp: Menultem Text ="Прочитать об этой книге" /> <asp: Menultem Text ="Просмотреть" /> <asp: Menultem Text ="Купить книгу" /> <asp: Menultem Text ="B корзину" /> < / asp: Menultem> <asp: Menultem Text ="Просмотреть" /> <asp: Menultem Text ="Выбрать" /> < / Items> < / asp: Menu> GridView - отображает содержимое источника данных с формой, похожей на сетку таблицы. Элемент поддерживает большое число свойств. Свойства поведения элемента управления GridView представлены в Таблице 1. Свойства поведения элемента GridView Таблица 1 Свойство AllowPaging Описание Определяет, поддерживает ли элемент управления разбиение на страницы. AllowSorting Определяет, поддерживает ли элемент управления сортировку.

10 AllowGenerate Columns AutoGenerate DeleteButton Определяет, создаются ли столбцы для каждого поля источника данных автоматически.(ц*ие-по умолч.) Определяет, включает ли элемент управления столбец кнопок, позволяющих пользователям удалять запись, соответствующую щелкнутой строке. AutoGenerate EditButton Определяет, включает ли элемент управления столбец кнопок, позволяющих пользователям редактировать запись, соответствующую щелкнутой строке. AutoGenerate SelectButton Определяет, включает ли элемент управления столбец кнопок, позволяющих пользователям выбирать запись, соответствующую щелкнутой строке. EnablePaging AndSorting- Callbacks Определяет, следует ки выполнять разбиение на страницы и сортировку с использованием функций обратных вызовов сервера из сценариев, (по умолч.- отключена). SortDirection Это свойство, допускающее только чтение, позволяет получить текущий порядок сортировки. SortExpression Use Accessible Header Аналогично. Позволяет получить текущее выражение сортировки. Определяет, следует ки генерировать для заголовков столбцов тэги <ТН> вместо генерируемых по умолч. тэгов <TD>.

11 Свойства SortDirection и SortExpression определяют порядок и выражение сортировки столбца, от которого в текущий момент зависит порядок строк. Механизм сортировки включается / выключается посредством свойства AllowSorting. В таблице 2 представлены свойства стиля элемента GridView. 11 Свойства стиля элемента GridView Стиль Описание Таблица 2 AlternatingRowStyle DetailLinkStyle EditRowStyle EmptyDataRowStyle Определяет свойства стиля для каждой второй строки таблицы. Определяет свойства стиля для ссылок, отображаемых в детальном представлении элемента управления, когда он обрабатывается на мобильном устройстве. Определяет свойства стиля для редактируемой строки. Определяет свойства стиля для строки EmptyData, отображаемой, когда GridView связывается с пустым источником данных. FooterStyle HeaderStyle PagerStyie Определяет свойства стиля для нижнего колонтитула GridView. Определяет свойства стиля для заголовка GridView. Определяет свойства стиля для блока выбора страниц GridView.

12 12 RowStyle Определяет свойства стиля для строк, отображаемых в таблице. SelectedRowStyle Summary Т itlesty le Определяет свойства стиля для строки, выбранной в данный момент. Определяет свойства стиля для заголовка, отображаемого в резюмирующем представлении элемента управления, когда он обрабатывается на мобильном устройстве. В таблицез представлены свойства вида элем ента управления GridView. Свойства вида элемента GridView Таблица 3 Свойство BacklmageURL CellPadding CeliSpacing GridLines HorizontalAlign Описание Определяет URL фонового изображения. Определяет расстояние в пикселях между содержимым ячейки и границей. Определяет расстояние (в пикселях) между ячейками таблицы. Определяет стиль линий сетки. Определяет горизонтальное выравнивание элемента управления на странице.

13 13 EmptyDataText PagerSettings ShowFooter ShowHeader Определяет текст, отображаемый элементом управления, когда он связан с пустым источником данных. Получает ссылку на объект PagerSettings, позволяющий задать свойства для кнопок блока выбора страниц. Определяет, отображается ли строка нижнего колонтитула. Определяет, отображается ли строка-заголовок. В таблице 4 представлены свойства состояния элемента управления GridView. Свойства состояния элемента GridView Свойство Описание BottomPagerRow Column DataKeyNames DataKeys Editlndex FooterRow Таблица 4 Возвращает объект GridViewRow, предоставляющий нижний блок выбора страниц. Получает набор объектов, представляющих столбцы сетки: если столбцы генерируются автоматически, этот набор всегда пуст. Получает и задаёт массив, содержащий имена полей первичных ключей для элементов, отображаемых в данный момент. Получает набор объектов DataKey, представляющих значения полей первичных ключей, заданных в DataKeyNames для записей, которые отображаются в данный момент Получает и задаёт отсчитываемый от 0 индекс, определяющий строку, которая отображается в данный момент в режиме редактирования. Возвращает объект GridViewRow, представляющий нижний колонтитул сетки.

14 14 HeaderRow Возвращает объект GridViewRow, представляющий заголовок сетки. PageCount Pagelndex PageS ize Rows SelectedDataKey Selectedlndex SelectedRow SelectedVaiue TopPaperRow Получает число страниц, необходимых для отображения записей источника данных. Получает и задает отсчитываемый от 0 индекс, определяющий отображаемую в текущий момент страницу данных. Определяет число записей, отображаемых на странице. Получает набор объектов GridViewRow, которые представляют строки данных, отображаемые в текущий момент элементом управления. Возвращает объект DataKey для записи, выбранной в текущий момент. Получает и задаёт отсчитываемый от 0 индекс, определяющий строку, выбранную в текущий момент. Возвращает объект GridViewRow, представляющий строку, выбранную в текущий момент. Возвращает явное значение ключа, хранимое в объекте DataKey Возвращает объект GridViewRow, представляющий верхний блок выбора страниц. Элемент GridView получает свои данные посредством свойства D atasourceld. События элемента управления GridView Помимо метода DataBind элемент управления GridView имеет и другие методы. Однако чаще вызвать их не нужно. При связывании элемента источника данных со связываемым с данными элементом управления, процесс связывания начинается неявно.

15 15 В жизненном цикле элемента управления ключевым операциям соответствуют две пары событий: одно генерируется до операции, второе - сразу после её завершения. События, генерируемые элементом GridView, представлены в табл. 5. Таблица 5 События, генерируемые элементом GridView Событие PagelndexChanging PagelndexChanged RowCancelingEdit RowCommand Описание Оба события генерируются при щелчке одной из кнопок блока выбора страниц. До и после операции изменения страницы соответственно Генерируется при щелчке кнопки Сапсектроки в режиме редактирования, но до выхода из режима редактирования строки. Г енерируется при щелчке кнопки. RowCreated Г енерируется при создании строки. RowDataBound RowDeleting Row Deleted RowEditing Генерируется при связывании строки данных с данными Оба события генерируются при щелчке кнопки Delete строки. Они генерируются до и после удаления строки соответственно. Генерируется при щелчке кнопки Edit, но до того, как элемент управления входит в режим редактирования.

16 16 RowUpdating RowUpdated SelectedlndexChanging SelectedlndexChanged Sorting Sorted Оба события генерируются при щелчке кнопки Update строки. Они генерируются до и после обновления строки. Оба события генерируются при щелчке кнопки Select строки. Они генерируются до и после обработки операции выбора. Оба события генерируются при щелчке гиперссылки сортировки столбца. Они генерируются до и после обработки операции сортировки. Элементы GridView в действии 1)Простое связывание с данными Указание для свойства DataSourcelD источника данных запускает процесс связывания. Не нужно писать никакого кода: он генерируется автоматически. 2) Работа с пустым источником данных Если элемент связан с пустым источником данных и задан шаблон EmptyDateTample, отображаемые результаты имеют более дружественный вид. 3) Отображение данных Чаще всего - отображение результатов запроса БД в виде таблицы. Необходимо просто настроить объект источника данных, указав строку соединения и запрос и назначить свойству DataSourcelD индентификатор.источника данных. Элемент GridView поддерживает разнообразные типы столбцов, в том числе столбцы гиперссылок, изображений и флажков. В таблице б представлены типы столбцов, поддерживаемые элементом GridView.

17 27 Типы столбцов GridView. Типы Описание Таблица 6 BoundField ButtonFeild CheckBoxField CommandField HyperLinkField ImageField Тип столбца по умолчанию. Отображает значение поля как обычный текст. Отображает значение поля как командную кнопку. Отображает значение поля как флажок. Улучшенная версия типа BottonField. Представляет специальные команды Edit, Delete, Select. Отображает значение поля как гиперссылку. Отображает значение поля как рисунок. Рисунок можно извлекать из БД. TemplateFieid Используется для соответственных полей столбцов. Основные свойства, общие для столбцов всех типов представлены в Таблице 7. Таблица 7 Общие свойства столбцов элемента GridView Свойства Описание FooterStyle FooterText HeaderlmageURL HeaderStyle Получает объект стиля для нижнего колонтитула столбца. Получает и задаёт текст нижнего колонтитула столбца. Получает и задаёт URL рисунка, отображаемого в заголовке таблицы. Получает объект стиля для заголовка столбца.

18 HeaderText ItemStyle ShowHeader SortExpression 18 Получает и задает текст заголовка столбца. Получает объект стиля для ячеек разных столбцов. Определяет, отображается ли заголовок столбца. Получает и задаёт выражение, используемое для сортировки содержимого GridView при щелчке заголовка столбца. Обычно этому свойству присваивают имя связанного поля данных. Для реализации отбора товаров из представленного списка в корзину (рис.2) может быть автоматически сгенерирован, например следующий код: <columns> <asp: boundfield datafield="productname" headertext = "Товар" /> <asp:checkboxfield datafield="discontinued" headertext="выбор" /> <asp:buttonfield buttontype="button" text ="Купить" /> <asp:hyperlinkfield бехб="информация" datanavigateurlfields="productid,productname" datanavigateurlformatstring="/moreinfо.aspx? id= (0}& name={l}" /> </ columns>

19 i 9 Товар Выбор Товар 1 [Купить Информация Товар 2 О {Купить Информация Элемент FricMew со столбцами разных типоа. F h c.2 Название товаров отображаются с использованием объекта BoundField. В столбце Выбор наглядно представлены булевы значения. Столбец кнопок служит для добавления товаров в корзину, а гиперссылки позволяют загрузить страницы с более»подробной информацией о конкретных товарах. В примере в столбце кнопок для всех элементов данных отображается фиксированный текст, присвоенный свойству Text класса ButtonField. Чтобы связать текст кнопки с конкретным полем текущего элемента данных, нужно присвоить имя этого элемента свойству DataTextField. Этот же принцип относится и к заголовку гиперссылок, отображаемых в столбце гиперссылок. Адрес URL можно задать двумя способами: путём непосредственного связывания с полем источника данных или посредством жёсткого кодирования URL и использования конфигурируемой строки запроса. Непосредственное связывание выбирают, если URL хранится в одном из полей источника данных. В этом случае нужно присвоить имя нужного столбца свойству DataNavigatUrlFields. Сортировка данных. Если не требуется усовершенствованных возможностей, реализация сортировки вообще не требует написания кода.

20 20 4) Редактирования данных С помощью элемента GridView можно обновлять источник данных. GriedView может выполнять эту операцию автоматически. Он может выполнять редактирование элемента «на месте», для чего нужно установить булево свойство AutoGenerateEditButton в true. В этом случае GridView отображает дополнительный столбец. Удаление отображаемых записей не сильно отличается от их обновления. Для разрешения удаления используется свойство AutoGenerateDeieteButton. Если оно установлено в true, элемент GridView отображает столбец кнопок, которые при щелчке вызывают команду удаления строки источника данных. IV.Статистика сайта Подсчёт щелчков серверных элементов Встроенная поддержка счётчиков реализована в элементах управления AdRotator, HyperLink, Button, ImageButton, LinkButton, PhoneLink, ImageMap. По умолчанию сервис статистики сайта запрещён, и для его включения нужно установить в true булево свойство CountClick. Отслеживание просмотров страниц Для включения статистики страницы нужно настроить один из файлов web.config. В частности, нужно установить атрибут enabled в разделе <PageCounters>. По умолчанию статистика запрещена. V.Применение аутентификации на основе форм Настройка приложенрря ASP.NET для использования Forms - аутентификации выполняется с помощью редактирования корневого файла web.config. Нужно ввести следующий код: <Configuration> <system.web> <authenticationmode="forms"> <forms loginurl= "login.apx"/>

21 21 </'authentication </system.web> </configuration> Фрагмент кода, представленный ниже, блокирует доступ анонимных пользователей (обозначенных символом?): <authorization> <deny users="?"/> </authorization> Все заблокированные пользователи перенаправляются на страницу входа, где их просят ввести учётные данные. Типичный файл web.config защищенного приложения выглядит подобно следующему фрагменту: <configuration> <system.web> Authentication mode ="Forms" > <forms name=".aspxauth" loginurl= "login.aspx" protection= "ALL"/> </authentications <authorization> <beny users = "?"/> </authorizatic-n> </system.web> </configuration> В разделе <authorization> запрещается доступ анонимным пользователям. Для ввода удостоверений все пользователи перенаправляются на определенную страницу входа. Эта страница отвечает за аутентификацию пользователя и создание соответствующего аунтентификатора. Аутентификатор шифруется и помещается в cookie со стандартным именем. Форма содержит предложение зарегистрироваться; два поля для ввода UserlD и Password и кнопку для подтверждения регистрации. Код обработки события, возникающего при нажатии кнопки формы: Void logon_ Click (object sender, E VentArgs e)

22 Bool bauthenticated= false; String user=username.text; String pswd=password,text; j Нестандартный механизм аутентификации. bauthenticated = ValidateUser (user, pswd); if (bauthenticated) FormsAuthentication.RedirectFormLoginPage (user,false); Else errormsg.text= "Sorry, yours seems not to be a valid account"; } Bool ValidateUser(String user, string pswd) { TODO: :выполнить операции Return true; Функция, реализующая нестандартную аутентификацию, принимает удостоверение пользователя и сверяет его с содержимым БД SQL Server. Функция ValidateUser возвращает логическое значение, на основании которого код либо показывает сообщение об ошибке, либо перенаправляет браузер на страницу, запрошенную первоначально. Задание для создания элементов интернет-магазина 1. Спроектировать Интернет-мазазин. 2. Создать-Web сайт для Интернет-магазина. 3. Разработать формы для Интернет-магазина. Обязательными являются: Домашняя страница (на ней должны быть указаны названия магазина, логотип, меню с системой ссылок на остальные страницы); Дополнительные страницы, на которых содержится информационный раздел, обязательно включающий в себя: - информацию о фирме;

23 23 - информацию о порядке выбора товара; - информацию о порядке оплаты; - информацию о доставке. На Web-сайте должны быть: Электронный каталог товаров и услуг; Прайс-лист; Форма для заказа товаров; Информация о способах оплаты; Форма для запроса дополнительной информации; Реквизиты фирмы: почтовый адрес, телефон, факс, адрес электронной почты; Форма для регистрации посетителя (гостевая книга). 4. По желанию, дополнительно разработать форму с информацией о новинках.

24 24 С О Д Е Р Ж А Н И Е 1.Создание Web-сайта в среде MS Visual Studio II.Проектирование Web-форм и добавление к ним программного кода XII. Элементы управления, связываемые с данными Простые элементы управления......, Иерархические элементы управления... 9 IV. Статистика сайта V.Применение аутентификации на основе форм