conn.Close()
%>
<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemes.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 179px; POSITION: absolute; TOP: 73px" runat="server" Width="640px" Height="480px" BackColor="#fffff5" BorderColor="black" ShowFooter="true" CellPadding="1" CellSpacing="1" Font-Name="Arial" Font-Size="8pt" HeaderStyle-BackColor="#c0c0c0" EnableViewState="false">
</asp:DataGrid>
</form>
</body>
</HTML>
После выполнения этого кода по отношению к базе данных 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-службы и технологии промежуточного уровня", описываются другие технологии повышения эффективности приложений.
Повышение производительности приложений с помощью хранимых процедур
Благодаря достоинствам платформы .NET многие разработчики стали полагаться на клиентскую часть приложения для реализации специализированных бизнес-правил. Хотя ASP-страницы на платформе .NET компилируются и выполняются быстрее, чем обычные ASP-страницы, все же для большинства организаций управление такой бизнес-логикой (или ее поддержка) остается достаточно сложным.
В большинстве случаев сервер базы данных оказывается недоступным для разработчиков, т.е. они не могут управлять количеством процессоров, размером оперативной и дисковой памяти, а также способом резервного копирования. Для большинства операций правильно сконфигурированный сервер базы данных является наименее требовательным к ресурсам компьютером. Ниже перечислены типичные рекомендуемые конфигурации компьютеров, которые могут использоваться для Web-сервера и сервера базы данных.
Компьютер Спецификации Web-сервер Pentium 4, частота 800 МГц, 1 Гбайт оперативной памяти, массив RAID 5 дисков SCSI емкостью 18,1 Гбайт Сервер базы данных Quad-Pentium 4 Xeon, частота 800 МГц, 4 Гбайт оперативной памяти ECC-RAM, массив RAID 5 дисков SCSI емкостью 72 Гбайт для базы данных и журналов регистрации транзакций, дополнительные сетевые платы и источники бесперебойного питанияЧасто для повышения производительности рекомендуется использовать хранимые процедуры. Вот что происходит при поступлении Web-запроса к базе данных.
1. Пользователь открывает Web-страницу, вводит данные, а затем передает их Web-серверу.
2. Web-сервер анализирует полученные данные и выполняет проверку и/или сбор данных, посланных пользователем.
3. Затем пользователю пересылается отклик, обычно в виде Web-страницы с уведомлением об успехе или неудаче запроса.