ASP.NET 2.0. Обзор новых сервисов, элементов управления и средств


Оглавление (нажмите, чтобы открыть):

Лабораторная работа 8.1 Работа с пользовательскими элементами управления

Применение пользовательских элементов управления в ASP.NET 2.0

Задание:

1) Создайте приложение ASP.NET на основе шаблона ASP.NET Web Site в каталоге C :\ Labs \UserWebControl.

Создайте в этом приложении Web-форму, аналогичную представленной на рис. 8-1а. На эту форму поместите один элемент управления Label с начальным значением «Неизвестно» и ниже — кнопку с надписью «Чайник или не чайник?»

2) Создайте пользовательский элемент управления с единственным флажком «Я чайник» и поместите этот элемент управления в нижнюю часть Web-формы.

3) Реализуйте в вашем приложении (пользовательском элементе управления и Web-форме код), который бы при нажатии на кнопку получал из пользовательского элемента управления информацию о том, установлен флажок или нет. Если флажок установлен, то при помощи элемента управления Label на главной форме должна выводиться надпись «Это чайник», если нет — «Это не чайник» (см. рис. 8-1б)

Решение:

К пункту 1 — создание Web-приложения и главной формы:

1. Создайте в Visual Studio . NET 2005 новый проект на основе шаблона ASP . NET Web Site . При создании в поле Location введите C :\ Labs \UserWebControl. После создания приложения форма Default . aspx откроется в окне дизайнера автоматически.

2. Поместите на эту форму из ToolBox элемент управления Label в верхнюю часть формы. Значение свойства (ID) для этого элемента управления должно быть Label1. Значение свойства Text для него установите в «Неизвестно».

3. Под элементом управления Label разместите элемент управления Button. Значение свойства (ID) для него должно быть Button1. Свойству Text присвойте значение » Чайник или не чайник?».

4. Нажмите на кнопку F5 и убедитесь, что форма выглядит так, как вы задумывали. Закройте окно Internet Expl orer .

К пункту 2 — создание пользовательского элемента управления и применение его на главной форме:

1. В окне Solution Explorer щелкните правой кнопкой мыши по строке проекта User Web Control и в контекстном меню выберите Add -> Add New Item . В открывшемся окне Add New Item выделите шаблон Web User Control , убедитесь, что в поле Name стоит WebUserControl 1. ascx и нажмите на кнопку Open . В список элементов проекта в Solution Explorer будет добавлен файл WebUserControl . ascx и он будет открыт в окне дизайнера форм.

2. Перетащите из окна Toolbox на страницу WebUserControl.ascx элемент управления CheckBox . Для его свойства ( ID ) должно стоять значение CheckBox1, а для свойства Text введите значение «Я чайник». Сохраните созданный элемент управления.

3. В окне дизайнера перейдите на вкладку для главной формы (WebForm1.aspx) и из контейнера Toolbox перетащите в нижнюю часть формы элемент управления Panel.

4. Внутрь элемента управления Panel перетащите из окна Solution Explorer созданный вами файл пользовательского элемента управления WebUserControl . ascx .

5. Нажмите на кнопку F5, чтобы убедиться, что пользовательский элемент управления правильно отображается на вашей форме. Закройте окно Internet Exporer.

К пункту 3 — обеспечение взаимодействия между пользовательским элементом управления и главной формой:

1. В окне Solution Explorer щелкните правой кнопкой мыши по объекту WebUserControl . ascx и в контекстном меню выберите View Code . Откроется страница WebUserControl . ascx . vb с программным кодом для пользовательского элемента управления.

2. Впишите перед строкой End Class следующий код:

Public ReadOnly Property pTeapot() As Boolean

3. Откройте в окне дизайнера форм форму Default .aspx и перейдите на вкладку Source . Непосредственно под тегом Page должен находиться тег

@ Register Src =»WebUserControl.ascx» TagName =»WebUserControl» TagPrefix =»uc1″ %>

а в списке элементов управления формы — тег

uc1 : WebUserControl ID =»WebUserControl1″ runat =»server» />

Обратите внимание, что для значения атрибута ID автоматически добавляется 1, поэтому имя объекта вашего пользовательского элемента управления должно быть WebUserControl1 (а не WebUserControl ).

3. В окне Solution Explorer щелкните правой кнопкой мыши уже по строке Default .aspx и в контекстном меню для него выберите View Code . В списке объектов в верхнем левом углу редактора кода выберите объект Button1, а в списке событий — событие Click. Будет сгенерирована событийная процедура Button 1_ Click (). Добавьте для нее следующий код:

If WebUserControl1.pTeapot = True Then

Label 1. Text = «Это не чайник»

Нажмите на кнопку F5 и убедитесь, что ваше приложение работает, как планировалось.

Развитие ASP.NET

Когда компания Microsoft выпустила ASP NET 1.0, даже она не ожидала, что эта технология будет принята с таким энтузиазмом. ASP NET быстро превратилась в стандарт для разработки веб-приложений с помощью технологий Microsoft и стала серьезным конкурентом для всех остальных платформ, предназначенных для разработки веб-приложений. С тех пор ASP.NET несколько раз обновлялась. В следующих разделах будет показано, как ASP.NET развивалась на протяжении этих лет.

ASP.NET 1.0 и 1.1

Когда версия ASP.NET 1.0 впервые вышла на арену, она главным образом ориентировалась на модель проектирования веб-страниц посредством так называемых веб-форм (Web Forms). Как будет объясняться позже, модель веб-форм представляет собой просто абстракцию, которая позволяет моделировать страницу в виде комбинации объектов.

При запросе браузером конкретной страницы ASP.NET сначала создает объект для самой страницы, а затем для всех остальных элементов управления ASP NET, которые присутствуют внутри нее. После этого страница и ее элементы управления проходят через ряд событий жизненного цикла, после чего — по завершении обработки страницы — они визуализируют окончательный вариант HTML и удаляются из памяти. За все, что происходит между этим, по большей части отвечает программирование ASP.NET.

ASP.NET 2.0

Благодаря удачному проектному решению ASP.NET 1.0 и 1.1, лишь несколько из появившихся в ASP.NET 2.0 изменений являлись исправлениями для существовавших функциональных возможностей. В целом в ASP.NET 2.0 была сохранена та же самая базовая абстракция (модель веб-форм) и просто добавлены новые возможности более высокого уровня, наиболее заметные из которых перечислены ниже:

Мастер-страницы

Мастер-страницы представляют собой многократно используемые шаблоны страниц. Например, их можно применять для обеспечения внутри каждой страницы в веб-приложении одинакового верхнего колонтитула, нижнего колонтитула и элементов управления навигацией.

Темы

Темы позволяют определять стандартный набор характеристик внешнего вида для веб-элементов управления. После определения их можно применять на веб-сайте, придавая ему единообразный внешний вид.

Навигация

Платформа навигации ASP.NET включает механизм для определения карт сайтов, которые описывают логическую организацию страниц на веб-сайте. Кроме того, имеется также набор навигационных элементов управления, которые используют эту информацию, чтобы предоставить пользователям возможность перемещаться по сайту.

Безопасность и членство

В ASP.NET 2.0 было добавлено несколько средств, связанных с безопасностью, в том числе автоматическая поддержка для хранения учетных данных пользователей, система авторизации на основе ролей и готовые элементы управления для решения типичных задач безопасности, таких как вход в систему, регистрация и восстановление забытого пароля.

Элементы управления источниками данных

Модель элементов управления источниками данных позволяет определять то, как страница взаимодействует с источником данных, декларативным образом в разметке, а не написанием кода доступа к данным вручную. Лучше всего то, что это средство не вынуждает отказываться от удобного проектного решения на основе компонент: привязка к специальному компоненту данных осуществляется так же легко, как напрямую к базе данных.

Веб-части

Веб-приложением одного из наиболее распространенных типов является портал, предусматривающий централизованное размещение различной информации с использованием отдельных панелей на единственной веб-странице. Веб-части (Web Parts) предоставляют готовую платформу для создания портала с плавающей компоновкой, конфигурируемыми представлениями и даже поддержкой перетаскивания.

Профили

Профили позволяют сохранять касающуюся пользователей информацию в базе данных без написания специального кода. Вместо этого ASP.NET берет на себя выполнение всей трудоемкой работы по извлечению данных профилей, когда в этом возникает необходимость, и по их сохранению в случае внесения каких-то изменений.

Модель поставщиков

Многие из появившихся в ASP.NET 2.0 средств работают через абстракцию, которая называется моделью поставщиков. Прелесть этой модели состоит в том, что она позволяет использовать простые поставщики для создания кода страниц. Если требования изменяются, модифицировать страницы не понадобится — достаточно будет просто создать специальный поставщик и обновить конфигурацию веб-сайта.

