Architecture Net

       

Архитектура Web-форм


Web-форма состоит из двух частей:

  • отображаемого содержимого, или презентации формы. Как правило, отображаемое содержимое описывается на языке HTML;
  • программного кода, который описывает логику взаимодействия с визуальными элементами.
  • Физически Web-форма представлена файлом с расширением . aspx. Расширение любой HTML-страницы можно изменить на .aspx. При этом представление страницы с новым расширением будет тождественно представлению исходной страницы. Иными словами, Web-формы совместимы снизу вверх с обычными HTML-страницами.
    Особенность Web-форм состоит в способе, при помощи которого программный код отделяется от самой формы. Исходный код (написанный не на C++) может храниться в отдельном не скомпилированном файле. Или же программный код (снова таки, не на C++) может быть вложен в . aspx-файл. И, наконец, код (написанный на С#, VB или C++) может храниться в предварительно скомпилированной сборке, содержащей динамически подключаемую библиотеку (DLL). Когда страницы загружаются Web-сервером, выполняется код, описывающий пользовательский интерфейс. Этот код динамически формирует отображаемую клиентом страницу.
    Чтобы четче представить архитектуру Web-форм, написанных на C++, мы рассмотрим пример HelloCodebehind. Эта программа отображает информацию, введенную пользователем. Чтобы запустить приложение, введите в адресной строке броузера унифицированный указатель информационного ресурса (URL) http: //localhost/NetCpp/HeiloCodebehind. aspx. Код, написанный на C++, содержится в файле HelloCodebehind.aspx.h. Обратите внимание, что данный проект создает динамически подключаемую библиотеку (DLL) — файл HelloCcdebehind.dl]. Эта динамически подключаемая библиотека (DLL) затем копируется в подкаталог bin виртуального каталога. (Виртуальный каталог мы создали раньше для хранения примеров программ, которые рассматриваются в главе 10 "ASP.NET и Web-формы". Так было сделано потому, что информационный сервер Internet (US) ищет загружаемые динамически подключаемые библиотеки (DLL) в этом подкаталоге.) Код, который описывает видимые эпементы страницы (презентацию страницы), приведен ниже. Он содержится в файле HelloCodebehind.aspx:


    <!-- KelloCoaebehind.aspx -->
    <%@ Assembly Name=" HelloCodebehind" °>
    <!-- Имя сборки -->
    <%@ Page Inherits= MyWebPage ">
    <HTML>
    <HEAD>
    </HEAD>
    <BODY> <!-- ТЕЛО -->
    <FORM RUNAT="SERVER">YOUR NAME:&nbsp;
    <asp:textbox id=txtName Runat="server"></asp:textbox>
    <p>asp:button id=cmdEcho onclick=cmdEcho__Click Text="Echo"
    runat="server" tooltip="Click to echo your name">
    </asp :buttonx/p>
    <asp:lacel id=lblGreeting runat="server">
    </asp:label>
    <P></P>
    </FORM>
    </BODY>
    <!-- тело -->
    </HTML>
    Код, который создает интерфейс пользователя, содержится в файле HelloCodebehind. h:
    //HelloCodebehind.h
    fusing <System.dll>
    fusing <System.Web.dll>
    using namespace System;
    // использование пространства имен Система;
    using namespace System::Web;
    // использование пространства имен Система::Сеть;
    using namespace System::Web::UI;
    // использование пространства имен
    // Система::Сеть:пользовательский интерфейс;
    using namespace System::Web::UI::WebControls;
    // использование пространства имен
    // Система::Сеть::Пользовательский интерфейс::WebControls;
    public _gc class MyWebPage : public System::Web::UI::Page
    // класс сборщика мусора MyWebPage : общедоступная Система::
    // Сеть:: Пользовательский интерфейс:: Страница
    {
    protected: // защищенный
    TextBox *txtName;
    Button *cmdEcho; // Кнопка
    Label *lblGreeting; // Метка
    public:
    void cmdEcho_Click(Object *Source, EventArgs *e)
    {
    IblGreeting-XText = // Текст
    String::Format( // Строка:: Формат "Hello, (0).
    Welcome to Managed C++ ASP.", // "Привет, {О}. Добро пожаловать
    // в Управляемый C++ ASP. ",
    txtName->Text); // Текст
    }
    };

    Этот код нужно скомпилировать отдельно и развернуть полученную сборку HelloCodebehind. dll в каталоге \OI\NetCpp\ChaplO\bin. Информационный сервер Internet (US) автоматически ищет загружаемые файлы в подкаталоге bin виртуального каталога.

    CompEbook.ru Железо, дизайн, обучение и другие


    Содержание раздела