Волгоградский государственный университет
Опубликован: 02.03.2009 | Доступ: свободный | Студентов: 1479 / 172 | Оценка: 4.20 / 4.03 | Длительность: 16:55:00
Лекция 6:

Способы организации активных web-серверов

< Лекция 5 || Лекция 6: 123 || Лекция 7 >

ASP.NET

ASP.NET – это среда, работающая на Internet Information Server (IIS), упрощающая написание кода для создания HTML-страниц.

Особенностями ASP.NET являются:

  1. .NET Framework — архитектура, облегчающая проектирование традиционных и Web-приложений. В ASP.NET вместо интерпретации исходной страницы при каждом обращении клиента страница компилируется, преобразуясь в формат промежуточного языка MSIL (Microsoft Intermediate Language) лишь при первом обращении. После компиляции страницы в MSIL JiT-компилятор (Just-In-Time compiler) преобразует MSIL в машинный код.
  2. Единый язык среды исполнения (Common Language Runtime) обеспечивает единый набор сервисов для всех языков в ASP.NET. Наличие единого набора типов для всех языков дает преимущество при комбинировании ASP-сценариев с СОМ-обьектами.
  3. В ASP.NET обеспечивается повышенная производительность с помощью компилируемых языков.
  4. Visual Basic .NET — это новая версия Visual Basic с более четким синтаксисом.
  5. Visual Studio .NET — среда разработки, которая поддерживает быструю разработку (Rapid Application Development, RAD) серверных приложений.
  6. Web-формы позволяют осуществлять визуальное конструирование web-приложений с использованием обработчиков событий в стандартных элементах управления HTML.
  7. Web-сервисы с поддержкой XML позволяют разработчикам создавать сервисы и предоставлять доступ к ним по протоколам, являющимся отраслевым стандартом.

Microsoft .NET представляет собой инфраструктуру для решения общих задач, возникающих при разработке Интернет-приложений. Инфраструктура MS.NET состоит из операционной системы Windows 2000/2003, серверных корпоративных продуктов, XML-сервисов и платформы разработки .NET Framework.

Достоинства .NET

  1. Единая программная модель. В отличие от существующего подхода, когда одни функции ОС доступны через процедуры динамически подключаемых библиотек (DLL), а другие — через СОМ-объекты, весь прикладной сервис представлен общей объектно-ориентированной программной моделью.
  2. Отсутствие проблем с версиями. При традиционном программировании для Windows существует проблема совместимости версий. Она возникает, когда компоненты, устанавливаемые для нового приложения, заменяют компоненты старого приложения. Архитектура .NET Framework позволяет изолировать прикладные компоненты, так что приложение всегда загружает компоненты, с которыми оно разрабатывалось и тестировалось.
  3. Упрощение разработки, развертывания и удаления. Компоненты .NET Framework (их называют просто типами) не связаны с реестром. Установка приложений .NET Framework сводится к копированию файлов в нужные каталоги, а их удаление – к удалению файлов.
  4. Кроссплатформенность. При компиляции кода для .NET Framework компилятор генерирует код на языке CIR (common intermediate language), а не традиционный код, состоящий из процессорных команд. При исполнении CLR транслирует CIL в команды процессора. Поскольку трансляция выполняется в период выполнения, генерируются команды конкретного процессора. Это значит, что можно запускать приложение для .NET Framework на любой машине, где работает версия CLR и FCL: с архитектурой x86, IA64, AMD64, PowerPC и т. д.
  5. Интеграция языков программирования. СОМ позволяет разным языкам взаимодействовать. .NET Framework позволяет разным языкам интегрироваться, т. е. одному языку использовать типы, созданные на других языках. Например, CLR позволяет создать на C++ класс, производный от класса, реализованного на Visual Basic. CLR делает возможным интеграцию языков, так как она определяет общую систему типов (Common Type System, CTS), которую должны использовать все языки, ориентированные на CLR. Общеязыковая спецификация (Common Language Specification, CLS) определяет правила, которым должны следовать разработчики компиляторов, чтобы их языки интегрировались с другими.
  6. Автоматическое управление памятью (сбор мусора). Одна из самых распространенных проблем, связанных с производительностью системы — небрежное отношение к освобождению ресурсов, что может привести к некорректному выполнению программы в непредсказуемый момент. CLR автоматически отслеживает использование ресурсов, гарантируя, что не произойдет их утечки.

