Знакомство с Microsoft .NET Framework 2.0
Часть 3. ASP.NET 2.0
Готовые блоки и прикладные интерфейсы
Администрирование и управление
Расширенный набор визуальных компонентов
Об авторе. Алексей Федоров сотрудник отдела стратегических технологий российского представительства компании Microsoft. (alexeif@microsoft.com).
Мы продолжаем рассказ об основных новинках в Microsoft .NET Framework версии 2.0 и в этом номере рассмотрим технологию создания приложений ASP.NET.
а десять лет своего существования технологии создания Web-приложений на платформе Microsoft Windows прошли несколько этапов развития от появления Internet Explorer в 1995 году и Internet Information Services в 1996-м, до Active Server Pages и Visual InterDev в 1997-м и ASP.NET 1.0, Visual Studio.NET и Web Matrix в 2002-2003 годах (рис. 1). В следующем году нас ожидают технология ASP.NET 2.0 и новое средство разработки Visual Studio 2005.
Рис. 1. Технологии создания Web-приложений на платформе Microsoft Windows
При этом на каждом новом этапе создание Web-приложений упрощалось. Так, пакет Microsoft Visual InterDev (1997) стал первым визуальным средством создания Web-приложений, включавшим в себя и средства дизайна HTML-страниц, и возможность написания серверного скриптового кода. Появление ASP.NET и Visual Studio.NET (2002) позволило отказаться от использования COM-объектов и добавить к скриптовым языкам VBScript и JavaScript такие языки, как VB.NET и C#. Таким образом, разработка Web-приложений стала технологически совместимой с разработкой Windows-приложений благодаря использованию единой платформы Microsoft .NET.
Технология ASP.NET 2.0 это существенное обновление как самой технологии создания Web-приложений, так и средства разработки Visual Studio, в состав которого теперь входит и бесплатная версия Visual Web Developer 2005 Express Edition.
Новое в ASP.NET 2.0
азработчики попытались учесть в новой версии ASP .NET основные проблемы, возникающие при создании Web-приложений, а также многочисленные пожелания пользователей предыдущих версий Microsoft Visual Studio .NET.
Упрощенные Web-проекты
В Visual Studio 2005 значительно облегчен процесс создания ASP.NET-приложений. В частности, Web-приложения теперь можно создавать без использования проектов и решений (solutions) для этого достаточно выбрать команду File | New Web Site, и вы получите шаблон Web-приложения, базирующегося на локальной файловой системе (рис. 2). В простейшем случае создаются файл default.aspx и каталог Data. Далее вы выбираете элементы вашего приложения командами Website | Add New Item и Website | Add Existing Item. Элементы могут располагаться как в отдельных файлах, так и в шаблонах.
Рис. 2. Упрощенный Web-проект и его элементы
Редактирование приложений происходит в улучшенной среде разработчика, которая поддерживает три способа отображения: Design, Source и Server Code.
Среда разработчика поддерживает множество функций, облегчающих написание кода, от контекстных меню, содержащих набор наиболее часто выполняемых операций с компонентами, до расширенной поддержки механизмов IntelliSense (рис. 3), которые теперь работают в случаях:
• редактирования серверного кода в режиме отображения HTML;
• редактирования серверного кода в режиме отображения Source;
• редактирования клиентского кода в режиме отображения HTML;
• редактирования серверных компонентов, HTML-элементов, CSS и директив;
• редактировании исходного кода на C# или Visual Basic;
• редактировании файлов ASMX;
• редактировании файлов ASHX.
Рис. 3. Поддержка IntelliSense в редакторе
Более того, теперь отпала необходимость использования сервера Internet Information Server на этапе разработки и отладки приложений в состав Visual Studio входит локальный Web-сервер Visual Web Developer Web Server (рис. 4).
Рис. 4. Локальный Web-сервер
Производительность разработчиков Web-приложений возрастает также за счет использования большого числа готовых блоков, прикладных интерфейсов и широкого набора компонентов. Эти темы мы рассмотрим в следующем разделе.
Готовые блоки и прикладные интерфейсы
В ASP.NET 2.0 реализован большой набор готовых блоков и прикладных интерфейсов, использование которых существенно повышает продуктивность разработчиков: число строк кода, который им приходится писать, значительно сокращается, многие рутинные операции становятся доступны через декларативные объявления или соответствующие механизмы конфигурации. Основные блоки и прикладные интерфейсы, доступные в ASP.NET, показаны на рис. 5.
Рис. 5. Готовые блоки и прикладные интерфейсы в ASP.NET 2.0
Шаблоны страниц
Шаблоны страниц (рис. 6) позволяют задать единую структуру и интерфейсные элементы для всего Web-приложения. К таким элементам, в частности, относятся верхние и нижние заголовки страниц, элементы навигации и т.п. Использование шаблонов существенно облегчает настройку приложения, поскольку отпадает необходимость в повторении общего кода на каждой странице Web-приложения. Шаблоны страниц задаются с помощью директивы @Page и атрибута MasterPageFile. В файле с расширением .master описываются шаблон страницы и области, в которых будет отображаться содержимое дочерних страниц, которые задаются компонентами ContentPlaceHolder. В дочерних страницах используется компонент Content с тем же идентификатором, что и «заглушка» в шаблоне, таким образом достигается соответствие расположения собственно содержимого дочерних страниц и областей, отведенных под него в файле, который описывает шаблон.
Рис. 6. Использование шаблонов
Темы элементов
Визуальные темы элементов в ASP.NET 2.0 позволяют легко настраивать внешний вид Web-приложения. Вся информация о стилях сохраняется в едином месте теме, которая затем применяется ко всем страницам и интерфейсным элементам приложения. Как и шаблоны страниц, визуальные темы серьезно облегчают настройку приложения, позволяя осуществлять ее из одного централизованного источника. Тема задается с помощью директивы @Page и атрибута Theme.
Локализация
Сложности с локализацией приложений, присущие ASP.NET 1.x, преодолеваются в новой версии ASP.NET за счет полностью прозрачной поддержки стандартных ресурсных файлов в формате resx. Ресурсы могут использоваться из приложения как декларативно (используя синтаксис <%$ … %> для задания соответствия свойств ресурсам), так и программно.
Управление членством
Управление членством реализовано в виде сервиса Membership service, который предоставляет набор программных интерфейсов для создания учетных записей пользователей и манипуляции ими. Два новых класса Membership и MembershipUser реализуют всю функциональность, необходимую для управления членством. Класс Membership предоставляет методы для создания новых пользователей, проверки пользователей и т.п. Класс MembershipUser служит для представления отдельных пользователей, для получения и изменения их паролей, для доступа к такой информации, как дата последнего входа в приложение, и т.п. Хранение информации о пользователях реализовано через провайдеров, которые обеспечивают доступ к физическим источникам данных Microsoft Access, SQL Server, службы каталогов Active Directory и т.п. По умолчанию используются СУБД Microsoft Access и база данных AspNetDB.mdb. Управление сервисом членства осуществляется через раздел <membership> файла Web.config.
Управление ролями
В ASP.NET 2.0 поддержка управления ролями реализована на базе диспетчера ролей, который предоставляет программный интерфейс, основанный на базе класса Roles. Этот класс реализует методы типа CreateRole, DeleteRole, AddUserToRole и позволяет программным образом настраивать роли и назначать их пользователям. Для декларативного управления ролями используются файл конфигурации Web.config и утилита администрирования WebAdmin.axd (рис. 7, 8).
Рис. 8. Настройка механизмов безопасности с помощью утилиты администрирования WebAdmin.axd
Персонализация
Механизм персонализации, реализованный на базе соответствующего сервиса, позволяет сохранять персональные параметры пользователей приложения. Персонализация базируется на профилях пользователей, которые задаются в разделе <profile> файла Web.config. В режиме выполнения доступ к свойствам, определенным в этом разделе, обеспечивается через свойство Profile страницы. Хранение персонализационной информации осуществляется через провайдеров, которые обеспечивают доступ к физическим источникам данных Microsoft Access, SQL Server и т.п. По умолчанию используются СУБД Microsoft Access и база данных AspNetDB.mdb.
Кэширование данных
В ASP.NET 2.0 осуществлено автоматическое обновление кэша сервера баз данных. Это позволяет автоматизировать процесс получения обновленных данных, отображаемых в Web-приложении. Класс SQLCacheDependency обеспечивает синхронизацию зависимостей кэша от SQL-данных.
Администрирование и управление
Для облегчения администрирования Web-приложений, а также для более простого управления ими в ASP.NET 2.0 появился ряд новых компонентов, к которым, в частности, относятся:
- Configuration API новый набор интерфейсов для конфигурации позволяет пользователям программно создавать, читать, редактировать или обновлять конфигурационные файлы Web.config и machine.config.
- Средство администрирования ASP.NET на базе MMC (рис. 9) новое средство администрирования, подключаемое к IIS Administration MMC, позволяет администраторам графически отображать или изменять настройки в конфигурационных XML-файлах.
- Средство предкомпиляции новая утилита развертывания Web-приложений позволяет разработчикам и администраторам выполнять предкомпиляцию ASP.NET-приложения перед его развертыванием. Это позволяет, в частности, распространять приложения без предоставления исходного кода.
- Средства мониторинга и трассировки эти средства позволяют администраторам получать автоматические уведомления о том, что приложения начинают испытывать какие-то проблемы. Новые средства трассировки предоставляют все данные, необходимые для выполнения диагностики и обеспечения поддержки Web-приложений.
Рис. 9. Средство конфигурирования ASP.NET на базе MMC
Рис. 10. Компоненты доступа к данным и отображения данных
Расширенный набор визуальных компонентов
Набор компонентов, предоставляемых ASP.NET 2.0 в распоряжение разработчиков, существенно расширился по сравнению с предыдущими версиями. Более 50 новых компонентов обеспечивают такую функциональность, как декларативный доступ к данным, генерация мастеров (компонент Wizard), создание горизонтальных, вертикальных и вложенных меню (компонент Menu) и элементов для отображения информации в древовидной структуре (компонент TreeView), создание порталов (набор компонентов Web Parts), доступ к защищенной информации (компонент Login) и т.п. Многие из этих компонентов базируются на готовых блоках и прикладных интерфейсах, включая доступ к данным, членство, роли и персонализация. Большинство визуальных компонентов относятся к следующим функциональным группам:
• Управление данными в ASP.NET 2.0 поддерживается декларативный (без написания кода) доступ к данным на основе новых компонентов связи с данными и доступа к данным. Новые компоненты доступа к данным поддерживают такие источники данных, как SQL Server, бизнес-объекты или Web-сервисы.
В текущей версии ASP.NET 2.0 доступны следующие источники данных:
Помимо этого планируется включение в ASP.NET 2.0 следующих источников данных
- WebServiceDataSource,
- IndexServerDataSource,
- SharePointDataSource,
- SqlXmlDataSource,
- ExcelDataSource,
- FileSystemDataSource.
Новый компонент GridView поддерживает отображение и редактирование данных, разбиение на страницы и сортировку без необходимости программирования. Для отображения данных только из одной записи служит компонент DetailsView. Совместное использование компонентов GridView и DetailsView позволяет, в частности, создавать интерфейсы в парадигме «Master/Detail». В ASP.NET 2.0 включены следующие компоненты, способные отображать данные:
- AdRotator,
- BulletedList,
- DropDownList,
- ListBox,
- CheckBoxList,
- RadioButtonList,
- Repeater,
- DataList,
- DataGrid (включен для обеспечения совместимости с ASP.NET 1.x),
- GridView,
- DetailsView,
- TreeView.
• Навигация с целью реализации пользовательского интерфейса для навигации между страницами можно использовать такие компоненты, как меню, компонент для отображения древовидной структуры и специальные навигационные пути. Эти компоненты обладают возможностью извлечения информации о навигации из специального навигационного сервиса, реализованного в ASP.NET 2.0. Навигационные пути загружаются в компонент SiteMapPath, а карта сайта отображается в компоненте TreeView. Компонент SiteMapPath может использовать следующие визуальные шаблоны:
- NodeTemplate,
- CurrentNodeTemplate,
- RootNodeTemplate,
- PathSeparatorTemplate.
• Доступ к защищенной информации для ввода аутентификационной информации (логин и пароль) в ASP.NET 2.0 используется компонент Login. Различные опции восстановления пароля доступны через использование компонента PasswordRecovery. Информация о пользователе отображается компонентом LoginName, компонент LoginStatus поддерживает отображение кнопок Login и Logout, а компонент LoginView служит для обеспечения доступа к содержимому страницы только аутентифицированных пользователей.
Доступны следующие компоненты:
• Портальные компоненты набор компонентов Web Parts служит для создания порталов. Эти компоненты поддерживают многочисленные настройки, включая редактирование содержимого, местоположение компонентов на странице и т.п.
К портальным компонентам относятся:
• Дополнительные компоненты помимо вышерассмотренных в ASP.NET 2.0 входят следующие компоненты:
В этой статье мы рассмотрели основные новшества технологии ASP.NET 2.0, которая является частью Microsoft .NET Framework версии 2.0, а также некоторые вопросы, связанные с поддержкой этой технологии в новом средстве разработки Microsoft Visual Studio 2005.
В следующем номере мы продолжим разговор о Microsoft .NET Framework версии 2.0 и рассмотрим новинки в технологиях доступа к данным ADO.NET.