Обработка баз данных на Visual Basic®.NET
Шрифт:
В верхней части листинга располагается директива, которая сообщает механизму выполнения ASP.NET о необходимости использования вспомогательного кода из файла default.aspx.vb. После щелчка правой кнопкой мыши на файле default.aspx в окне Solution Explorer и выбора команды Build and Browse (Скомпоновать и просмотреть Web-форму) произойдет следующее. Во-первых, Web-форма скомпилируется в DLL-файл и при каждом последующем вызове этой Web-формы ASP.NET будет использовать ее откомпилированную версию. Во-вторых, откроется окно Web-броузера с отображением результатов выполнения кода, как показано на рис. 11.11. (Чтобы открыть проект данного примера и выполнить приложение, нужно разрешить совместное использование текущего каталога с файлами примера. При работе с операционной системой Windows 2000 для этого щелкните правой кнопкой мыши на имени каталога, т.е. Novelty в данном примере, и выберите в контекстном меню команду Sharing (Совместное использование). Затем выберите вкладку Web Sharing (Совместное использование в Web-среде), переключатель Share this folder (Совместно использовать данный каталог) и в диалоговом окне Edit Alias (Редактировать псевдоним) введите Web-имя каталога, т.е. Novelty в данном примере. — Прим. ред.)
РИС. 11.11. Результат отображения Web-формы default.aspx в окне Web-броузера
Коды всех примеров в данной книге можно скопировать с Web-страницы книги на Web-сервере Издательского дома "Вильямс" по адресу: www.williamspublishing.com.
Применение элемента управления DataGrid
В первых версиях набора инструментальных средств разработчика .NET Framework SDK для демонстрации примеров итерирования коллекции данных применялся пользовательский элемент управления DataGrid, который имеет очень мало или не имеет вообще ничего общего с элементом управления ActiveX. По сути, он означает использование в Web-форме некоторых шаблонных функций, которые выполняются в серверной части в целях создания HTML-кода для клиентской части. Эта технология обладает очень большими возможностями, поскольку позволяет создавать весьма сложную логику, связанную с пользовательским интерфейсом, в виде повторно используемого компилированного объекта, который полностью безопасен и совместим с любым типом Web-броузера. Дело в том, что серверные элементы управления в итоге создают HTML-код и вопросы совместимости полностью зависят от разработчика.
Элемент DataGrid является характерным примером элемента управления, который позволяет разработчику просто связать объект DataSet с объектом DataGrid и мгновенно получить визуальное представление данных. В листинге 11.3 показан пример создания базового запроса для заполнения данными элемента управления DataGrid. Для использования любого серверного элемента управления его нужно объявить, а после объявления его методы и свойства можно использовать так же, как любые другие объекты Web-страницы. Итак, здесь создается новая Web-форма WebGrid.aspx, которая содержит элемент управления DataGrid.
После выполнения этого кода по отношению к базе данных Novelty полученные результаты будут иметь такой вид, как на рис. 11.12.
РИС. 11.12. Внешний вид Web-формы WebGrid.aspx
Серверный элемент управления предлагает способ отображения данных без создания вручную какого-либо кода, связанного с механизмом отображения данных. Учтите, что серверные элементы управления в большинстве своем созданы на основе фрагментов Web-страниц, или пэйджлетов (рagelet). Они не являются полноценными ASPX-страницами, имеют расширение .as и представляют только некоторые разделы Web-страницы, например повторно используемую форму или код, который применяется для отображения сообщения об ошибке и является частью более общей Web-страницы с информацией о происходящих ошибках. Такие серверные элементы управления позволяют выполнять практически любые функции с помощью Web-ориентированного пользовательского интерфейса.
В cреде с динамическим содержимым некоторые переменные, например строка подключения к базе данных, часто остаются статическими. В листинге 11.1 для строки подключения в куче ищется (interned) экземпляр строки connString. Если он найден, то проверяется его содержимое. Если значение экземпляра в куче совпадает со значением строки connString, то оно используется приложением. В противном случае создается новый экземпляр и ему присваивается значение строки connString. Данный подход позволяет экономить ресурсы, потому что среда CLR гораздо быстрее выполняет проверку кучи, чем создание нового экземпляра объекта-строки. Такое повторное использование строк позволяет повысить производительность приложения.
Данный способ не следует применять для строк, значение которых часто изменяется, потому что нет никакого смысла проверять значение экземпляра, когда наверняка известно, что оно другое. Несмотря на это, его можно применять для свойств, если свойства содержат особый набор значений, например при работе с перечислением. Для повышения производительности приложения и эффективного использования ресурсов в таких случаях применяется метод intern. В главе 12, "Web-службы и технологии промежуточного уровня", описываются другие технологии повышения эффективности приложений.