Краткое введение в новую технологию Microsoft ASP+, включая обзор веб-форм и серверных компонентов. На недавно прошедшей конференции "2000 Microsoft Professional Developer's Conference" была представлена новая технология Microsoft, позволяющая веб-разработчикам создавать более богатые и более надежные приложения, чем когда-либо до этого, дающая мощный импульс в разработке интернет-приложений в будущем. Технология, о которой здесь далее пойдет речь, - следующее поколение Active Server Pages (ASP), известное как ASP+.
Каким образом ASP+ сделает Вашу работу проще и позволит Вам создать хорошее приложение? Если коротко, то ASP+ предоставляет хорошие инструментальные средства, которые делают разработку проще и мощнее. Они включают трансляцию, дополнительную языковую поддержку, веб-формы и серверные компоненты. В этой статье дается краткий обзор, позволяющий составить впечатление о преимуществах новой технологии ASP+.
Страницы ASP+ компилируются
Файлы ASP+ остались все теми же простыми для изменения текстовыми файлами, как были всегда. Поэтому, для того, чтобы работать с проектом ASP+, Вы можете использовать Visual InterDev, Visual Studio 7 или любой текстовый редактор вроде Notepad.
Новинка заключается в следующем: ASP+ создает побочную копию исходного файла, которая откомпилирована! Компилированный код выполняется намного быстрее, чем интерпретация оригинального ASP-файла. И каждый раз, после того, как Вы изменили исходные файлы ASP+, Internet Information Server (IIS) их откомпилирует, после того, как получит первый запрос к измененной странице. Такой тип компиляции по требованию называется компиляцией "Just-In-Time" (JIT).
Хотя, наряду с неоспоримым преимуществом ускорения работы откомпилированного кода, выполнение JIT для ASP+, своего рода, палка о двух концах. Да, откомпилированная программа быстрее. Но в то же время придется подождать, когда Вы решите демонстрировать только что измененное приложение Вашему начальнику или клиенту, для того, чтобы позволить IIS выполнить компиляцию. Дело в том, что приложение очень заметно замедляется, выполняясь первый раз, так как измененные исходные файлы в это время будут компилироваться.
Кстати, исходные файлы ASP+ имеют новое расширение *.ASPX, а новое название файла Global.asa - Global.asax.
Дополнительная языковая поддержка
Тем, кто обычно пишет на Visual C++ и решит программировать ASP, теперь не надо будет тратить время на изучение VBScript. В ASP+ добавлен новый объектно-ориентированный язык по имени C#. Во многом он похож на Visual C++, плюс также разделяет некоторые сходства с Java. В действительности же, этот язык в первую очередь ближе к Java, чем Visual C++.
C# имеет то преимущество, что в его конструкции включены особенности, которые легко позволяют разработчикам создавать и использовать компоненты COM+ (подробнее о C#: sourceDNA.com).
Веб-формы предлагают простое управление
Веб-формы ASP+ предлагают модель программирования, которая может использоваться на сервере, чтобы динамически генерировать веб-страницы. Созданные как логическая эволюция ASP (ASP+ обеспечивает совместимость синтаксиса с существующими страницами) веб-формы ASP+ были специально разработаны, чтобы убрать ряд ключевых недостатков предыдущей модели. В частности, они предоставляют следующее:
* Возможность создавать и использовать многоразовые компоненты пользовательского интерфейса, которые могут включать общие функциональные возможности и позволят сократить размер кода, который требуется написать разработчику.
* Возможность для разработчика наглядно структурировать логику его страницы в организованном порядке.
* Возможность для инструментальных средств разработки обеспечивать мощную поддержку визуального (в режиме WYSIWYG) проектирования страниц.
Страницы ASP+ обеспечивают совместимость синтаксиса с существующими ASP-страницами. Это включает поддержку для кода <% %> исполнямых блоков, которые могут смешиваться с HTML-кодом в пределах ASPX-файла. Эти кодовые блоки выполняются "нисходящим" (сверху-вниз) способом в странице, тратя время.
В то время как блоки кода <% %> обеспечивают мощный путь управления текстовым выводом, возвращенным из страницы ASP+, они не помогают в обеспечении чистой модели программирования HTML. Разработчики, использующие только кодовые группы <% %> должны управлять состоянием страницы и понимать зарегистрированные значения.
Веб-формы ASP+ предоставляют набор серверных компонентов, которые обеспечивают легкий в использовании, но мощный способ проверить входные формы на наличие ошибок, и в случае необходимости, выдать сообщение пользователю.
Компоненты проверки, добавленные к странице ASP+, подобны обычным серверным компонентам - реализованы проверки определенного типа, например, такие как: проверка диапазона введенного значения; сравнение с заданным шаблоном; проверка заполнения всех требуемых полей формы (RequiredFieldValidator) и др.
Эти компоненты имеют как "верхний", так и "нижний" уровни поддержки веб-клиента. В верхнем уровне проверка будет выполняться на клиенте (используя javascript и DHTML). В нижнем уровне - на сервере. Модель программирования для обоих сценариев идентична.
Разработчики страниц ASP+ могут произвольно проверять во время выполнения значение свойства Page.IsValid, чтобы определить, все ли серверные компоненты проверили и допускают данную страницу. Это предоставляет простой способ одной строкой определить, продолжать ли далее логику выполнения. Например, следующий код выполняет проверку Page.IsValid перед перед выполнением запроса к таблице БД, исходя из выбранной категории.
Компоненты дают возможность многократного использования
В дополнение к использованию кода <% %> - чтобы программировать динамическое содержание, разработчики страниц ASP+ теперь могут использовать серверные компоненты ASP+, чтобы программировать веб-страницы. Серверные компоненты объявляются в пределах ASPX-файла, используя специальные теги, которые содержат атрибут runat="server".
Ниже приводится пример кода с использованием четырех компонентов: <form runat=server>, <asp:textbox runat=server>, <asp:dropdownlist runat=server> и <asp:button runat=server>. Во время выполнения эти компоненты автоматически генерируют содержание HTML.
<%@ Page Language="C#"%gt; <html> <head> <link rel="stylesheet"href="intro.css"> </head> <body> <center> <form action="intro4.aspx" method="post" runat=server> <h3> Name: <asp:textbox id="Name" runat="server"/> Category: <asp:dropdownlist id="Category" runat=server> <asp:listitem>psychology</asp:listitem> <asp:listitem>business</asp:listitem> <asp:listitem>popular_comp</asp:listitem> </asp:dropdownlist> <asp:button text="Lookup" runat="server"/> </form> </center> </body> </html>
Эти компоненты автоматически поддерживают любые введенные клиентом значения между проходами туда-обратно на сервер. Это состояние не сохранено на сервере (это вместо сохранено в поле форм <hidden>, которое посылается туда-обратно между запросами). Заметьте также, что клиентский скрипт не требовался на клиенте.
В дополнение к стандартным полям input в HTML - ASP+ предоставляет возможность разработчикам использовать более богатые компоненты управления на их страницах.