ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
Наконец, еще одной проблемой является то, что классическая технология ASP требует использования большого количества шаблонов и весьма избыточного программного кода сценариев, который может повторяться от проекта к проекту. Почти всем Web-приложениям необходимо осуществлять контроль пользовательского ввода, обновлять состояние HTML-элементов перед отправкой HTTP-ответа, генерировать HTML-таблицы данных и т.д.
Главные преимущества ASP.NET 1.х
Уже первая главная реализация ASP.NET (версии 1.x) предложила фантастические возможности преодоления ограничений, присущих классической технологии ASP. По сути, платформа .NET дала начало использованию следующих подходов.
• ASP.NET 1.x
• Страницы ASP.NET 1.x представляют собой скомпилированные компоновочные блоки .NET, а не интерпретируемые строки языка сценариев, которые обрабатываются значительно медленнее.
• Web-элементы управления позволяют программисту строить Web-приложения с графическим интерфейсом приблизительно так же, как и приложения Windows Forms.
• Web-элементы ASP.NET автоматически обновляют своё состояние при вторичных запросах, для чего используется скрытое поле формы, имеющее имя __VIEWSTATE.
• Web-приложения ASP.NET являются полностью объектно-ориентированными и используют CTS (Common Type System – общая система типов).
• Web-приложения ASP.NET легко конфигурировать с помощью стандартных средств IIS или с помощью файла конфигурации Web-приложения (Web.config).
Технология ASP-NET 1.x была большим шагом в правильном направлении, но ASP.NET 2.0 обеспечивает дополнительные преимущества.
Главные преимущества ASP.NET 2.0
ASP.NET 2.0 предлагает ряд новых пространств имен, типов, утилит и подходов в разработке Web-приложений .NET. Вот их неполный список.
• В ASP.NET 2.0 для разрабатываемого и тестируемого Web-узла уже не требуется хостинг в IIS. Теперь вы можете разместить свой узел в любом каталоге на жестком диске.
• ASP.NET 2.0 поставляется с большим набором новых Web-элементов (элементы управления безопасностью, элементы управления данными, элементы пользовательского интерфейса и т.д.), дополняющим набор элементов управления ASP.NET 1.x.
• В ASP.NET 2.0 поддерживаются шаблоны страниц, которые позволяют создать общий шаблон интерфейса для множества связанных страниц.
• В ASP.NET 2.0 поддерживаются темы, которые предлагают декларативный метод изменения внешнего вида всего Web-приложения.
• В ASP.NET 2.0 поддерживаются Web-части, которые могут использоваться для того, чтобы конечный пользователь мог настроить внешний вид Web-страницы.
• В ASP.NET 2.0 поддерживается Web-утилита конфигурации и управления, которая осуществляет управление файлами Web.config.
Если бы здесь ставилась задача описать все новые возможности ASP.NET 2.0, эта книга была бы в два раза больше. Поскольку тема Web-разработки не является единственной темой рассмотрения, для получения более конкретной информации о том, что здесь не представлено, обратитесь к документации .NET Framework 2.0.
Пространства имен ASP.NET 2.0
В библиотеках базовых классов .NET 2.0 предлагается не менее 34 пространств имен, имеющих отношение к Web. Всю эту совокупность пространств имен можно разбить на четыре главные группы.
• Базовые функциональные возможности (типы, обеспечивающие взаимодействие с HTTP-запросами и HTTP-ответами, инфраструктура Web-форм, поддержка тем и профилирования, Web-части и т.д.)
• Web-формы и HTML-элементы
• Web-разработка для мобильных платформ
• Web-сервисы XML
В этой книге тема разработки .NET-приложений (ни Web-приложений, ни каких-то других) для мобильных систем не рассматривается, но роль Web-сервисов XML будет обсуждаться в главе 25. В табл. 23.1 предлагаются описания некоторых базовых пространств имен ASP.NET 2.0.
Таблица 23.1.
Пространства имен ASP.NET для WebПространства имен | Описание |
---|---|
System.Web | Определяет типы, обеспечивающие коммуникацию браузера и Web-сервера (в частности, возможности запроса и ответа, обработки файлов cookie и передачи файлов) |
System.Web.Caching | Определяет типы, обеспечивающие возможность кэширования для Web-приложения |
System.Web.Hosting | Определяет типы, позволяющие строить пользовательские хосты для среды выполнения ASP.NET |
System.Web.Management | Определяет типы, обеспечивающие управление и контроль правильности функционирования Web-приложения ASP.NET |
System.Web.Profile | Определяет типы, используемые для работы с пользовательскими профилями ASP.NET |
System.Web.Security | Определяет типы, позволяющие программно обеспечить безопасность узла |
System.Web.SessionState | Определяет типы, обеспечивающие поддержку информации состояния для каждого пользователя (например, на основе использования сеансовых переменных состояния) |
System.Web.UI Sуstem.Web.UI.WebControls System.Web.UI.HtmlControls | Определяют ряд типов, позволяющих создавать для Web-приложений программы клиента с графическим пользовательским интерфейсом |
Модель программного кода Web-страницы ASP.NET
Web-страницы ASP.NET могут строиться с использованием одного из двух подходов. Вы можете создать один файл *.aspx, который будет содержать комбинацию программного кода сервера и HTML (по примеру классической технологии ASP). Для создания такого файла используется модель одномодульной страницы, когда программный код сервера размещается в контексте ‹script›, но сам этот программный код непосредственно не является программным кодом сценария (например, на языке VBScript или JavaScript). Вместо этого операторы программного кода в рамках блока ‹script› записываются на любом из управляемых языков (C#, Visual Basic .NET и т.д.).
Если создаваемая страница содержит очень мало программного кода (и очень много HTML-кода), модель одномодульной страницы окажется лучшим вариантом выбора, так как перед вами а одном унифицированном файле *. aspx будут и программный код, и разметка. Размещение программного и HTML-кода в одном файле *.aspx обеспечивает и другие преимущества.
• Страницы, созданные в рамках одномодульной модели, проще инсталлировать и предоставлять другим разработчикам.
• Ввиду отсутствия зависимости между файлами, одномодульную страницу проще переименовать.
• Поддержка и обслуживание файлов исходного кода оказываются более простыми, поскольку все действие происходит в одном файле.
Подход, принятый в Visual Studio 2005 по умолчанию (при создании нового проекта Web-узла), использует так называемую технологию внешнего кода поддержки (code-behind), предполагающую отделение программного кода от HTML-логики представления и размещение их в двух разных файлах. Эта модель исключительно хорошо работает в тех случаях, когда ваши страницы содержат большие объемы программного кода или в процессе разработки Web-узла принимают участие много разработчиков. Модель, основанная на использовании внешнего кода поддержки, имеет несколько преимуществ.