Например, самые серьезно настроенные разработчики быстро поймут, что стандартная реализация профилей представляет собой слишком универсальное решение, которое может не удовлетворять конкретным имеющимся потребностям.

Например, если необходимо использовать какие-то существующие таблицы базы данных, сохранять зашифрованную информацию или настраивать объем кэшируемых данных для улучшения производительности, эта реализация точно не подойдет. Однако средство профилей можно настроить так, чтобы оно отвечало конкретным потребностям за счет создания собственного поставщика профилей. Это позволит пользоваться удобными средствами профилей, но управлять низкоуровневыми деталями.

Недостаток такого подхода в том, что при этом нужно самому заботиться о решении кое-каких утомительных задач, но зато появляется возможность пользоваться гибкостью и согласованностью модели профилей.

ASP.NET 3.5

Разработчикам, впервые столкнувшимся с версией ASP.NET 3.5, наверняка интересно узнать, что случилось с версией ASP.NET 3.0? Как ни странно, но таковая не существует. В Microsoft под названием .NET Framework 3.0 выпустили набор следующих новых технологий: WPF (Windows Presentation Foundation), представляющая собой новую привлекательную технологию по построению пользовательских интерфейсов для создания многофункциональных клиентов; WCF (Windows Communication Foundation), которая является технологией для создания ориентированных на сообщения служб; и WF (Windows Workflow Foundation) — технология, позволяющая моделировать сложные бизнес-процессы в виде последовательности действий (дополнительно с применением визуального конструктора).


Однако .NET Framework 3.0 не включает новой версии CLR или ASP.NET. Следующая версия ASP.NET появилась в .NET Framework 3.5.

По сравнению с ASP NET 2.0, версия ASP. NET 3.5 представляет собой более плавное развитие. Новые функциональные возможности в этой версии относятся в основном к двум таким технологиями, как LINQ и Ajax.

Технология LINQ

Технология LINQ (Language Integrated Query — язык интегрированных запросов) представляет собой набор расширений для языков C# и Visual Basic. Она позволяет писать на C# или Visual Basic код, способный манипулировать находящимися в памяти данными во многом в той же манере, что и запросы к базе данных.

Исчерпывающую информацию по LINQ ищите в следующем разделе — LINQ.

Технология ASP.NET AJAX

Из-за того, что традиционный код ASP.NET выполняется на веб-сервере, всякий раз, когда на странице происходит какое-то действие, браузеру приходится отправлять серверу данные, получать новую копию страницы и обновлять отображаемый экран.

Этот процесс, хотя и происходит быстро, но сопровождается заметным мерцанием, а также занимает достаточное время, чтобы считаться не практичным для реагирования на часто возникающие события, связанные с перемещением курсора мыши или нажатием клавиш на клавиатуре.

Разработчикам веб-приложений удается обходить подобные ограничения за счет применения языка JavaScript, который является пока что единственным широко поддерживаемым языком для написания клиентских сценариев. В ASP.NET во многих наиболее мощных элементах управления присутствует приличный объем кода JavaScript.

Например, элемент управления Menu немедленно реагирует на наведение пользователем курсора мыши на различные подзаголовки. При его использовании страница не производит обратную отправку серверу до тех пор, пока пользователь не щелкнет на каком-то элементе.

Разработчики используют серверные элементы управления вроде Menu внутри традиционных страниц ASP.NET и получают преимущества, которые предоставляют встроенные в элементы клиентские сценарии. Но даже в случае применения таких более совершенных элементов управления обратная отправка данных серверу все равно неизбежна.

Например, если необходимо обновить информацию в какой-то части страницы, единственно возможным вариантом в случае обычной страницы ASP.NET является обратная отправка этой страницы серверу и получение совершенно нового HTML-документа. Такое решение работает, но далеко от идеала.

Поэтому разработчики начали пытаться решить эти проблемы за счет использования дополнительного клиентского кода и его применения более совершенными способами. Одним из наиболее обсуждаемых на сегодняшний день примеров является технология программирования клиентской стороны под названием Ajax (Asynchronous JavaScript and XML — асинхронный JavaScript и XML).

Ajax позволяет странице связываться с сервером и обновлять содержимое без полной обратной отправки. Обычно в странице Ajax используется код клиентского сценария для выполнения асинхронного запроса «за кулисами». Сервер получает этот запрос, выполняет некоторый код и затем возвращает необходимые странице данные (зачастую в виде блока XML-разметки).

После этого клиентский код получает новые данные и использует их для выполнения еще какого-то действия, например, для обновления части страницы. Хотя концептуально Ajax является довольно простой технологией, она позволяет создавать страницы, которые функционируют очень похоже на непрерывно выполняющиеся приложения.

Чтобы посмотреть на пример работы Ajax не нужно далеко ходить. На нашем сайте данная технология используется в строке поиска. Когда вы вводите текст в поле поиска данные, полученные из базы данных, автоматически обновляются в списке «Полезные ссылки» без перезагрузки самой страницы.

ASP.NET 4

В самой последней версии ASP.NET предлагаются новые улучшения и усовершенствования. Наиболее значительные из них перечислены ниже:

Согласованная визуализация XHTML

В ASP.NET 3.5 стала возможной визуализация веб-страниц ASP.NET в виде HTML-документов, но тогда ничего не подозревающим разработчикам все равно требовалось позаботиться о нескольких вещах (например, корректировать параметры в конфигурационном файле для получения по-настоящему правильного XHTML). В ASP.NET 4 этих шероховатостей больше нет, и XHTML получается достаточно чистым и без всяких требующих внимания особенностей.

Обновленное обнаружение браузера

В ASP.NET 4 поставляются обновленные файлы определений браузеров, что позволяет отвечающему за визуализацию механизму на стороне сервера распознавать и предоставлять корректно направленную поддержку для более широкого спектра браузеров. Улучшена поддержка следующих браузеров: Internet Explorer 8, Firefox 3.5, Opera 10, Safari 4, а также мобильные браузеры для устройств BlackBerry, IPhone, IPad и Windows Mobile.

Сжатие данных состояния сеансов

В NET 2.0 появилось новое пространство имен System.I0.Compression, обеспечивающее поддержку сжатия gzip. Теперь ASP.NET его может использовать для сжатия данных, передаваемых функционирующей за пределами процесса службе состояния сеансов. Применение подобного приема может быть целесообразно только при весьма ограниченных обстоятельствах, но когда это действительно подходит, производительность улучшается почти автоматически.

Состояние представления по запросу

Вместо выборочного отключения состояния представления, отдельно для каждого элемента управления, теперь его можно отключать для всей страницы целиком и затем при необходимости включать. Это дает возможность легко уменьшить размер страницы.

Расширение возможностей для кэширования

Кэширование является одной из главных функций в ASP.NET, но за исключением зависимостей кэша SQL Server, никакими новыми возможностями кэширование со времен .NET 1.0 не пополнялось.

В ASP.NET 4 разработчики из Microsoft, наконец, начали предлагать точки для расширения возможностей кэширования, которые позволят им (и другим разработчикам) использовать новые типы механизмов кэширования, в том числе распределенные решения кэширования вроде Windows Server AppFabric и memcached.

Элемент управления Chart

В течение многих лет разработчики приложений ASP.NET должны были осваивать модель рисования GDI+ или приобретать элементы управления у сторонних производителей для создания более-менее прилично выглядящих диаграмм.

Теперь в составе ASP.NET предлагается впечатляющий элемент управления Chart, который позволяет создавать целый ряд красиво визуализируемых двух- и трехмерных диаграмм (в том числе линейных, столбчатых, с кривыми, секторных, тороидальных и точечных с элементами вроде планок, погрешностей и линий Боллинджера внутри).

Переделанный интерфейс Visual Studio

Хотя интерфейс Visual Studio 2010 в целом сохранил прежний дизайн, он был полностью переделан с использованием .NET и WPF (Windows Presentation Foundation). Кроме того были добавлены новые средства вроде расширенной функции IntelliSense.

Маршрутизация

В ASP.NET MVC включена поддержка для осмысленных и дружественных в отношении поисковых механизмов URL-адресов. В ASP.NET 4 можно использовать ту же самую технологию маршрутизации для перенаправления запросов веб-форм.

Более эффективные инструменты для развертывания

В Visual Studio теперь можно создавать так называемые веб-пакеты т.е. сжатые файлы, включающие в себя содержимое приложения и прочие детали, такие как схемы баз данных SQL Server и настроек IIS.

Веб-пакеты также работают вместе с новым средством трансформации web.config, позволяющим четко разделить параметры, которые должны применяться к тестовой сборке приложения, и параметры, применяемые к развертываемому экземпляру.

Наконец, упрощена загрузка и предварительная компиляция нового развертываемого приложения за счет использования модуля подготовки приложений IIS (Application Warm-Up).

