Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Краткие итоги






Visual Studio 2005 является универсальным инструментом проектирования и создания законченных приложений для платформы Windows. Он обладает целым рядом возможностей визуального построения интерфейса программы, а также элементов программирования. Visual Studio 2005 содержит в своем составе редактор, предназначенный для разработки Web-приложений, а также встроенный Web-сервер.

Процесс разработки Web-приложения с помощью Visual Studio 2005 напоминает процесс создания обычного приложения Windows с использованием стандартных принципов быстрой разработки приложений. Элементы интерфейса могут размещаться на форме с помощью их перетаскивания из панели Toolbox в область формы. Элементы ASP.NET, размещенные на форме, помечаются тегом asp. Большинство интерфейсных элементов управления способны генерировать события. Обработчик события представляет собой программную процедуру, генерируется в программной части и может быть написан на одном из языков платформы.NET.

В процессе разработки Web-приложения возможно использование как внешнего Web-сервера IIS, на котором может быть размещен проект, так и локального Web-сервера, встроенного в среду Visual Studio 2005.

Visual Studio 2005 имеет также развитые средства отладки приложений, которые значительно облегчают процесс поиска и исправления ошибок, содержащихся в исходном коде программы.

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

 

 

 

 

 
3: Основы Web-программирования с использованием ASP.NET: Рассматриваются вопросы формирования отклика сервера и структура HTML-файла, получаемого при этом, а также вопросы вывода информации в окне браузера клиента и особенности этого процесса. Приводится ряд примеров, демонстрирующих возможности организации ввода клиентом информации и передачи ее на сервер для дальнейшей обработки Web-приложением. Рассматриваются типичные ошибки, возникающие в процессе работы с исходным кодом Web-приложения, пути их обнаружения и исправления. Изучаются возможности динамического создания элементов управления в Web-приложении и добавления их на страницу, создания обработчиков событий для них. Изучается структура Web-приложения и таких ее составляющих, как класс Page, коллекция ViewState, объекты Session и Application. Рассматриваются принципы работы с файлами cookies.
Цель: изучение принципов создания Web-приложений с использованием ASP.NET, рассмотрение основ формирования HTML-кода страницы в процессе выполнения Web-приложения, изучение принципов вывода информации в окне браузера клиента, использования динамических элементов управления, а также способов передачи параметров между обратными отсылками данных клиента на сервер. Ранее, в был приведен пример создания простого Web-приложения, содержащего кнопку, при нажатии на которую на экране отображается строка " Это простейшее приложение ASP.NET". Для более глубокого понимания кода, созданного ASP.NET в процессе обработки события нажатия на кнопку, просмотрим исходный код страницы, отображенной в браузере. Для этого необходимо вызвать контекстное меню страницы, отображенной в браузере, и выбрать пункт " Просмотр HTML-кода". Текст HTML-кода страницы приведен ниже. <! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN" " https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html xmlns=" https://www.w3.org/1999/xhtml" > < head> < title> Untitled Page< /title> < /head> < body> < form name=" form1" method=" post" action=" Default.aspx" id=" form1" > < div> < input type=" hidden" name=" __VIEWSTATE" id=" __VIEWSTATE" value=" /wEPDwUKMTQ2OTkzNDMyMWRkgXPwyzoFdQxaRTEKBnZBmc4T/Wk=" /> < /div> < div> < input type=" submit" name=" Button1" value=" Button" id=" Button1" /> < /div> < div> < input type=" hidden" name=" __EVENTVALIDATION" id= " __EVENTVALIDATION" value= " /wEWAgKn1OmODgKM54rGBoECiAp4b8+PZ5Qm6BWb5i+pgLWp" /> < /div> < /form> < /body> < /html> В приведенном примере HTML-кода страницы особый интерес вызывают скрытые поля, задаваемые с помощью тега < input type=" hidden" name=" " id=" " value=" " />. Эти поля используются для возврата информации серверу. Возврат информации серверу осуществляется с помощью механизма состояний вида (ViewState). Как видно, строка состояния вида не является читабельной, т. к. выглядит как последовательность случайных символов. На самом деле, значение состояния вида представляет собой строку, заданную в формате Base64, и пользователь может достаточно легко интерпретировать эти данные, преобразовав их в формат ASCII. Подробнее механизм передачи данных серверу в ASP.NET рассмотрен в разделе " ViewState". В нашем примере для вывода строки в окно браузера использовался объект Response. Применение данного объекта является наследием ASP, и он не рекомендован в настоящее время в качестве средства вывода в окно браузера информации, т. к. современные серверные элементы управления позволяют делать это способами, очень похожими на приемы программирования, используемые при создании обычных Windows-приложений - с помощью обращения к свойствам элементов управления. Например, в нашем случае мы можем применить объект Label (он представляет собой статический текст, размещенный на странице) для вывода информации в окне браузера. Для выполнения примера необходимо перейти в режим редактирования приложения и разместить на странице элемент Label. В свойстве Text этого элемента установим пустое значение (необходимо удалить текст, находящийся там по умолчанию). Текст страницы после произведенных действий будет выглядеть следующим образом (рис. 4.1). Рис. 4.1. Окно редактора кода страницы после добавления элемента Label Перейдем в окно редактора кода и изменим обработчик события Button1_Click следующим образом. Удалим строку Response.Write(" Это простейшее приложение ASP.NET"), и введем следующий код: Label1.Text = " Это простейшее приложение ASP.NET"; После запуска приложение ведет себя так же как и раньше, однако если посмотреть исходный код страницы, полученной после нажатия на кнопку, можно увидеть, что в нем присутствует новая строка: < span id=" Label1" > Это простейшее приложение ASP.NET< /span> < br /> Это и есть результат размещения на странице элемента Label. Немного усложним пример. Создадим страницу, которая предоставляет пользователю возможность ввести свое имя и фамилию, а при нажатии на кнопку выводит приглашение, содержащее введенное имя и фамилию. Модифицируем созданный ранее пример следующим образом. Добавим на страницу два элемента управления TextBox, предназначенных для ввода фамилии и имени, и два элемента Label и зададим значения их идентификаторов так, как показано на рис. 4.2. Рис. 4.2. Окно редактора страницы в режиме дизайна Как видно из рисунка, идентификаторы элементов, которые в данном случае заменяют имена, с чьей помощью можно обращаться к элементу из программного кода, содержат префиксы (приставки, расположенные до самого имени и отделенные от него символом " _"). Наименования префиксов обычно получают путем сокращения названия объектов, к которым относятся элементы управления. Например, Label - lbl, Button - btn, TextBox - tb и т. д. Использование префиксов имен элементов управления является желательным, поскольку дает возможность программисту определять по имени, к какому именно элементу происходит обращение. В нашем примере два элемента имеют одинаковые имена - LastName, однако их предназначение различно: один используется для вывода статического текста " Фамилия", а другой - для ввода фамилии. Префиксы lbl и tb позволяют, с одной стороны, использовать одинаковые логические имена, а с другой - отличать элементы друг от друга. Изменим код обработчика события нажатия на кнопку " Отправить" так, чтобы с помощью элемента lbl_Result на экран выводилось приглашение, которое состоит из фамилии и имени, введенных в соответствующие поля. Кроме того, установим красный цвет выводимого на экран текста. Для этого в обработчике события Button1_Click введем следующий код: lbl_Result.Text = " Здравствуйте, " +tb_FirstName.Text+" " + tb_LastName.Text+"! Добро пожаловать в приложение ASP.NET"; lbl_Result.ForeColor = Color.Red; При попытке запуска приложения на экране появится следующее сообщение: Рис. 4.3. Сообщение о наличии ошибки в запускаемом приложении Оно означает, что в коде нашего приложения существует ошибка, которая препятствует корректному его исполнению. После нажатия на кнопку No в окне Visual Studio будет выведено сообщение, детализирующее возникшую ошибку (рис. 4.4). В нашем случае ошибка означает, что ключевое слово Color, которое мы использовали для того, чтобы задать тексту красный цвет, не существует в данном контексте. Причем при двойном щелчке по строке, содержащей расшифровку ошибки, Visual Studio выделяет то место в исходном коде приложения, которое вызвало данную ошибку. Рис. 4.4. Выделение места ошибки в коде приложения и детализированное ее описание Для выяснения подробностей ошибки можно воспользоваться следующим инструментом, имеющимся в арсенале Visual Studio 2005. Если навести указатель мыши на выделенный фрагмент кода, содержащий ошибку, на экране появляется смарт-тег, при раскрытии которого выводятся некоторые подробности относительно возникшей ошибки (рис. 4.5). Рис. 4.5. Смарт-тег, содержащий подробности возникшей в процесс выполнения приложения ошибки В данном случае из рисунка видно, что для исправления ошибки необходимо подключить к проекту область имен (namespace), содержащую определение типа Color. Эта область имен называется Drawing и содержится в System. Для подключения области имен необходимо ввести в начале файла Default.aspx.cs следующую строку: using System.Drawing; Произведем запуск приложения. Введем в соответствующие поля ввода произвольные фамилию и имя и нажмем кнопку " Отправить". В результате обработки нажатия кнопки окно браузера будет выглядеть следующим образом (рис. 4.6). Рис. 4.6. Результат работы Web-приложения Динамическое создание элементов управления Иногда в процессе работы над приложением возникает необходимость создания динамического интерфейса. Это становится особенно актуальным в случае, когда интерфейс приложения должен меняться в зависимости от действий пользователя. В этом случае удобным инструментом реализации динамического интерфейса становится возможность динамического создания и отображения на странице элементов управления. Для создания элемента управления необходимо создать объект соответствующего класса, присвоить его атрибутам необходимые значения и добавить его к коллекции элементов управления страницы. При этом следует помнить о том, что поскольку в момент исполнения программного кода, создающего объект и добавляющего его к коллекции элементов управления, страница уже создана, добавление будет всегда происходить в конец коллекции. Это означает, что элемент будет добавляться после последнего элемента управления страницы. Чтобы получить больший контроль над расположением динамически создаваемого элемента управления, можно воспользоваться специально предназначенным для этого элементом Placeholder. Данный элемент управления предназначен для размещения других элементов внутри себя и может быть расположен в любом месте страницы. При этом, если внутри Placeholder отсутствует содержимое, это никак не повлияет на содержимое страницы. При использовании динамически создаваемых элементов управления необходимо помнить, что они существуют только до очередной обратной отсылки. Если после обратной отсылки динамически созданный элемент управления необходимо по-прежнему отображать на странице, нужно создавать элемент управления в обработчике события Page.Load. При создании элемента управления в обработчике события Page.Load ASP.NET использует любую информацию о состоянии вида по завершении этого обработчика события. Чтобы иметь возможность программного взаимодействия с динамически созданным элементом управления, последнему необходимо присвоить уникальный идентификатор (ID), являющийся аналогом ID любого другого элемента управления. В дальнейшем этот идентификатор можно использовать для того, чтобы найти данный элемент управления в коллекции элементов управления страницы с помощью метода Page.FindControl() и использовать его в программном коде. Проиллюстрируем все вышесказанное следующим примером. Предположим, необходимо в рассматриваемом выше примере ввести возможность ввода отчества по желанию пользователя. При этом нежелательно, чтобы поле для ввода отчества появлялось на экране, если пользователь включит соответствующий режим. Реализовать это можно следующим образом. Разместим на форме элемент управления CheckBox и установим свойство AutoPostBack этого элемента равным True. Разместим на форме элемент управления Placeholder. В результате этих действий страница в режиме дизайна будет выглядеть следующим образом (рис. 4.7): Рис. 4.7. Отображение страницы примера в режиме дизайна Модифицируем исходный код нашего приложения. В обработчик события Page.Load добавим следующий код, создающий объекты типа Label и TextBox и добавляющий их к коллекции Controls элемента Placeholder: if (CheckBox1.Checked){ Label lblSName = new Label(); lblSName.ID = " lbl_SName"; lblSName.Text = " Отчество"; PlaceHolder1.Controls.Add(lblSName); TextBox tbSName = new TextBox(); tbSName.ID = " tb_SName"; PlaceHolder1.Controls.Add(tbSName); } Внесем изменения в программный код обработчика события нажатия на кнопку " Отправить". Полный текст программного кода этого обработчика представлен ниже. string sname=string.Empty; TextBox tbSname=(TextBox)Page.FindControl(" tb_SName"); if (tbSname! =null){ sname = tbSname.Text; }lbl_Result.Text = " Здравствуйте, " +tb_FirstName.Text+" " +sname+" " + tb_LastName.Text+"! Добро пожаловать в приложение ASP.NET"; lbl_Result.ForeColor = Color.Red; Из примера видно, что с помощью метода Page.FindControl происходит поиск элемента управления tb_SName. В случае, если он будет найден на странице, значение свойства Text данного элемента записывается в переменную sname, которая затем используется для вывода информации на экран. Результат работы программы изображен на рис. 4.8. Рис. 4.8. Результат использования динамически созданного элемента управления Динамически созданные элементы управления могут обрабатывать события. Для реализации этой возможности необходимо подключить обработчик события с помощью кода делегата в событии Page.Load. Т.к. все события элементов управления генерируются после Page.Load, подключение обработчика события динамического элемента управления за пределами Page.Load приведет к тому, что событие элемента управления обрабатываться не будет. Чтобы подключить обработчик события изменения текста, в динамически созданном элементе управления необходимо выполнить следующие действия. Добавить процедуру обработчика события: protected void tb_SName_TextChanged(object sender, EventArgs e){ } В событии Page.Load привязать этот обработчик к соответствующему событию элемента управления: tbSName.TextChanged += new System.EventHandler (this.tb_SName_TextChanged); Класс Page Ранее было показано, что все элементы управления, из которых состоит Web-приложение, добавляются в контейнер, роль которого выполняет страница приложения. Страница отвечает за генерацию HTML-кода, передаваемого впоследствии клиенту. При этом, однако, каждый элемент управления отвечает за генерацию своей части HTML-кода, описывающего именно этот элемент внутри страницы. Можно сказать, что страница как бы руководит процессом создания страницы, заставляя каждый элемент управления генерировать свою часть кода. В ASP.NET любая страница является экземпляром класса Page. Класс Page играет исключительно важную роль в ASP.NET, так как с помощью него осуществляется доступ к большому количеству объектов, используемых для управления страницами Web-приложения. Ниже приводятся свойства и методы объекта Page.
Application Сохранение данных в переменных состояния приложения.
Cache Управление кэшированием откликов на сервере.
Controls Получение элементов управления страницы.
Request Чтение запросов и получение из текущего запроса объектов Browser, Cookies, Files, ClientCertificates.
Response Запись текста и данных в отклик, получение из текущего отклика объектов Cache, Cookies, Output.
Server Обработка запросов и откликов, вспомогательные методы кодирования и декодирования URL.
Session Сохранение элементов данных в переменных состояния сеанса.
Trace Включение и выключение трассировки, запись трассировочных событий в журнал.

Рассмотрим самые важные из них.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.