ASP.NET предоставляет модель программирования и соответствующую инфраструктуру, которая облегчает разработку Web-приложений нового типа. Частыо этой инфраструктуры является среда выполнения платформы .NET и ее каркас .NET Framework Серверная программа пишется на одном из языков программирования платформы .NET, которые компилируются либо предварительно, либо оперативно, т.е в процессе выполнения приложения. ASP.NET поддерживает две основные модели программирования.
Web-формы и Web-службы могут использовать дополнительные возможности, предоставляемые платформой NET, например, оттранслированные программы и среду выполнения платформы NET. Кроме того, в самой ASP NET предусмотрен ряд служб инфраструктуры, к числу которых принадлежит управление состоянием, защита, конфигурирование, кэширование и трассировка (отладка) программ
Оттранслированные программы
Web-формы (и Web-службы) могут быть написаны на любом языке, который поддерживается платформой .NET и интерпретируется верхним слоем общеязыковой среды выполнения CLR (Common Language Runtime) К числу таких языков принадлежат С#, VB.NET, и C++ с управляемыми расширениями. Полученная программа затем транслируется За счет этого обеспечивается более высокая производительность по сравнению с ASP-страницами, написанными на интерпретируемом языке сценариев, например, VBScnpt. Оттранслированным программам доступны все дополнительные возможности среды NET, например, управляемая среда выполнения, и, конечно же, библиотека классов .NET Framework. Традиционный неуправляемый код может быть вызван посредством .NET-служб, обеспечивающих возможность взаимодействия управляемого и неуправляемого кода. Эти службы обсуждаются в главе 15 "Смешивание управляемого и неуправляемого кода".
Элементы управления сервера
В ASP.NET введено существенное новшество, известное как элементы управления сервера Элементы управления сервера описываются специальными тэгами, например <asp:textbox>. Серверная программа взаимодействует с элементами управления сервера. Затем среда выполнения ASP.NET генерирует обычную HTML-страницу, которая отсылается Web-броузеру. С помощью такой модели программирования легко получить стандартный HTML-код. Этот код может быть интерпретирован любым броузером.
Независимость кода от броузеров
Всемирная сеть (World Wide Web — WWW) построена на стандартах, но используемые броузеры не полностью совместимы. Некоторые из них поддерживают специфические функции и это является неутешительным житейским фактом. Перед дизайнером, создающим Web-страницу, открываются две, не очень-то привлекательные, возможности: писать простейший код, понятный каждому броузеру, или писать индивидуальный код для каждого броузера Использование элементов управления сервера позволяет существенно облегчить решение этой проблемы. ASP.NET учитывает совместимость броузеров на этапе генерации кода элементов управления сервера. Если страница запрошена мощным многофункциональным броузером, тогда генерируется HTML-код, использующий дополнительные функции броузера. В противном случае генерируется простейший HTML-код. Возможности используемого броузера ASP.NET определяет автоматически.
Отделение кода от содержимого
Стандартные ASP-страницы представляют собой смесь кода сценариев и элементов языка HTML. В ASP.NET код сценариев четко отделен от представляемого содержимого. Если код сценария написан на языке, который поддерживает создание вложенных сценариев ASP.NET, например, на С# (но не на C++), тогда этот код можно заключить в блок <SCRIPT RUNAT="SERVER"> ... </SCRlPT>. Или, что еще лучше, код сценария можно разместить на отдельной, так называемой, странице с "фоновым кодом". Именно таким образом следует поступить, если код сценария написан на C++. Страницы с "фоновым кодом" обсуждаются в следующей, основной части данной главы.
Управление состоянием
Протокол передачи гипертекстовых файлов (HyperText Transfer Protocol — HTTP) не хранит информацию о состоянии страницы. Это означает следующее. Пусть пользователь ввел в элементы управления формы некоторую информацию и отослал заполненную форму на сервер. Еспи затем форма отобразится снова, то введенная пользователем информация, как правило, будет потеряна. Чтобы сохранить информацию, введенную пользователем, в Web-приложение нужно добавить специальный код, который запоминает состояние формы. В ASP.NET сохранение этих составляющих частей состояния страницы полностью прозрачно. В ASP.NET также имеются удобные средства управления состоянием другого сеанса и состоянием приложения.