Хотя все перечисленные средства, несомненно, полезны, наиболее впечатляющие новые добавления для разработки приложений ASP. NET поставляются в двух дополнительных компонентах — ASP.NET MVC и ASP.NET Dynamic Data. Оба средства предлагают забыть о части традиционной модели разработки ASP.NET и использовать вместо нее другой подход, обладающий как своими преимуществами, так и своими недостатками.

Во многих отношениях они являются началом нового направления в области программирования веб-приложений. Если какой-то из них подходит для удовлетворения имеющихся потребностей, он может значительно сократить объем выполняемых работ.

Мастер Йода рекомендует:  Lithium Framework c чего начать PHP

Компонент ASP.NET MVC

Компонент ASP.NET MVC (Model-View-Controller — модель-представление-контроллер) предлагает совершенно другой способ для построения веб-страниц по сравнению со стандартной моделью веб-форм.

Суть его состоит в разбиении приложения на три отдельных логических части. Модель включает весь бизнес-код приложения, например, логику доступа к данным и правила верификации. Представление создает для модели подходящее представление за счет ее визуализации в HTML-страницы. Контроллер координирует весь этот процесс за счет обработки операций взаимодействия с пользователем, обновления модели и передачи информации в представление.

В схеме MVC некоторые традиционные концепции ASP.NET, в том числе веб-формы, веб-элементы управления, состояние представления, обратные отправки и состояние сеанса, отходят на второй план. Это вынуждает разработчиков учиться смотреть на вещи по-другому (и мириться с временным спадом продуктивности).

Одним схема MVC кажется более чистой и больше подходящей для веб-приложений. Другие считают, что она заставляет прилагать дополнительные усилия и никакой очевидной выгоды при этом не приносит. Но если хоть какой-нибудь из перечисленных ниже моментов является важным, обязательно стоит рассмотреть вариант применения ASP.NET MVC:

Разработка через тестирование. Благодаря четкому разделению частей в приложении ASP.NET MVC, можно легко создать для него модульные тесты. В случае применения веб-форм автоматизированное тестирование является утомительным и зачастую невозможным.

Контроль над HTML-разметкой. В случае веб-форм программировать приходится с использованием развитого набора объектов, которые сами заботятся об управлении состоянием и генерацией HTML-разметки. В случае ASP.NET MVC содержимое вставляется больше похожим на привязку данных образом.

И хотя это означает, что проектирование страниц со сложным форматированием может потребовать больших усилий, это также означает возможность полностью контролировать каждую деталь в разметке. Это очень полезно при планировании написания какого-то клиентского сценария JavaScript либо использования сторонней библиотеки сценариев JavaScript, такой как jQuery. (С другой стороны, если нет желания возиться с HTML, то веб-формы будут более подходящей платформой для разработки приложений.)

Контроль над URL-адресами. Хотя ASP.NET разработчикам продолжает предлагаться больший контроль над маршрутизацией URL-адресов, в ASP.NET MVC эта концепция является встроенной.

За сопоставление URL-адресов и логики приложения отвечают контроллеры, а это значит, что вместо /Products/List.aspx?category=Beverages можно использовать такие конфигурации URL, как /Products/List/Beverages. Такие понятные и удобные для чтения URL-адреса упрощают и делают более эффективной поисковую оптимизацию.

Однако если вы предпочитаете иметь возможность проектировать приложения быстро за счет применения высокоуровневой модели, способной заботиться об управлении состоянием самостоятельно, и набора многофункциональных веб-элементов управления, то моделью разработки по-прежнему остаются веб-формы.

Компонент ASP.NET Dynamic Data

Компонент ASP.NET Dynamic Data (Динамические данные ASP.NET) представляет собой вспомогательную платформу, которая позволяет быстро создавать управляемые данными приложения. При использовании в сочетании с LINQ to SQL или LINQ to Entities (как бывает практически всегда) он предоставляет комплексное решение, проводящее от схемы базы данных до полнофункционального веб-приложения с поддержкой для просмотра, редактирования, вставки и удаления записей.

Важно понимать, что Dynamic Data является не просто средством для генерации кода и разметки, облегчающим жизнь разработчикам, которые ленятся разрабатывать собственные специальные приложения. Вместо этого он представляет собой основанную на шаблонах, состоящую из различных компонентов и детально настраиваемую платформу, которая идеально подходит для создания приложений, ориентированных на данные.

На самом деле Dynamic Data может рассматриваться как логическое расширение многофункциональных элементов управления данными, которые уже имеются в ASP.NET (наподобие GridView, DetailsView и FormView). Но вместо того, чтобы заставить изменять множество различных элементов управления данными на множестве различных страниц для получения желаемого эффекта, Dynamic Data позволяет использовать шаблоны полей, которые определяются один раз и применяются везде.

Если объединить такое чистое проектное решение с новыми средствами, такими как проверка достоверности на основе схемы данных и упрощенная фильтрация на основе отношений внешнего ключа, то станет сразу же понятно, почему Dynamic Data является столь привлекательной платформой для разработки веб-приложений, фокусирующихся на просмотре и редактировании записей в базах данных.

ASP.NET 2.0. Обзор новых сервисов, элементов управления и средств


Через конструктор класса (за исключением конструктора класса Startup)

Через параметр метода Configure класса Startup

Через параметр метода Invoke компонента middleware

Через свойство RequestServices контекста запроса HttpContext в компонентах middleware (service locator)

Через свойство ApplicationServices объекта IApplicationBuilder в классе Startup

Для работы возьмем проект ASP.NET Core по типу Empty и определим в нем типы IMessageSender и EmailMessageSender:

Параметр метода Configure

Метод Configure класса Startup позволяет напрямую получать зависимость в качестве параметра метода. Например:

Данный способ естественно может применяться только в классе Startup.

Конструкторы

Встроенная в ASP.NET Core система внедрения зависимостей использует конструкторы классов для передачи всех зависимостей. Соответственно в конструкторе контроллера мы можем получить зависимость. Конструкторы являются наиболее предпочтительным вариантом для получения зависимостей.

При получении зависимостей надо учитывать одну особенность: ASP.NET Core поддерживает наличие только одного конструктора, который получает зависимость. Если в классе будет определено два или более конструкторов, где происходит внедрение зависимости, то работа приложения завершится ошибкой.

Например, пусть в проекте определен класс MessageService:

Здесь через конструктор класса передается зависимость от IMessageSender. Причем здесь неизвестно, что это будет за реализация интерфейса IMessageSender.

Изменим класс Startup для использования MessageService:

Чтобы использовать класс MessageService, он внедряется в приложение в виде сервиса. Поскольку это самодостаточная зависимость, которая представляет конкретный класс, то метод services.AddTransient типизируется одним этим типом MessageService.

Но так как класс MessageService использует зависимость IMessageSender, которая передается через конструктор, то нам надо также установить и эту зависимость:

И когда при обработке запроса будет использоваться класс MessageService, для создания объекта этого класса будет вызываться провайдер сервисов. Провайдер сервисов проверят конструктор класса MessageService на наличие зависимостей. Затем создает объекты для всех используемых зависимостей и передает их в конструктор.

В методе Configure сервис MessageService передается в качестве параметра и участвует в обработке запроса.

А результатом работы приложения будет вывод строки:

Данный способ может применяться для передачи зависимостей в конструктор любого класса кроме класса Startup.

HttpContext.RequestServices

Объект HttpContext.RequestServices предоставляет доступ к всем внедренным зависимостям с помощью своих методов:

GetService (): использует провайдер сервисов для создания объекта, который представляет тип service. В случае если в провайдере сервисов для данного сервиса не установлена зависимость, то возвращает значение null

GetRequiredService (): использует провайдер сервисов для создания объекта, который представляет тип service. В случае если в провайдере сервисов для данного сервиса не установлена зависимость, то генерирует исключение

Данный паттерн получения сервиса еще называется service locator , и, как правило, не рекомендуется к использованию, но тем не менее в рамках ASP.NET Core в принципе мы можем использовать подобную функциональность.

Например, изменим класс Startup:

ApplicationServices

Еще один похожий способ представляет получение сервисов через свойство ApplicationServices объекта IApplicationBuilder, который передается в качестве параметра в метод Configure класса Startup:

Метод Invoke/InvokeAsync компонентов middleware

Подобно тому, как зависимости передаются в метод Configure в классе Startup, точно также их можно передавать в метод Invoke компонента middleware. Например,определим следующий компонент:

Применим компонент для обработки запроса в классе Startup:

Знакомство с Microsoft .NET Framework 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. Управление сервисом членства осуществляется через раздел файла Web.config.

Управление ролями

В ASP.NET 2.0 поддержка управления ролями реализована на базе диспетчера ролей, который предоставляет программный интерфейс, основанный на базе класса Roles. Этот класс реализует методы типа CreateRole, DeleteRole, AddUserToRole и позволяет программным образом настраивать роли и назначать их пользователям. Для декларативного управления ролями используются файл конфигурации Web.config и утилита администрирования WebAdmin.axd (рис. 7, 8).