Безопасность. В модели безопасности доступа к коду .NET имеется возможность явного задания прав доступа для различных фрагментов кода.

Средства разработки для .NET

Для .NET существуют следующие средства разработки:

  1. Среда MS Visual Studio .NET 2005 включает средства управления проектами, редактор исходного текста, конструкторы пользовательского интерфейса, помощники, компиляторы, компоновщики, инструменты, утилиты, документацию и отладчики. Существует также бесплатный программный продукт Visual Web Developer.
  2. .NET Framework SDK. Он распространяется бесплатно и включает компиляторы всех языков, набор утилит и документацию. С помощью этого SDK можно создавать приложения для .NET Framework без Visual Studio .NET. Потребуется лишь редактор текстов и средство управления проектами.
  3. Inprise Delphi 2005 Enterprise.

Пример пустой ASP.NET-страницы

Рассмотрим пример пустой ASP.NET-страницы.

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>

</div>
</form>
</body>
</html>

Проанализируем ее содержимое.

<%@ Page Language="VB" %>. Тег <% всегда предназначается для интерпретации ASP-кода. Директива Page всегда присутствует на странице aspx. Ее атрибут Language — это указание, что в скриптах данной страницы будет использоваться VB.net, а могли бы C#, C++.net или J#. CodeFile — имя файла с отделенным кодом (code-behind). Inherits — класс, определенный в том файле, от которого наследуется класс страницы.

Одновременно будет создан и файл Default.aspx.vb. ASP.NET использует технологию разделения кода. Сама форма находится в файле Default.aspx, а файле Default.aspx.vb находится класс страницы на языке vb.net. Таким образом, дизайн страницы может быть изменен не затрагивая кода страницы, что позволяет разделить ответственность за внешний вид и работу страницы между дизайнером и программистом.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Существуют разные стандарты HTML и xHTML. Более поздние стандарты предъявляют более строгие требования.

Например, хHTML 1.1 не разрешает пользоваться <br> и другими простыми тегами без закрывающей косой черты <br/>. В то же время старые стандарты не поддерживают новые теги.

Visual Studio 2005 во всех страницах использует стандарт XHTML 1.0 Transitional. Этот стандарт требует наличия атрибута xmlns в теге <html>:

<html xmlns="http://www.w3.org/1999/xhtml" >

— ссылки на сайт с описанием стандарта.

<form id="form1" runat="server">

Этот тег дает указание компилятору обрабатывать элементы управления страницы. Данный тег имеет свойство runat, для которого установлено значение "server" (других значений не бывает). При использовании этого свойства элемент управления обрабатывается компилятором, а не передается браузеру "как есть".

Обработка ASP.NET-страницы

При установке .NET, в соответствующих директориях C:\WINDOWS\Microsoft.NET\Framework\ помещается файл aspnet_isapi.dll. Это — ISAPI-расширение, предназначенное для:

  1. получения запросов, адресованных ASP .NET-приложениям ( *.aspx *.asmx и т.д.),
  2. для создания рабочих процессов aspnet_wp.exe, обрабатывающих запросы.

IIS или встроенный в Visual Studio Cassini используют это расширение для обработки обращений к страницам с расширением aspx.

Этот модуль разбирает ( parse ) содержимое страниц aspx вместе с файлом отделенного кода и генерирует класс на языке страницы с объектом Page. Страница aspx отличается от обычной HTML-страницы наличием серверных элементов управления, которые описываются специальными тегами. Каждому тегу элемента управления соответствует свой член класса страницы.

Например, при добавлении на страницу компонента Label добавляется следующий код:

<asp:Label ID="Label1" runat="server" 
Text="Label"></asp:Label>

который преобразуется в

Dim ctrl = New System.Web.UI.WebControls.Label()

Основная задача объекта Page — посылка HTML-кода в выходной поток. Этот класс компилируется в библиотеку DLL, которая загружается в процесс web-сервера. Последующие запросы к странице также обрабатывает DLL, если исходный код страницы не меняется.

< Лекция 5 || Лекция 6: 123 || Лекция 7 >