В конце 1997 г. Microsoft реализовала относительно простую среду периода выполнения для Web — Active Server Pages (ASP), как часть сервера Internet Information Server (IIS), включенного в Windows NT 4 Option Pack. IIS обслуживает Web-страницы, запрашиваемые пользователем. ASP позволяет программистам реализовывать алгоритмы динамического создания страниц на IIS, состоящих из статического HTML и кода сценариев. Когда пользователь запрашивает ASP- страницу, IIS должен ее найти и активизировать ASP-процессор. ASP-процессор должен прочитать страницу и один к одному скопировать содержащиеся на ней HTML-элементы в выходную страницу. При этом также интерпретируются элементы сценариев, расположенные между ограничителями <% %>. Этот код должен выполнять алгоритм, выдающий в качестве результата HTML-строки, которые ASP-процессор должен скопировать в выходную страницу в те места, где были элементы сценария. Результирующая страница, собранная из статических HTML-элементов и HTML, динамически сгенерированного сценарием, должна быть передана клиенту. Для простых задач ASP применять относительно легко, что является признаком качества этой технологии.
Технология Microsoft ASP представляет собой совокупность серверных средств для динамического создания Web-документов.
Активные серверные страницы (Active Server Pages, ASP), созданные Microsoft для собственного web-сервера, сейчас доступны для многих серверов. Сервер ASP интегрирован в web-сервер и не требует отдельного процесса. Он позволяет программистам совмещать код и HTML-страницы вместо того, чтобы писать отдельные программы. Для ASP существуют модули, позволяющие делать то же самое, используя CGI. ASP поддерживают различные языки программирования, самый популярный из которых Visual Basic, хотя JavaScript также поддерживается.
Кроме того, существует версия Perl от ActiveState, которую можно использовать в Windows с ASP.
ASP.NET — это больше, чем просто следующая версия ASP; ASP.NET является единой платформой для разработки web-приложений, которая содержит службы, необходимые для построения web-приложений для предприятий. Кроме совместимости синтаксиса ASP.NET и ASP, новая платформа предоставляет новую модель программирования и инфраструктуру для более безопасных, масштабируемых и стабильных приложений. Можно легко дополнить существующее приложение ASP, последовательно добавив в него функциональные возможности ASP.NET .
ASP.NET является компилируемой средой на основе .NET, в которой доступно создание приложений на любом совместимом с .NET языке, включая Visual Basic.NET, C# и JScript.NET . Кроме того, среда .NET Framework полностью доступна для любого приложения ASP.NET. Разработчики могут использовать все преимущества этих технологий, включающих в себя управляемую общеязыковую среду выполнения, строгую типизацию, наследование и т. д.
ASP.NET разработана для совместной работы с редакторами WYSIWYG HTML и другими средствами программирования, включая Microsoft Visual Studio .NET . Разработка web-приложений упрощается также благодаря использованию всех преимуществ описанных средств, включая полностью интегрированную поддержку отладки, а также интерфейс GUI, который может использоваться для добавления элементов управления на web-страницу.
При создании приложений ASP.NET разработчики могут использовать Web Forms и web-службы XML или комбинировать их нужным образом. Каждая из форм или служб поддерживается одной и той же инфраструктурой, что позволяет использовать схемы проверки подлинности, кэшировать часто используемые данные или настраивать конфигурацию приложения. Это только часть доступных возможностей.
На основе Web Forms можно выполнять построение мощных web-страниц. При этом для создания элементов UI можно использовать серверные элементы управления ASP.NET и запрограммировать их на выполнение общих задач. Эти элементы управления позволяют быстро построить Web Forms без помощи встроенных или настраиваемых компонентов, упрощая тем самым код страницы.
Web-службы XML предоставляют средства для удаленного доступа к возможностям сервера. С помощью web-служб XML предприятие может представлять программные интерфейсы для своих данных или бизнес-логики, которые в свою очередь могут получаться и обрабатываться клиентскими и серверными приложениями. Web-службы XML разрешают обмен данными при взаимодействиях клиент-сервер и сервер-сервер, используя для перемещения данных через брандмауэр стандарт, похожий на HTTP и XML-сообщения. Web- службы XML не связаны с конкретной технологией компонентов или соглашением по вызову объектов. Следовательно, к web-службам может обращаться программа, написанная на любом языке, с помощью любой модели компонентов, и запущенная в любой операционной системе.
Каждая из этих моделей может в полной мере использовать все возможности ASP.NET, а также возможности общеязыковой среды выполнения .NET Framework. Далее представлены эти средства и способы их использования.
Модель программирования ASP.NET похожа на модель ASP, однако объектная модель ASP.NET сильно отличается от ASP — она является более структурированной и объектно-ориентированной. К сожалению, это исключает полную обратную совместимость ASP.NET; для запуска в ASP.NET почти все существующие страницы ASP нуждаются в изменении.
Для отображения данных для посетителей web-узла часто используется доступ к базам данных из приложений ASP.NET. Для этих целей ASP.NET упрощает доступ к базам данных. Кроме того, базой данных можно управлять из кода программы, используя технологию ADO.NET.
ASP.NET содержит простую модель для написания разработчиками web-приложений логической структуры программы, запускаемой на уровне приложения. Запись кода выполняется в текстовом файле Global.asax или в скомпилированном классе, развертываемом в качестве сборки. Данная логическая структура может включать в себя события приложения, однако разработчик может легко расширить эту модель в соответствии с требованиями web-приложения.
ASP.NET содержит простые в применении средства управления состояниями сеансов и приложений, совместимые с интерфейсами программирования .NET Framework, которые знакомы разработчикам, работавшим с ASP .
Для опытных разработчиков, которым нужны мощные API, например программные интерфейсы ISAPI, доступные в предыдущей версии ASP, ASP.NET предлагает интерфейсы IHttpHandler и IHttpModule. Реализация интерфейса IHttpHandler предоставляет средство для взаимодействия с низкоуровневыми службами запросов и ответов web-сервера IIS и функциональные возможности, подобные расширениям ISAPI, но с упрощенной моделью программирования. Реализация интерфейса IHttpModule позволяет включать пользовательские события, участвующие в каждом запросе используемого приложения.
ASP.NET использует преимущества увеличения производительности, доступные в .NET Framework и общеязыковой среде выполнения. Кроме того, данная платформа была разработана для значительного увеличения производительности по сравнению с ASP и другими платформами для создания web-приложений. Код ASP.NET компилируется, а не интерпретируется, разрешая тем самым использование раннего связывания, строгой типизации и JIT-компиляции в присущем данному объекту коде; это только некоторые преимущества этой технологии. ASP.NET также легко масштабируется. Под этим подразумевается возможность удалять модули (например, модули сессии), не связанные с разрабатываемым приложением. ASP.NET содержит также расширенные службы кэширования (встроенные службы и интерфейсы кэширования (API)). В состав ASP.NET также входят счетчики производительности, используемые разработчиками и системными администраторами для проверки новых приложений и сбора метрик существующих приложений.
Запись пользовательских операторов отладки на web-страницу может сильно помочь при разрешении вопросов, связанных с кодом приложения. Однако если их вовремя не удалить, они могут вызвать ошибку. Если приложение готово к отправке на рабочий сервер, удаление операторов отладки со страниц может оказаться весьма трудоемким. ASP.NET содержит класс TraceContext, который позволяет записывать пользовательские операторы отладки на страницы при их разработке. Эти операторы возникают только при включении трассировки страницы или всего приложения. При включении трассировки сведения о запросе добавляются на страницу или в средство просмотра трассировки (если оно указано), находящееся в корневой папке используемого приложения.
.NET Framework и ASP.NET содержат используемые по умолчанию схемы авторизации и проверки подлинности web-приложений. В зависимости от нужд приложения эти схемы можно добавлять, удалять или перемещать.
Параметры конфигурации ASP.NET хранятся в файлах XML в формате, доступном для их чтения и записи. Каждое приложение может иметь разные файлы конфигурации. Схему конфигурации можно расширить в соответствии с требованиями.
К недостаткам ASP.NET можно отнести его платность. Кроме того, хотя и существует модуль для работы с ним на сервере Apache, он не достаточно производителен, поэтому приходится использовать IIS, который в свою очередь является также платным. Кроме того, ограничение на сервер также означает, что данную технологию возможно использовать лишь на операционной системе Windows .