Рис. 8. Настройка механизмов безопасности с помощью утилиты администрирования WebAdmin.axd

Персонализация

Механизм персонализации, реализованный на базе соответствующего сервиса, позволяет сохранять персональные параметры пользователей приложения. Персонализация базируется на профилях пользователей, которые задаются в разделе

файла 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 следующих источников данных

Новый компонент GridView поддерживает отображение и редактирование данных, разбиение на страницы и сортировку без необходимости программирования. Для отображения данных только из одной записи служит компонент DetailsView. Совместное использование компонентов GridView и DetailsView позволяет, в частности, создавать интерфейсы в парадигме «Master/Detail». В ASP.NET 2.0 включены следующие компоненты, способные отображать данные:

— DataGrid (включен для обеспечения совместимости с ASP.NET 1.x),

Навигация — с целью реализации пользовательского интерфейса для навигации между страницами можно использовать такие компоненты, как меню, компонент для отображения древовидной структуры и специальные навигационные пути. Эти компоненты обладают возможностью извлечения информации о навигации из специального навигационного сервиса, реализованного в ASP.NET 2.0. Навигационные пути загружаются в компонент SiteMapPath, а карта сайта отображается в компоненте TreeView. Компонент SiteMapPath может использовать следующие визуальные шаблоны:

Доступ к защищенной информации — для ввода аутентификационной информации (логин и пароль) в ASP.NET 2.0 используется компонент Login. Различные опции восстановления пароля доступны через использование компонента PasswordRecovery. Информация о пользователе отображается компонентом LoginName, компонент LoginStatus поддерживает отображение кнопок Login и Logout, а компонент LoginView служит для обеспечения доступа к содержимому страницы только аутентифицированных пользователей.

Доступны следующие компоненты:

Портальные компоненты — набор компонентов Web Parts служит для создания порталов. Эти компоненты поддерживают многочисленные настройки, включая редактирование содержимого, местоположение компонентов на странице и т.п.

Мастер Йода рекомендует:  Есть ли будущее у Whois-сервиса

Почему ASP.NET не используют в крупных компаниях?

В настоящий момент С# (asp.net) имеет целый ряд преимуществ над тем, что нам дает Java (в плане удобства и синтаксиса языка). Это правда!

Проблема заключается в том, что Java появился раньше, Java был открытым для использования на Linux. В итоге под сервера на Java написали огромный список уникальных решений, которые сейчас используют топовые команды (посмотри, что такое хадуп, например). В итоге, компании либо не видели смысла переписывать все на C#, так как уже имели билды на Java, либо не хотели тратить время на разработку того, что уже есть на Java.

Именно по этой причине Microsoft сейчас активно начинает спариваться с Linux и везде кричит, что они его любят.

ГЛАВА 23. Web-страницы и Web-элементы управления ASP.NET 2.0

ГЛАВА 23. Web-страницы и Web-элементы управления ASP.NET 2.0

До сих пор все примеры приложений в этой книге касались консольных приложений и приложений Windows Forms. В этой главе и далее мы выясним, каким образом платформа .NET упрощает задачу построения приложений о интерфейсом на основе браузера, Но сначала мы обсудим ряд ключевых для Web понятий (таких, как HTTP, HTML, сценарий клиента и сервера), а также роль Web-сервера (включая сервер разработки ASP.NET, WebDev.Webserver.exe),

На основе полученной информации в оставшейся части главы мы сконцентрируемся на компонентах ASP.NET (включая усовершенствованную модель страницы с внешним кодом поддержки) и на использовании Web-элементов управления ASP.NET. Вы увидите, что ASP.NET 2.0 предлагает целый ряд новых элементов управления, новую модель «шаблона» страницы и новые возможности настройки Web-страниц.

Похожие главы из других книг

Элементы управления

Элементы управления С левой стороны окна программы AutoPlay Menu Builder находится панель инструментов Элементы управления, на которой расположены значки управления. Добавить необходимый элемент управления в рабочее окно программы можно следующими способами.• Двойным щелчком

Элементы управления

Элементы управления Элементы управления бывают нескольких видов. Часто используемые и простые для восприятия – кнопки (рис. 8.10). Рис. 8.10. КнопкиОни бывают разных размеров, форм и цветов. На них могут быть нанесены как текст, так и изображение, а иногда и текст, и

Элементы управления

Элементы управления Кроме стандартных элементов управления, присутствующих в большинстве приложений: кнопок, текстовых полей ввода, полос прокрутки и т. п., в интерфейсе программы Sound Forge используются некоторые специфические элементы. Применение этих элементов связано с

HTML-элементы управления и серверные элементы управления

HTML-элементы управления и серверные элементы управления Еще одной новинкой технологии ASP.NET является использование серверных элементов управления. Серверный элемент управления кодируется в Web-странице, а все его события и свойства обрабатываются Web-сервером. Серверные

ГЛАВА 20. Web-формы и элементы управления

ГЛАВА 20. Web-формы и элементы управления В предыдущих главах мы проделали большую работу. Во-первых, реализовали подгрузку фрагментов содержимого Web-страницы вместо загрузки целых Web- страниц. Во-вторых, сделали часть содержимого Web-страниц, а именно полосу навигации,

Web-формы и элементы управления HTML

Web-формы и элементы управления HTML Очень просто. Язык HTML предоставляет набор тегов для создания разнообразных элементов управления. Эти элементы управления уже «умеют» откликаться на действия посетителя: поля ввода — принимать введенные символы, флажки — устанавливаться

Прочие элементы управления

Прочие элементы управления HTML позволяет создать еще несколько элементов управления, которые необходимы только для взаимодействия с серверными приложениями. Если же Web-форма служит для ввода данных, предназначенных для обработки Web-сценарием, эти элементы управления не

ГЛАВА 21. Свободно позиционируемые элементы Web-страницы

ГЛАВА 21. Свободно позиционируемые элементы Web-страницы В предыдущей главе мы познакомились с Web-формами и элементами управления, HTML-тегами для их создания и средствами объектов Web-обозревателя и библиотеки Ext Core для работы с ними. На основе этих элементов управления и базы


ГЛАВА 20. Web-формы и элементы управления

ГЛАВА 20. Web-формы и элементы управления В предыдущих главах мы проделали большую работу. Во-первых, реализовали подгрузку фрагментов содержимого Web-страницы вместо загрузки целых Web-страниц. Во-вторых, сделали часть содержимого Web-страниц, а именно полосу навигации,

Web-формы и элементы управления HTML

Web-формы и элементы управления HTML Очень просто. Язык HTML предоставляет набор тегов для создания разнообразных элементов управления. Эти элементы управления уже «умеют» откликаться на действия посетителя: поля ввода — принимать введенные символы, флажки — устанавливаться

Прочие элементы управления

Прочие элементы управления HTML позволяет создать еще несколько элементов управления, которые необходимы только для взаимодействия с серверными приложениями. Если же Web-форма служит для ввода данных, предназначенных для обработки Web-сценарием, эти элементы управления не

ГЛАВА 21. Свободно позиционируемые элементы Web-страницы

ГЛАВА 21. Свободно позиционируемые элементы Web-страницы В предыдущей главе мы познакомились с Web-формами и элементами управления, HTML-тегами для их создания и средствами объектов Web-обозревателя и библиотеки Ext Core для работы с ними. На основе этих элементов управления и

Глава 3 Элементы управления

Глава 3 Элементы управления Сходство и различия Несмотря на свою схожесть, .NET Compact Framework уступает в функциональности базовой библиотеке .NET Framework. Это относится и к элементам управления. К счастью, кнопки, списки и текстовые поля все же присутствуют в мобильной версии.

Элементы управления

Элементы управления В этом разделе будут рассмотрены основные элементы управления, которые используются для формирования пользовательского интерфейса. Особое внимание будет уделено различиям и особенностям поведения этих

Глава 4 Улучшаем элементы управления

Глава 4 Улучшаем элементы управления В каждой новой версии Visual Studio .NET разработчики из Microsoft добавляют новые элементы управления, а также улучшают функциональность уже существующих элементов. Особенно это заметно на примере .NET Compact Framework. Уже простое сравнение имеющихся

Элементы управления

Элементы управления Так как пользователь лишен возможности пользоваться стилусом, то многие элементы управления смартфонами не поддерживаются.В этом легко убедиться, достаточно лишь взглянуть на панель инструментов проекта для смарфтонов, чтобы увидеть, как резко

ASP.NET 2.0. Обзор новых сервисов, элементов управления и средств

ЧАСТЬ V. Web-приложения и Web-сервисы XML

ГЛАВА 23. Web-страницы и Web-элементы управления ASP.NET 2.0

