1.2 Появление Active Server Pages ASP.NET — это новая технология (то есть технология следующего поколения) для создания серверных Web-приложений производства Microsoft. Она входит в состав платформы Microsoft .NET Framework, которая представляет собой набор тесно связанных между собой новых, ставших революционными технологий, начиная от технологии для получения доступа к базам данных и заканчивая технологией для создания распределенных приложений. ASP.NET является одним из самых важных компонентов .NET Framework и позволяет разрабатывать высокопроизводительные Web-приложения и Web-службы.
Появление версии ASP.NET 1.0 стало настоящей революцией в мире Web-программирования. Она пользовалась такой бешеной популярностью, что еще на этапе бета-тестирования была установлена (через программу лицензирования Microsoft Go-Live) на множестве коммерческих Web-серверов. Выпущена версия ASP.NET 1.0 была только в начале 2002 года. Версия ASP.NET 1.1 такого ажиотажа уже не вызвала. Она явилась своего рода возможностью для разработчиков Microsoft передохнуть и собраться с силами. B ASP.NET 1.1 внимание уделялось не новым функциональным возможностям (таковых в ней вообще не было), а повышению производительности, настройке системы безопасности и устранению некоторых незначительных дефектов, Новые функциональные возможности потихоньку "откладывались в длинный ящик" и припрятывались до прихода более подходящих времен, то есть до выхода следующей крупной версии — ASP.NET 2.0.
Версия ASP.NET 1.1 была выпущена в конце 2003 года и закрепила за ASP.NET статус наиболее предпочитаемой платформы для Web-разработки среди профессиональных разработчиков, Два года спустя на горизонте наконец-то появилась версия ASP.NET 2.0. В отличие от ASP.NET 1.0. ASP.NET 2.0 не стала началом нового направления в Web-разработке. На самом деле, практически вся лежащая в основе этой версии архитектура почти ничем не отличается от той, что была в версии ASP.NET 1.0. Разница состоит в том, что в ASP.NET 2.0 к существующей технологии добавились некоторые новые функциональные возможности более высокого уровня. В принципе, после успеха версии ASP.NET 1.0, Microsoft не жалела ни сил разработчиков, ни времени, ни ресурсов на планирование и подготовку версии ASP.NET 2.0. Поскольку переписывать код механизма ASP.NET больше было не нужно, разработчики, занимавшиеся версией ASP.NET 2.0. смогли добавить новые элементы управления, создать более гибкие решения для управления данными, построить основанную на ролях модель безопасности и даже создать целый набор инструментальных средств для разработки портальных Web-сайтов. ASP.NET 2.0 дает разработчикам возможность расслабиться и порадоваться множеству новых функций, которые были разработаны для их любимой платформы.
1.3 Web-разработка на ASP.NET Как уже было сказано ранее, ASP.NET входит в .NET Framework. Среда .NET Framework содержит тщательно отобранную коллекцию функциональных частей с поразительным общим количеством — более 7000 типов. Стандартными языками разработки ASP.NET являются Visual C# и Visual Basic.
Cпособ использования классов в .NET Framework в ASP.NET ничем не отличаемся от способа их применения в любом другом типе приложения .NET. Это значит, что, изучив программирование стандартных Windows-приложений, мы сможем применять большую часть полученных знаний и в программировании Web.
Приложения ASP.NET всегда компилируются. В действительности каждый раз проходят два этапа компиляции. На первом этапе написанный нами код С# компилируется в код промежуточного языка под названием Microsoft Intermediate Language (MSIL), или просто IL. Этот первый шаг является фундаментальной причиной взаимозависимости .NET от языков. По сути, все языки .NET (включая С#, Visual Basic и многие другие) компилируются в фактически идентичный код IL. Этот первый этап компиляции может произойти автоматически при первом запросе страницы, или же его можно выполнить заранее (этот процесс известен как предварительная компиляция). Скомпилированный файл с кодом IL является сборкой.
Второй этап компиляции наступает непосредственно перед фактическим выполнением страницы. На этом этапе код IL компилируется в низкоуровневый собственный машинный код. Этот этап известен как оперативная компиляция "точно к нужному моменту" (Just-In-Time — JIT) и он проходит одинаково для всех приложений .NET
Вся среда .NET Framework — то есть все пространства имен, приложения и классы - называется управляемой. Это значит, что происходят следующие процессы:
Автоматическое управление памятью и сборка мусора.
Безопасность типов. При компиляции приложения .NET добавляет к сборке информацию о доступных классах, их членах, типах данных и т.д.
Расширяемые метаданные. Информация о классах и элементах является лишь одним из типов метаданных, хранимых .NET в скомпилированной сборке.
Структурированная обработка ошибок.
Многопоточностъ. .NET Framework предоставляет пул потоков, которые могут использоваться различными классами. Например, можно асинхронно вызывать методы, читать файлы либо взаимодействовать с Web-службами без необходимости явного создания новых потоков.
ASP.NET является объектно-ориентированной средой. Ваш код не только имеет полный доступ ко всем объектам в .NET Framework, вы также можете эксплуатировать все условные обозначения объектно-ориентированного программирования (ООП). Например, вы можете создавать повторно используемые классы, стандартизовать код в соответствии с интерфейсами и объединять полезные функции в распределяемом скомпилированном компоненте.
Один из лучших примеров объектно-ориентированного мышления в ASP.NET можно найти в серверных элементах управления. Серверные элементы управления представляют собой инкапсуляцию в миниатюре. Разработчики могут программно манипулировать объектами управления с использованием кода для настройки их внешнего вида, предоставления данных для отображения и даже реакции на события.
Одним из самых сложных испытаний, предстоящих Web-разработчикам, является большое количество браузеров, которые необходимо поддерживать. Различные браузеры, версии и конфигурации по-разному поддерживают HTML. Web-разработчики должны выбирать, следует ли формировать содержимое в соответствие со стандартом HTML 3.2, HTML 4.0 или же с чем-либо другим вроде XHTML 1.0 или даже WML для мобильных устройств.
ASP.NET решил эту проблему удивительно разумным способом. Несмотря на то, что мы можем извлекать информацию о браузере клиента и его свойствах внутри страницы ASP.NET, ASP.NET фактически побуждает разработчиков игнорировать эти соображения и использовать обширный набор элементов управления Web- сервера. Эти серверные элементы управления генерируют HTML, адаптируясь к возможностям клиента. Одним из примеров являются элементы управления верификацией ASP.NET, использующие JavaScript и DHTML (динамический HTML) для совершенствования своего поведения, если оно поддерживается клиентом. Это позволяет элементам управления верификацией отображать сообщения о динамических ошибках без необходимости отправки пользователем страницы серверу для продолжения обработки.
Ещё одной сложной проблемой, предстающей перед разработчиками, является развертывание готового приложения на производственном сервере. Каждая инсталляция .NET Framework предоставляет одинаковые базовые классы. Поэтому развертывание приложения ASP.NET является относительно простым. В большинстве случаев просто потребуется скопировать все файлы в виртуальный каталог на сервере.
Конфигурирование является еще одной задачей, связанной с развертыванием приложения, в особенности при необходимости передачи информации о безопасности, такой как учетная запись и привилегии пользователя. ASP.NET упрощает процесс развертывания, сводя к минимуму зависимость от настроек IIS (Internet Information Services — информационные службы Internet). Вместо этого большинство установок ASP.NET хранится в специальном файле web.config.
Файл web.config помещается в тот же каталог, что и Web-страницы. Он содержит иерархически сгруппированные настройки приложения, хранимые в удобочитаемом формате XML, который можно редактировать с использованием простого текстового редактора, подобного Notepad. При изменении настройки приложения ASP.NET замечает это изменение и перезапускает приложение в новом домене приложения (поддерживая существующий домен приложения вплоть для завершения обработки каких-то невыполненных запросов). Файл web.config никогда не блокируется, поэтому его можно обновлять в любое время.
|