ASP.NET (ранее называлась ASP+) – это новая технология для создания мощных сценариев, которые выполняются на сервере. Эта технология пришла на место уже давно всем известной технологии ASP. Ты спросишь - чем эта технология будет полезна именно мне (например, сделает работу проще)? В этой статье я постараюсь дать ответ на этот вопрос: чем же ASP.NET превзошла своего предшественника – традиционный ASP версии 3.0.
Дополнительная языковая поддержка
Развитие традиционной технологии ASP зашло в тупик, из-за ограниченности возможностей скриптовых языков VBScript и Jscript. Что бы обойти эти ограничения приходилось использовать многочисленные компоненты COM, которые надо было устанавливать, настраивать, да еще и за многие из них приходилось платить бабло. Поэтому теперь для создания ASP-страниц используются полноценные языки, такие как
С#, VB.NET, Jscript .NET и J#, которые предоставляют следующие возможности:
- Получить доступ к интерфейсу приложений Win32 и всем сервисам платформы
.NET - Программирование с объявлением типов
- Событийно-управляемое программирование
- Полноценное ООП
Страницы ASP.NET компилируются
В основу ASP.NET положена работа в среде CLR (Common Language Runtime – представляет собой не зависящую от языка среду выполнения приложений .NET Framework), что позволяет создавать web-приложения на любом языке, поддерживаемом .NET Framework. Следовательно, независимо от языка программирования, использованного при создании станицы ASP.NET, код компилируется в промежуточный языка, который называется
MSIL. Очевидно, что компилированный код выполняется намного быстрее, чем интерпретация ASP-файла.
Управление состоянием
Управление состоянием так же существенно расширенно, по сравнению с традиционным ASP. Кроме улучшений и дополнений к уже существующим объектам ASP Application и Session (например, параметр cookieless – указывает, что отслеживание сеанса будет вестись не с помощью элемента cookie, a с помощью модифицированного адреса URL) , так же добавилась совершенно новая технология Viewstate – которая представляет собой совершенно новый вариант хранения данных. Ее суть заключается в том, чтобы хранить состояние каждого элемента в отдельном скрытом поле, и автоматически посылается его значение на сервер с каждой страницей.
Серверные элементы управления
В ASP.NET реализован ряд серверных управляющих элементов, как говориться, на все случаи жизни. Календарь, списки, кнопки, специальные компоненты для работы с базами данных (листание, изменение и т.п.), таблицы и т.п. – это далеко не полный список, т.к. ты можешь создавать собственные элементы управления, или скачивать их у сторонних разработчиков. Каждый из них имеет свои события - код, управляющий их поведением во время выполнения. Отдельно разговора заслуживают компоненты проверки, добавленные к странице ASP.NET, подобны обычным серверным компонентам - реализованы проверки определенного типа, например, такие как: проверка диапазона введенного значения; сравнение с заданным шаблоном; проверка заполнения всех требуемых полей формы (RequiredFieldValidator) и др. Эти компоненты также поддерживают проверку на стороне клиента (используя javascript и DHTML).
Конфигурационные файлы на основе XML
В ASP.NET представлена новая система конфигурации, основанная на XML-файлах, а, следовательно, и необходимость в остановке и перезапуске IIS отпадает. Это большой шаг вперед – т.к. для того, чтобы изменить настройки приложения достаточно всего лишь подправить файл web.config или machine.config в нотпаде, и залить его на сервер. Изменения вступят в силу сразу же для всех новых запросов.
Разделения кода и описания страниц ASP.NET
В традиционном ASP программный код и интерфейс пользователя хранятся совместно. Представим себе ситуацию, когда дизайнеру потребуется внести изменения во внешний вид странице, когда программист уже написал программный код. Это очень затрудняет управление проектом. Структура ASP.NET предусматривает разделение программного кода и интерфейса пользователя. Для этой цели служат серверные элементы управления и атрибут Codebehind (этот атрибут указывает на файл, в котором размещается код ASP.NET-приложения). Кроме этого это повышает безопасность кода, т.к. позволяет хранить программный код в компилированном виде (в виде библиотек dll).
Возможность отладки и структурированной обработки ошибок
Отладка в ASP оставалась на самом примитивном уровне, по сравнению со средствами разработки под Win32.
Отладчиком был старый добрый Internet Explorer, а единственном средством отладки был метод
Response.Write(). В ASP.NET же реализованы средства обработки ошибок (блок try/catch/finally), отладки и трассировки, предоставляемые средой Visual Studio .NET.
Улучшенные механизмы защиты
Средства защиты ASP.NET предоставляют администраторам IIS и разработчикам новые возможности аутентификации клиентов, включая HTML-формы и используя службу Passport. Более подробно об этом можно прочитать в моей статье
здесь.
Кэширование на сервере
ASP.NET намного превосходит ASP по производительности за счет поддержки кэширования на стороне севера, что позволяет сохранять и повторно использовать в страницах данные любого типа. Кроме того, ASP.NET может кэшировать и представление страниц ASP.NET на стороне клиента, что неминуемо ведет к повышению производительности.
Огромная библиотека классов
В составе ASP.NET поставляется огромное количество классов, предназначенных для разработки Web-приложений. В состав библиотек входят компоненты доступа к данным ADO.NET, компоненты для чтения и записи сообщений файлов, SMTP и шифрования…
Web-службы
Microsoft продвигала новые web-службы ASP.NET больше, чем какую-либо другую часть технологии .NET. Модель web-служб предоставляет собой набор услуг по удаленному доступу к серверному функционалу. С помощью элементов модели web-служб становятся возможными публикация разнообразнейших служб
(например служба, позволяющая получить последний
курс валют) и получение доступа к "чужим" службам на "чужих" серверах. Взаимообмен услугами может проходить по сценарию как "клиент-сервер", так и "сервер-сервер". В заключение следует отметить независимость Web-служб от какого-то конкретного компонента, технологии или концепции вызова, а, следовательно, программы, написанной на любом языке и использующей любую компонентную модель.
Резюме
Итак, специалисты Microsoft полностью переписали старый ASP и избавились от присущих этой среде ограничений. Теперь же ASP.NET сочетает в себе ту мощь, которой достаточно для разработки крупных Web-приложений, сочетая это простотой, позволяющей создавать их за разумное время.