До сих пор все примеры приложений в этой книге касались консольных приложений и приложений Windows Forms. В этой главе и далее мы выясним, каким образом платформа .NET упрощает задачу построения приложений о интерфейсом на основе браузера, Но сначала мы обсудим ряд ключевых для Web понятий (таких, как HTTP, HTML, сценарий клиента и сервера), а также роль Web-сервера (включая сервер разработки ASP.NET, WebDev.Webserver.exe),

На основе полученной информации в оставшейся части главы мы сконцентрируемся на компонентах ASP.NET (включая усовершенствованную модель страницы с внешним кодом поддержки) и на использовании Web-элементов управления ASP.NET. Вы увидите, что ASP.NET 2.0 предлагает целый ряд новых элементов управления, новую модель «шаблона» страницы и новые возможности настройки Web-страниц.

Web-приложения очень сильно отличаются от традиционных приложений для настольных систем. Первым очевидным отличием является то, что любое реальное Web-приложение предполагает использование, как минимум, двух соединенных в сеть, машин (конечно, при разработке приложения вполне возможно, чтобы роли клиента и сервера играла одна машина). Задействованные машины должны согласовать использование определенного сетевого протокола для успешного осуществления отправки и приёма данных. Сетевым протоколом, соединяющим компьютеры в рассматриваемом нами случае, является протокол HTTP (Hypertext Transfer Protocol – протокол передачи гипертекста).

Когда машина-клиент запускает Web-браузер (такой, как Netscape Navigator, Mozilla Firefox или Microsoft Internet Explorer), генерируется HTTP-запрос доступа к конкретному ресурсу (например, к файлу *.aspx или *.htm) на удаленной машине-сервере. Протокол HTTP – это текстовый протокол, построенный на стандартной парадигме запросов и ответов. Например, при обращении к http://www.IntertechTraining.com программное обеспечение браузера использует Web-технологию, называемую сервисом DNS (Domain Name Service – служба имен доменов), которая позволяет превратить зарегистрированный адрес URL в 4-байтовое (32-разрядное) числовое значение (называемое IP-адресом). После этого браузер открывает сокет (обычно через порт с номером 80) и посылает HTTP-запрос странице, используемой Web-узлом http://www.IntertechTraining.com по умолчанию. Осуществляющий хостинг Web-сервер получает поступающий HTTP-запрос, и указанный в запросе ресурс может содержать программную логику, способную прочитать значения, введенные клиентом (например, в окне текстового блока), чтобы сформировать HTTP-ответ, Разработчик Web-программы может использовать любые технологии (CGI, ASP, ASP.NET, сервлеты Java и т.д.), чтобы динамически генерировать содержимое HTTP-ответа. Затем браузер клиента отображает HTML-код, полученный от Web-сервера. На рис. 23.1 показана общая схема цикла запросов-ответов HTTP.

Рис. 23.1. Цикл запросов и ответов HTTP

Другой особенностью Web-разработки, заметно отличающей ее от программирования традиционных приложений, оказывается то, что протокол HTTP является сетевым протоколом, не сохраняющим состояние. Как только Web-сервер отправляет ответ клиенту, вся информация о предыдущем взаимодействии оказывается «забытой». Поэтому на вас, как Web-разработчика, возлагается задача принятия специальных мер, обеспечивающих «запоминание» соответствующей информации о клиентах, которые в настоящий момент оказываются зарегистрированными на вашем узле (такой информацией может быть, например, список товаров в корзине покупателя). В следующей главе вы сможете убедиться в том, что ASP.NET обеспечивает целый ряд способов обработки состояния, причем как стандартных для всех Web-платформ (это сеансовые переменные, файлы cookie и переменные приложения), так и новых (визуальные состояния, состояния элементов и кэш).

Web-приложения и Web-серверы

Под Web-приложением можно понимать коллекцию файлов (*.htm, *.asp, ‘*.aspx, файлы изображений и т.д.) и связанных компонентов (например, таких как библиотека программного кода .NET), хранимых в отдельном семействе каталогов на данном Web-сервере. Как будет показано в главе 24, Web-приложения имеют специфический цикл существования и поддерживают множество специальных событий (например, события начальной загрузки и окончательного завершения работы), которые вы можете обработать.

Web-сервер — это программный продукт, обеспечивающий хостинг для ваших Web-приложений, и, как правило, предлагающий целый ряд сопутствующих сервисов, таких как, например, интегрированные службы безопасности, поддержка FTP (File Transfer Protocol – протокол передачи файлов), службы обмена почтовыми сообщениями и т.д. Web-сервером производственного уровня является сервер IIS (Internet Information Server – информационный сервер Интернет) от Microsoft, который, как вы можете догадаться, предлагает внутреннюю поддержку и «классических» Web-приложений ASP, и Web-приложений ASP.NET.

При создании Web-приложений ASP.NET вам потребуется взаимодействие с IIS. И здесь важно подчеркнуть, что сервер IIS по умолчанию при установке Windows Server 2003 или Windows XP Professional Edition не устанавливается (а среда Windows XP Home Edition поддержку IIS не предлагает вообще). Поэтому, в зависимости от конфигурации вашей машины разработки, вам, возможно, придется установить IIS вручную. Для этого откройте окно Установка и удаление программ (Add/Remove Program) из папки Панель управления (Control Panel) и выберите в нем Установка компонентов Windows (Add/Remove Windows Components).

Замечание. Сервер IIS лучше установить до установки .NET Framework. Если установить IIS после установки .NET Framework, то Web-приложения ASP.NET не будут выполняться корректно (вы увидите только пустые страницы). К счастью, можно настроить IIS на поддержку .NET-приложе-ний с помощью запуска утилиты командной строки aspnet_regiis.exe (с флагом /i).

В предположении о том, что на вашей рабочей станции сервер IIS установлен должным образом, вы сможете взаимодействовать с IIS из папки Администрирование (размещенной в папке Панель управления). Для работы с материалом этой шалы нас будет интересовать только узел Web-узел по умолчанию (Default Web Site), рис. 23.1.

Рис. 23.2. Окно оснастки IIS

Работа с виртуальными каталогами IIS

Одна инсталляция IIS способна обслуживать множество Web-приложений, каждое из которых размещается в своем виртуальном каталоге. Каждый виртуальный каталог проецируется в физический каталог на локальном жестком диске. Так, если вы создадите новый виртуальный каталог с именем CarsRUs, внешние пользователи смогут просматривать этот узел, используя, например, адрес URL http://www.CarsRUs.com (в предположении о том, что IР-адрес вашего узла имеет всемирную регистрацию). В фоновом режиме виртуальный каталог отображается в соответствующий физический корневой каталог, например, в C:\inetpub\www-root\AspNetCarsSite, в котором находится содержимое Web-приложения.

При создании Web-приложения ASP.NET с помощью Visual Studio 2005 вы имеете возможность генерировать новый виртуальный каталог для текущего Web-узла. Вы также можете создать виртуальный каталог вручную. Для примера предположим, что нам нужно создать простое Web-приложение с именем Cars. Первым шагом при этом оказывается создание на машине новой папки (например, папки C:\CodeTests\CarsWebSite), которая будет содержать коллекцию файлов, компонующих новый узел.

Затем нужно создать новый виртуальный каталог для узла Cars. Просто щелкните в окне IIS правой кнопкой мыши в строке Веб-узел по умолчанию и выберите Создать>Виртуальный каталог из появившегося контекстного меню. Будет запущен интегрированный мастер создания виртуальных каталогов. Перейдите от окна приветствия к следующему окну и укажите для вашего Web-узла подходящий псевдоним (Cars). Далее вас попросят указать физическую папку на жестком диске, которая содержит файлы и изображения, используемые для этого узла (для нашего примера это папка C:\CodeTests\CarsWebSite).

На заключительном шаге мастер запрашивает информацию о правах доступа к новому виртуальному каталогу (разрешение доступа к файлам дли чтения/записи, обзора файлов с помощью Web-браузера, запуска выполняемых файлов и т.д.), Для нашего примера вполне подойдет вариант выбора, предлагаемый мастером по умолчанию (тем более, что вы в любое время можете изменить эти настройки, открыв окно свойств с помощью щелчка правой кнопкой мыши в любом из окон, интегрированных в IIS). По завершении работы мастера вы увидите в окне IIS новый виртуальный каталог (рис. 23.3).

Рис. 23.3. Виртуальный каталог Cars

Сервер разработки ASP.NET 2.0

Комплект поставки ASP.NET 2.0 содержит «облегченную» версию Web-сервера под названием WebDev.WebServer.exe. Эта утилита позволяет разработчику осуществлять хостинг Web-приложений ASP.NET 2.0 за границами IIS. С помощью этого инструмента вы можете строить и проверять Web-страницы из любого каталога на своей машине (что очень удобно при разработке сценариев в группе разработчиков и при создании Web-программ ASP.NET 2.0 в среде ОС Windows XP Home Edition, которая не поддерживает US).

