Лекция: Архитектура веб-приложений ASP.NET. Разработка веб-приложений на платформе .NET
Отличия ASP.NET от ASP. Базовые классы .NET. Разработки веб-приложений на ASP.NET. Серверные элементы управления ASP.NET. Работа с источниками данных в ASP.NET.
Платформа .NET Framework предоставляет возможность разработки и интеграции веб-приложений. ASP.NET является одной из составляющих инфраструктуры .NET Framework и фактически является платформой для создания веб-приложений и веб-сервисов, работающих под управлением IIS.
ASP.NET внешне во многом напоминает более старую технологию ASP, но в то же время внутреннее устройство ASP.NET существенно отличается от ASP. Компания Майкрософт ASP.NET построила на базе CLR (Common Language Runtime), который является основой всех приложений .NET. Разработчики могут создавать код для ASP.NET, используя языки программирования, входящие в .NET Framework: C#, Visual Basic.NET, JScript.NET и другие.
Рассмотрим более подробно, чем отличается ASP.NET от ASP.
Классический ASP имеет следующие недостатки:
- Используются только языки сценариев, которые дают большой проигрыш в производительности (из-за их интерпретируемости) и не поддерживают многие возможности объектно-ориентированного программирования.
- Логика представления (в виде кода HTML) не отделена от бизнес-логики (исполняемого кода), что приводит перемешиванию в одном файле кода HTML с кодом сценария.
- Невозможно повторно использовать готовые решения в других проектах (возможно только копирование кода сценариев).
В файлах ASP.NET включается код на таких языках программирования как C#, JScript.NET, VisualBasic.NET, что позволяет применять непосредственно в веб-приложениях возможности объектно-ориентированного программирования. Также существенно сокращается объем кода, написанного вручную за счет применения серверных объектов, автоматически генерирующих код элементов управления HTML. Возможно использование стандартной среды разработки VisualStudio.NET, т.е. ASP.NET имеет преимущество в скорости по сравнению со сценарными технологиями, так как при первом обращении код компилируется и помещается в специальный кеш, а впоследствии только исполняется, не требуя затрат времени на парсинг, оптимизацию, и т. д.
Несмотря на возможность совместной работы ASP и ASP. NET на одном веб-сервере, они не могут использовать общий сеанс. Файлы ASP.NET обрабатываются библиотекой aspnet_isapi.dll (а не asp.dll), которая, в свою очередь, использует для выполнения кода технологию .NET.
Библиотека базовых классов .NET содержит пространства имен 3 основных групп:
- элементы web-приложений (протоколы, безопасность и др.);
- элементы графического интерфейса (WebForms) ;
- web-службы.
Как уже указывалось ранее, ASP.NET использует возможности стандартной среды разработки Visual Studio.Net, и в частности классы библиотеки FCL (Framework Class Library).
Разработчику веб-приложений на ASP.NET доступны классы, входящие в следующие пространства имен:
Пространство имен | Содержание |
System.Web | Организация взаимодействия web-клиента (браузера) с web-сервером (запрос-ответ, cookie и и др.) |
System.Web.Caching | Поддержка кэширования при работе web-приложений |
System.Web.Configuration | Настройка web-приложения в соответствии с файлами конфигурации проекта |
System.Web.Security | Реализация системы безопасности web-приложений |
System.Web.Services | Организация работы web-сервисов |
System.Web.Services.Description | |
System.Web.Services.Discovery | |
System.Web.Services.Protocols | |
System.Web.UI | Построение графического интерфейса пользователей web-приложений |
System.Web.UI.WebControls | |
System.Web.HtmlControls |
В свою очередь пространство имен System.Web включает в себя пространства имен, названия которых знакомы разработчикам веб-приложений на ASP:
Пространство имен | Содержание |
HttpApplication | Данный класс определяет общие для всех web-приложений члены |
HttpApplicationState | В данном классе содержится общая информация web-приложения для множества запросов, сеансов и каналов передачи данных |
HttpBrowserCapabilities | Этот класс используется для получения информации о возможностях клиентского браузера, обращающегося к web-серверу |
HttpCookie | Поддержка механизма безопасной работы с объектами HTTP cookie |
HttpRequest | Предоставляет доступ к информации, переданной web-клиентом |
HttpResponse | Используется для формирования HTTP-ответа сервера |
В основу разработки веб-приложений на ASP.NET положена модель разделения кода представления и кода реализации, рекомендуемая Майкрософт при создании динамических документов с помощью программных кодов. Это делается путем размещения программного кода либо в отдельный файл, либо внутри специального тэга для сценариев. Файл такого рода обычно имеет расширение *.aspx.cs (*.aspx.vb) и имеет имя, совпадающее с именем основного ASPX файла. В принципе такой подход позволяет веб-дизайнеру сконцентрироваться работе с кодом разметки документа с минимальными изменениями программного кода, в обычном ASP внедряемого непосредственно в код разметки.
Взаимодействие пользователя с веб-приложением, реализованном на ASP.NET включает в себя следующие процессы:
- При запросе страницы ASPX инициируется событие Page_Init, производящее начальную инициализацию страницы и ее объекта.
- Далее инициируется событие Page_Load, которое может быть использовано, например для установки начальных значений для элементов управления. При этом также можно определить была ли загружена страница впервые или обращение к ней осуществляется повторно в рамках обратной отсылки в ответ на события, связанные с элементами управления, размещенными на странице; т.е. проверить свойство Page.IsPostBack.
- Далее выполняется проверка валидности элементов страницы с точки зрения корректности введенных пользователем данных.
- И, наконец, следует обработка всех событий, связанных с действиями пользователя с момента последней обратной отсылки.
Для сохранения данных веб-страницы в промежутках между обращениями к ней в ASP.NET используются состояния отображения (view state).
Если данные, введенные в веб-форму, необходимо сделать доступными другим веб-формам того же приложения, эти данные необходимо сохранить в объектах Application и Session. Объекты Application доступны всем пользователям приложения и могут рассматриваться как глобальные переменные, обращение к которым возможно из любых сеансов. Объекты Session доступны только в рамках одного сеанса, и поэтому они оказываются доступными только одному пользователю.
Дата добавления: 2015-12-29; просмотров: 2411;