59.Иерерхия классов .NET Framework всегда держит при себе планы (Blueprints), то есть описания объектов. В свою очередь, объектами считается все, что находится в .NET Framework: страницы ASP.NET, окна сообщений и так далее. Такие объекты размещаются внутри логических групп, которые называются пространствами имен (namespace) (рис. 2.2). Например, все объекты, относящиеся к базам данных, можно расположить в пространстве имен System.Data ('Система.Данные'), а все объекты XML — в System.Xml ('Система.ХМЬ') и так далее. Такое объединение в группы очень полезно при создании библиотек объектов. Пространства имен используются при создании приложений ASP.NET. System -System.Data -System.IO -System.Net - System.Net.TcpClient -System.Net. TcpListener -System.Net. WebRequest -System.Net. WebResponse -System.Reflection -System.Security Рис. Иерерхия классов (отрывок) Каждое пространство имен из структуры .NET — это, в сущности, коллекция схем. ASP.NET поставляется вместе с собственными схемами, но иногда этого набора бывает недостаточно. Поэтому, чтобы создавать дополнительные типы объектов, приходится обращаться из ASP.NET к другим наборам. Получить доступ к этим дополнительным объектам и методам можно с помощью ключевого слова Import (импорт): <%@ Import Namespace="System.Drawing" %>. Эта строка задает импорт всех классов из пространства имен System.Drawing (означает "Система. Чертеж"), например, font (шрифт) или image (изображение). Теперь при создании своих объектов можно использовать эти схемы. Сборка - набор модулей, предназначенных для совместной работы или самодостаточное и готовое к установке приложение. Компоненты сборки описываются в манифесте, который содержит: - перечисление файлов сборки; - правила использования внешними потребителями типов и ресурсов, определенных в сборке; - определение адресации внешних использований типов и ресурсов к их реализации внутри сборки. Каждая сборка имеет уникальное имя: префикс, основанный на открытом ключе разработчика (для общих сборок), простое текстовое имя, номер версии, информация о локализации. Все общие сборки подписываются секретным ключо^ разработчика. Web-формы Формы Web очень похожи на традиционные формы HTML. Разница между ними в том, что первые — это серверное средство, что означает возможность создания пользовательских элементов на сервере. В этом случае сервер полностью осведомлен о том, как выглядит интерфейс, какие функции он выполняет, какие данные следует ожидать и т.п. На сервере пользователь создает объекты, называемые серверными элементами управления, которые представляют собой части интерфейса пользователя. В отличие от элементов формы HTML эти объекты полностью контролируемы - они имеют свойства, события и методы, которыми можно манипулировать. Как только клиент запрашивает страницу, ASP.NET преобразовывает эти средства управления в HTML, который совершенно точно отображается в браузере (рис. 2.3). Используя Web- формы, сервер знает о внешнем виде и функциях каждой конкретной формы. Посредством клиентского сценария, автоматически генерируемого ASP.NET, эти элементы управления предупреждают сервер всякий раз, когда что-либо происходит, например, нажатие на кнопку. Клиентский сценарий отсылает информацию на сервер в момент возникновения события, часто не сообщая об этом пользователю. Таким образом, сервер непрерывно уведомляется о клиентских процессах, что объединяет их друг с другом в одно целое. На практике это выглядит, как управляемая событиями модель. Поскольку сервер сам создает элементы управления, он также может запомнить, что вводилось в каждый элемент. Серверные элементы управления Серверные элементы управления являются составляющими пользовательского интерфейса Web- формы. В ASP.NET выделяется четыре типа серверных элементов управления: - серверные элементы управления HTML; - элементы Web; - средства подтверждения; - пользовательские элементы. Элементы управления HTML представляют собой обычные элементы формы HTML, такие как текстовые поля ввода и кнопки, но создаются они на сервере, где ими можно управлять. Аналогичны им элементы Web, но они более функциональны и могут формировать сложный пользовательский интерфейс. Средства подтверждения используются для проверки правильности пользовательского ввода данных. Пользовательские элементы специально предназначены для реализации некоторой особой функциональности. Все элементы управления, размещенные на сервере, имеют свойства, методы и события. Они намного функциональнее, чем традиционные элементы формы HTML, и существенно упрощают процесс формирования пользовательского интерфейса. При создании серверного элемента не нужно заботиться о написании кода HTML. При поступлении запроса на страницу элемент управления автоматически генерирует HTML, корректно отображаемый в браузере. Например, следующая строка создает на сервере элемент управления Button: <asp:Button text="Submit"runat= "server"/>. В момент ответа на запрос клиенту выдается такой код HTML: <input type="Submit" name-"ctrll" value- "Submit">. Эти две строки лишь похожи друг на друга. Первая выполняется только на сервере. Вторая строка — это то, что принимает клиент. Также ASP.NET знает о возможностях каждого браузера и, следовательно, отсылает соответствующий код каждому из них. Например, если браузер и поддерживает динамический HTML (DHTML), то ASP.NET не будет отправлять ему такой код. Этот подход называется низкоуровневой поддержкой связи с тем, что ASP.NET может сглаживать вывод кода HTML для браузеров, которые не поддерживают современный уровень функциональности. В идеале, низкоуровневая поддержка должна отображать корректно i-й элемент управления. Однако некоторые элементы будут отображаться неодинаково в различных браузерах, что связано с неидентичной трактовкой ими кода HTML. Тем не менее, при разработке под наиболее популярные версии браузеров низкоуровневая поддержка будет работать верно.