Замечание. Сервер WebDev.WebServer.exe нельзя использовать для тестирования «классических» Web-приложений ASP.

При построении Web-узла с помощью Visual Studio 2005 вы имеете возможность использовать WebDev.WebServer.exe для обслуживания создаваемых страниц. Но вы также имеете возможность взаимодействовать с этим инструментом вручную из командной строки .NET. Если ввести команду

вы увидите окно сообщения, в котором будут описаны действительные опции командной строки. В сущности, вам нужно указать неиспользуемый порт с помощью опции /port:, корневой каталог Web-приложения с помощью опции /path: и необязательный виртуальный путь с помощью опции /vpath: (если вы не укажете значение /vpath:, по умолчанию используется значение /). Рассмотрим следующий пример.

WebDev.WebServer.exe /port: 12345 /path:»C:\CodeTests\CarsWebSite»

После ввода этой команды вы можете запустить свой любимый Web-браузер для запроса соответствующих страниц. Так, если в папке CarsWebSite содержится файл с именем MyPage.aspx, вы можете ввести следующий адрес URL.

Во многих примерах из этой и следующей глав WebDev.WebServer.exe будет использоваться через Visual Studio 2005. Следует учитывать то, что этот Web-сервер не предназначен для хостинга Web-приложений производственного уровня, он предназначен исключительно для целей разработки и тестирования.

Замечание. Проект Mono (см. главу 1) предлагает бесплатное расширение ASP.NET для Web-сервера Apache. За более подробной информацией обратитесь по адресу: http://www.mono-project.com/ASP.NET

Сконфигурировав каталог для своего Web-приложения, вы должны создать и его содержимое. Напомним, что Web-приложение — это просто термин используемый для обозначения множества файлов, обеспечивающих функционирование узла, Значительная часть этих файлов будет содержать синтаксические лексемы, определенные в рамках HTML (Hypertext Markup Language – язык гипертекстовой разметки). HTML – это стандартный язык, используемый для описания того, как в окне браузера клиента должна выполняться визуализация буквального текста, изображений, внешних ссылок и различных элементов графическом) интерфейса.

Этот специальный аспект Web-разработки является одной из главных причин столь распространенной нелюбви программистов, которую они испытывают к разработке Web-программ. И хотя современные средства Web-разработки (включан Visual Studio 2005) и платформы (такие как ASP.NET) генерируют большинство HTML-кода автоматически, сегодня для успешной работы с ASP.NET все еще важно хорошо понимать этот язык. Данный раздел, конечно же, ни в коей мере не претендует на охват всех аспектов HTML, но давайте рассмотрим основные.

Файл HTML состоит из множества дескрипторов, описывающих представление данной Web-страницы. Как и следует ожидать, базовая структура любого HTML-документа примерно одинакова. Например, файлы *.htm (или, альтернативно, файлы *.html) открываются и закрываются дескрипторами ‹html› и ‹/html›, обычно в них определяется раздел ‹body› и т.д. Следует иметь в виду, что HTML не чувствителен к регистру символов. Поэтому для браузера ‹HTML›, ‹html› и ‹Html› оказываются идентичными.

Для демонстрации некоторых базовых возможностей HTML откройте Visual Studio 2005, создайте пустой HTML-файл, выбрав File>New>File из меню, и сохраните этот файл под именем default.htm в каталоге C:\CodeTests\CarsWebSite. Наша исходная разметка весьма незамысловата.

Дескрипторы ‹html› и ‹/html› используются для обозначения начала и конца документа. Как вы можете догадаться, Web-браузер использует эти дескрипторы, чтобы выяснить, с какого места следует начать и где следует закончить обработку признаков форматирования, указанных в главной части документа. Почти все содержимое документа определяется в рамках дескриптора ‹body›. Чтобы немного «оживить» страницу, определите ее заголовок так, как показано ниже.

Вы, наверное, догадались, что дескрипторы ‹title› используются для обозначения текстовой строки, которая при вызове этой страницы должна размещаться в строке заголовка окна Web-браузера.

Реальное действие в файле *.htm происходит в рамках элементов ‹form›. HTML-форма — это просто именованная группа связанных элементов пользовательского интерфейса, используемых для сбора данных пользовательского ввода, которые затем передаются Web-приложению по протоколу HTTP. He следует путать HTML-форму со всей областью окна браузера. Фактически HTML-форма представляет собой логическое объединение элементов, размещенных между дескрипторами ‹form› и ‹/form›.

Для id и name этой формы указано значение default Page. Как правило, открывающий дескриптор ‹form› задает также атрибут aсtion, указывающий адрес URL, по которому следует передать данные формы, и метод передали этих данных (POST или GET). Эти возможности дескриптора ‹form› мы рассмотрим чуть позже. Пока чего давайте выясним, какие элементы могут размещаться в HTML-форме. В панели инструментов Visual Studio 2005 предлагается специальный раздел HTML, в котором сгруппированы связанные с HTML элементы управления (рис. 23.4).

Мастер Йода рекомендует:  Как Facebook масштабирует архитектуру чата с нагрузкой в миллиарды сообщений в день

Рис. 23.4. Раздел HTML в окне панели инструментов

Создание пользовательского интерфейса на базе HTML

Перед добавлением HTML-элементов в HTML-форму важно заметить, что Visual Studio 2005 позволяет редактировать содержимое файлов *.htm с помощью интегрированного HTML-редактора и окна свойств. При выборе DOCUMENT в окне свойств (рис. 23.5) вы получаете возможность настройки ряда параметров HTML-страницы, например цвета ее фона.

Архитектура ASP.NET 2.0


Постаравшись разобраться с внутренней инфраструктурой ASP.NET версии 2.0 можно обнаружить, что в ней нет никаких глобальных отличий от инфраструктуры версии 1.х. В жизненный цикл страницы добавились новые события, разработчик получил возможность использовать множество новых объектов и элементов управления, но общие принципы обработки HTTP остались те же, поскольку вероятность придумать что-либо более подходящее под концепцию ASP.NET представляется весьма небольшой.

В этой статье будут рассмотрены основные усовершенствования в модели компиляции ASP.NET страниц, разделение кода и представления и взаимодействие среды выполнения ASP.NET с веб-сервером IIS.

Среда выполнения ASP.NET и веб-сервер IIS

Параллельное использование с предыдущими версиями ASP.NET

Поскольку в ASP.NET 2.0 присутствуют изменения, которые могут стать фатальными для использующих предыдущие версии ASP.NET веб-приложений, разработчики и IIS предусмотрели возможность использовать разные версии ASP.NET для разных приложений на одном сервере.

В консоли управления веб-сервером IIS можно выбрать версию ASP.NET, которая будет использована для каждого приложения, а также установить версию ASP.NET, которая будет использоваться вновь создаваемыми приложениями.

Рис. 1. Конфигурирование версии ASP.NET

Эта возможность позволяет продолжить работу с веб-приложениями, созданными с использованием предыдущих версий ASP.NET.

Ручная установка ASP.NET

Для ручной установки, которая может понадобиться, если .NET Framework был установлен до установки веб-сервера IIS или по какой-либо другой причине, используется утилита командной строки aspnet_regiis.exe, которую можно найти в директории %WINDIR%\Microsoft.NET\Framework\v2.0.50727\.

Ключ Описание
-i Полная установка. Регистрирует ASP.NET 2.0 для сервера IIS и обновляет регистрацию для всех веб-приложений.
-ir Только регистрирует ASP.NET 2.0 для сервера IIS. Веб-приложения продолжают использовать ранее установленную версию ASP.NET.
-s Обновляет регистрацию для приложений, находящихся в директории и всех вложенных директориях.
-sn Обновляет регистрацию для приложений, находящихся только в директории . Не затрагивает регистрацию приложений, находящихся во вложенных директориях.
-lv Показывает список всех установленных версий ASP.NET.
-lk Показывает список всех приложений и зарегистрированную для них версию ASP.NET.

Взаимодействие с IIS

Следует отметить, что веб-серверы IIS 5 и IIS 6 по-разному взаимодействуют с ASP.NET 2.0, поскольку для этих двух версий IIS используются разные модели обработки запросов.

При использовании IIS 5, среда выполнения ASP.NET представлена отдельным процессом aspnet_wp.exe. Этот процесс получает управление от IIS с помощью ASP.NET ISAPI расширения aspnet_isapi.dll. Если расширение запрошенного ресурса связано с ASP.NET ISAPI расширением, то запрос поступает на обработку рабочим процессом ASP.NET, который, в свою очередь, отвечает за загрузку CLR, создание управляемых объектов и выстраивания очереди событий для ASP.NET страницы. В этом случае особенно важно отметить, что рабочий процесс aspnet_wp.exe обслуживает все веб-приложения: каждое приложение выполняется в отдельном домене приложения AppDomain в рамках одного рабочего процесса. Рабочий процесс выполняется под специальной учетной записью ASPNET.

Процесс обработки запроса при использовании IIS 5 может быть разбит на следующие шаги:

  1. IIS получает запрос, определяет тип ресурса и, если данный тип связан с ASP.NET, передает его на обработку расширению aspnet_isapi.dll. ISAPI расширение передает запрос на дальнейшую обработку рабочему процессу ASP.NET.
  2. После получения запроса, рабочий процесс передает сообщение ISAPI расширению, сообщая о том, что запрос будет обработан.
  3. Запрос выполняется в контексте рабочего процесса ASP.NET.
  4. После окончания выполнения, рабочий процесс передает данные ISAPI расширению, которое отвечает за освобождение ресурсов, занятых рабочим процессом.

В случае использования IIS 6 модель обработки запросов несколько меняется, поскольку IIS 6 используем модель пула приложений – отдельного рабочего процесса, который обслуживает одно или несколько веб-приложений. Каждый пул приложений обслуживается отдельным экземпляром рабочего процесса w3wp.exe.

IIS 6 использует для получения и обработки запросов драйвер, работающий на уровне ядра операционной системы http.sys, все запросы проходят через этот драйвер, который отвечает за сопоставление запроса соответствующему пулу приложений. Рабочий процесс, обслуживающий пул приложений, загружает необходимые ISAPI расширения. В случае ASP.NET это рашсирение aspnet_isapi.dll, которое в свою очередь загружает CLR и начинает обработку HTTP запроса. Рабочие процессы выполняются под учетной записью NetworkService.

Структура ASP.NET страницы и модель компиляции

Структура страницы ASP.NET 2.0 не отличается от структуры страниц ASP.NET 1.х. Страница по-прежнему разделена на две основные части: директивы и представление. Код программной логики страницы может быть вынесен в отдельный файл (выделенный код, Code Behind), либо включен в представление страницы в качестве блока

Класс страницы, использующей функции с обратным вызовом должен реализовывать интерфейс ICallbackEventHandler.

Сигнатуры функций, поддерживающие обратный вызов выглядят следующим образом:

Последним шагом к поставленной цели является связывание серверной и клиентских функций.

Метод GetCallbackEventReference объекта ClientScriptManager принимает в качестве параметров ссылку на объект страницы, строку, указывающую на значение, которое необходимо передавать на сервер при обратном вызове, имя метода на стороне клиента и принимающего ответ сервера. Подробное описание можно получить в документации MSDN или с помощью инструмента Visual Studio — Object Browser.

Используя эту технологию можно создавать сложные методы обновления данных страницы и позволяющие получить значительный выигрыш в производительности, для этого достаточно разобраться в том, какой код генерирует среда выполнения ASP.NET, реализуя эту функциональность.

Стандартная функция doPostBack весьма проста и служит для сохранения данных о событии в скрытые поля формы.

Серверные элементы управления ASP.NET

Важной особенностью ASP.NET является использование серверных элементов управления на веб-странице (элементы WebForm), которые являются фактически тэгами, понятными веб-серверу. Эти элементы определены в пространстве имен System.Web.UI.WebControls.

Принято выделять три типа серверных элементов управления:

  • Серверные элементы управления HTML – обычные HTML тэги.
  • Элементы управления веб-сервера – новые тэги ASP.NET.
  • Серверные элементы управления для проверки данных (валидации) – применяются для валидации входных данных от клиентского приложения (обычно веб-браузера).

Преимущества от использования таких элементов при разработке веб-приложений:

  • Сокращается количество кода, написанного вручную (что особенно заметно в для сложных элементов документа). Элемент просто «перетаскивается» из панели инструментов, после чего выполняется настройка его параметров в специальном окне. При этом все изменения автоматически заносятся непосредственно в *.aspx файл.
  • С программной точки зрения каждому из этих элементов управления соответствует определенный класс в библиотеке базовых классов .NET, что позволяет писать для них такой же код как и для любых других классов.
  • Для любого элемента управления WebForm определен набор событий, обрабатываемых на веб-сервере.
  • Для любого элемента управления WebForm предоставляется возможность для проверки ввода данных пользователем.

По умолчанию серверные элементы управления HTML в ASP.NET файлах рассматриваются как текст. Для их программирования требуется добавление атрибута runat=»server» в соответствующий HTML элемент. Кроме того, все серверные элементы управления HTML должны быть размещены внутри области действия тэга

Лучшие изречения: На стипендию можно купить что-нибудь, но не больше. 8977 — | 7233 — или читать все.

91.105.232.77 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Технология ASP.NET

Читайте также:

  1. Art Parts — технология использования политипажей
  2. ASP.NET
  3. CASE-технология создания информационных систем.
  4. Автоматизированная информационная технология в составе АЭИС
  5. Анализ факторов риска и технология снижения предпринимательского риска
  6. Ассортимент и технология блюд из рыбы и нерыбных морепродуктов.
  7. Ассортимент и технология блюд из яиц.
  8. Балы и дискотеки: технология подготовки и проведения.
  9. Бездокументная технология перевозок
  10. Беседы, конференции, работа лекторских групп: технология подготовки и проведения.
  11. Беспроводные сети (ИК-технология)
  12. В различных педагогических технологиях

А.А. Волосевич

ЯЗЫК C# И ПЛАТФОРМА .NET

для студентов специальности I-31 03 04 «Информатика»

всех форм обучения

5. Технология ASP.NET.. 4

5.1. общие концепции ASP.NET.. 4

5.2. ВЕБ-Приложение.. 7

5.3. СТРУКТУРА aspx-ФАЙЛА.. 8

5.4. ДИРЕКТИВЫ СТРАНИЦЫ. 10

5.5. Класс SYSTEM.WEB.UI.Page.. 14

5.6. ЖИзненный цикл страницы. 19

5.7. ОБЩИЙ ОБЗОР СЕРВЕРНЫХ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ.. 26

5.8. ЭЛЕМЕНТЫ УПРАВЛЕНИЯ HTML.. 30

5.9. ЭЛЕМЕНТЫ УПРАВЛЕНИЯ WEB.. 34

5.10. Проверочные элементы управления.. 39

5.11. Эталонные страницы и темы. 43

5.12. Некоторые приёмы работы со страницами.. 49


5.13. Связывание с данными.. 53

5.14. Списковые элементы управления.. 55

5.15. Элементы управления для Источников данных.. 57

5.16. Таблицы, связанные с данными.. 65

5.17. ОТОБражение отдельных записей.. 71

5.18. КОНФИГУРИРОВАНИЕ ВЕБ-ПРИЛОЖЕНИЙ.. 74

5.19. ИНФРАСТРУКТУРА ОБРАБОТКИ зАПРОСА.. 75

5.20. ВЕБ-ПРИЛОЖЕНИЕ И ФАЙЛ GLOBAL.ASAX.. 79

5.21. МОДЕЛЬ ПОСТАВЩИКОВ.. 81

5.22. Поддержка Сохранения Состояния.. 83

5.23. Кэширование в ASp.NET.. 89

5.24. ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТи В ВЕБ-ПРИЛОЖЕНИЯХ.. 94

5.25. УПРАВЛЕНИЕ ЧЛЕНСТВОМ И РОЛями.. 98

5.26. Профили пользователя.. 106

5.27. Локализация и ресурсы. 109

5.28. пользовательские элементы управления.. 111

5.1. общие концепции ASP.NET

В этом параграфе рассматриваются базовые концепции и понятия технологии ASP.NET. Вначале рассмотрим схему работы в сети Интернет, которую можно назвать классической, так как эта схема является исторически первой. Основными элементами классической схемы являются браузер и веб-сервер. При взаимодействии браузера и веб-сервера выполняются следующие шаги:

1. Браузер формирует запрос к серверу, используя протокол HTTP. Как правило, браузер запрашивает HTML-страницу, то есть текстовый файл, содержащий HTML-код.

2. Сервер анализирует запрос браузера и извлекает из локального хранилища требуемый файл.

3. Сервер формирует HTTP-ответ, включающий требуемую информацию, и отсылает его браузеру по протоколу HTTP.

4. Браузер выполняет отображение страницы.

Классическая схема проста, но обладает существенным недостатком – страницы статичны, и их содержимое не может меняться на сервере в зависимости от запросов клиента. В настоящее время подобный подход не соответствует большинству информационных услуг, предоставляемых с помощью сети Интернет[1]. Все большее распространение получают технологии, при использовании которых страницы (целиком или частично) генерируются на сервере непосредственно перед отправкой клиенту. Работают технологии «серверных страниц» по схожим принципам:

· Для представления информации на сайте используются не страницы с HTML-кодом, а серверные страницы специального синтаксиса (который часто является HTML-подобным).

· При запросе серверной страницы веб-сервер запускает отдельный служебный процесс, которому перенаправляется запрос.

· В служебном процессе страница анализируется, по ней генерируется некий объект, соответствующий странице.

· Служебный процесс выполняет методы сгенерированного объекта. Как правило, объект имеет специальный метод, генерирующий выходной поток страницы в виде HTML-кода.

· Выходной HTML-поток перенаправляется веб-серверу, который формирует HTTP-ответ и отсылает его браузеру.

· Браузер выполняет отображение страницы.

Далее выделим особенности, присущие технологии ASP.NET.

§ Работа с управляемым кодом. Служебный процесс ASP.NET основан на управляемом коде. Запросы к каждому веб-приложению обрабатываются в отдельном домене служебного процесса. Серверной странице ставиться в соответствие пользовательский класс, объект которого непосредственно генерирует страницу. Также доступны стандартные для .NET библиотеки классов и возможности межъязыкового взаимодействия.

§ Разделение кода и представления. Данная концепция также называется Code Behind. Согласно ей желательно, чтобы страница ASP.NET состояла из двух частей: файла с описанием вида страницы (разметка, элементы управления) и файла с кодом методов страницы. Эти два файла могут компилироваться в отдельные классы или представлять собой частичный класс. При изменении любого из файлов на сервере происходит перекомпиляция страницы.

§ Серверные элементы управления. Для конструирования страницы ASP.NET содержит несколько десятков специальных серверных элементов управления. Каждый такой элемент в конечном итоге транслируется в один или несколько обычных элементов HTML. Серверные элементы управления поддерживают событийную модель, содержат большое количество настраиваемых свойств. Они предоставляют более высокий уровень абстракции в сравнение с классическими элементами управления HTML. Кроме этого, имеется возможность создавать собственные серверные элементы управления.

§ Событийная модель. Технология ASP.NET пытается перенести на веб-программирование принципы, используемые при написании приложений Windows Forms. Речь идет о программировании, основанном на обработке событий. Отдельный серверный элемент управления ASP.NET, как правило, обладает набором некоторых событий. Например, у элемента Button (кнопка) есть событие OnClick. Для того чтобы закодировать логику страницы, программист пишет обработчики соответствующих событий. Когда событие происходит, информация о нём пересылается от клиента на сервер, где срабатывает обработчик события. Затем страница вновь пересылается клиенту. Подчеркнем следующие важные детали. Во-первых, основой реализации событийной модели является схема, при которой страница отсылает запросы сама к себе. Во-вторых, чтобы страница сохраняла свое состояние между отдельными циклами приёма-передачи, это состояние фиксируется в специальном скрытом поле страницы. Этот технологический прием называется в ASP.NET поддержкой состояния представления страницы (коротко – поддержка View State). И, наконец, ASP.NET пытается перенести событийную модель на возможно большее количество классических элементов управления HTML. Для реализации этого используются «вкрапления» в страницу клиентских скриптов.

§ Поддержка пользовательских сессий и кэширование. В ASP.NET существует богатый набор встроенных возможностей для работы с данными пользовательских сессий, выполнения кэширования данных, идентификации пользователей.

С выходом платформы .NET версии 2.0 технология ASP.NET получила значительное число изменений и улучшений по сравнению с первой версией. Вот основные из них.

§ Поддержка динамической компиляции. В ASP.NET 1.0 динамически компилировались только файлы Code Behind. Если же приложение использовало сторонние классы, то сборки с данными классами должны были быть скомпилированы заранее и размещаться либо в GAC, либо в специальном подкаталоге веб-приложения. ASP.NET 2.0 предоставляет возможность размещать исходный код классов в специальном подкаталоге веб-приложения App_Code, а при обращении к классам динамически компилирует их.

§ Эталонные страницы и темы. Страницы практически любого сайта имеют единообразную структуру и однотипное оформление. В ASP.NET 2.0 задача создания прототипов страниц решена путём введения концепции эталонной страницы (master page). Разработчики сайтов с большим количеством страниц, имеющих единообразную схему и однотипную функциональность, могут теперь программировать все это в одном эталонном файле, вместо того чтобы добавлять информацию об общей структуре в каждую страницу. Тема ASP.NET представляет собой комплекс настраиваемых стилей и визуальных атрибутов элементов сайта. Сюда относятся свойства элементов управления, таблицы стилей страницы, изображения и шаблоны страниц. Тема идентифицируется именем и состоит из CSS-файлов, изображений и обложек элементов управления. Обложка (skin) элемента управления ‑ это текстовый файл, который содержит используемое по умолчанию объявление данного элемента со значениями его свойств.

§ Адаптивный рендеринг. В ASP.NET 2.0 реализована новая, так называемая адаптерная архитектура элементов управления, позволяющая одному и тому же элементу по-разному осуществлять свой рендеринг в зависимости от типа целевого браузера. Адаптерная архитектура позволяет создавать собственные адаптеры, настраивая серверные элементы управления для использования с определенными браузерами.

§ Модель поставщиков. В основу модели поставщиков ASP.NET 2.0 положена известная архитектурная концепция – шаблон проектирования «стратегия». Особенностью шаблона является то, что он даёт объекту или целой подсистеме возможность открыть свою внутреннюю организацию таким образом, чтобы клиент мог отключить используемую по умолчанию реализацию той или иной функции и подключить другую её реализацию, в том числе собственную. Реализация модели поставщиков в самой ASP.NET дает возможность настраивать определенные компоненты её исполняющей среды. Для этой цели здесь определены специальные классы поставщиков, которые можно использовать в качестве базовых классов при создании собственных поставщиков.

§ Новые элементы управления. В дополнении к существующим, ASP.NET 2.0 предлагает набор новых элементов управления, в частности, для представления деревьев, навигации по сайту, работы с данными пользователя.

В платформе .NET версии 3.5 технология ASP.NET обогатилась новыми элементами управления, а также полноценной поддержкой программирования с использованием AJAX.

Под веб-приложением будем понимать совокупность файлов и каталогов, размещенных в отдельном каталоге, которому сопоставлен виртуальный каталог веб-сервера. Рабочий процесс ASP.NET обслуживает каждое веб-приложение в отдельном домене, используя специфичные настройки приложения. Границей приложения является виртуальный каталог, в том смысле, что, перемещаясь по страницам внутри виртуального каталога, пользователь остаётся в рамках одного веб-приложения.

Любое веб-приложение может содержать следующие элементы:

1. Страницы ASP.NET: набор файлов с расширением .aspx ‑ файлы разметки страницы и, возможно, парные им файлы кода на каком-либо языке программирования (C#, VB.NET) – файлы Code Behind. Страницы ASP.NET могут размещаться как в корне веб-приложения, так и в подкаталогах.

2. Один или несколько файлов конфигурации web.config. Если веб-приложение содержит подкаталоги, то допускается не более одного файла web.config на подкаталог.

3. Пользовательские элементы управления – файлы с расширением .ascx и, возможно, парные им файлы Code Behind.

4. Некоторые из перечисленных в табл. 1 специальных подкаталогов.

Специальные подкаталоги веб-приложения

Имя Что содержит
Bin Скомпилированные сборки, необходимые для работы приложения
App_Browsers Файлы с информацией о возможностях браузеров
App_Code Файлы исходного кода классов (.cs или .vb), которые будут использоваться страницами
App_Data Файлы данных приложения. Это могут быть XML-файлы или файлы баз данных
App_GlobalResources Глобальные для приложения файлы ресурсов (.resx)
App_LocalResources Файлы ресурсов (.resx) для отдельных страниц
App_Themes Определения поддерживаемых приложением тем
App_WebReferences Файлы .wsdl, необходимые для связывания веб-сервисов с приложением

5. Файлы эталонных страниц – файлы с расширением .master и, возможно, парные им файлы Code Behind.

6. Единственный файл global.asax, размещаемый в корневом каталоге приложения. Этот файл играет роль пункта реализации глобальных (для приложения) событий, объектов и переменных

7. Файлы любых других типов (*.html, *.xml, изображения и т. д.), возможно, размещенные в отдельных подкаталогах.

Будем рассматривать интегрированную среду Visual Studio 2008 как основное средство для создания веб-приложений. Использование VS 2008 обеспечивает следующие удобства:

· Автоматическое создание некоторых необходимых элементов веб-приложения (подкаталогов) при выборе соответствующего типа проекта.

· Возможность визуального редактирования страниц.

· Возможности подсветки синтаксиса и IntelliSense.

· Встроенный веб-сервер для запуска и отладки приложений.

5.3. СТРУКТУРА aspx-ФАЙЛА

Задачей параграфа является указание элементов, образующих файл разметки страницы .aspx. Напомним, что наряду с файлом разметки страницы, составной частью страницы является, как правило, и файл Code Behind.

Добавить комментарий