logo search
[ПСП] / lab22

Архитектура web-приложения asp.Net

Теперь, когда у нас уже есть опыт создания очень простого приложения ASP.NET, пора разобраться с основными особенностями архитектуры ASP.NET в целом. Как мы помним, среда выполнения поместила в исходный скриптовый блок на нашей странице следующий блок с таинственным атрибутом Codebehind:

<%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="false" Inherits="FirstWebApplication.WebForm1" %>

Главное различие между классическими ASP и ASP.NET заключается в том, что страница *.aspx, которую запрашивает внешний клиент, представлена уникальным классом С#, на который и указывает атрибут Codebehind. Когда клиент запрашивает страницу, среда выполнения ASP.NET создает объект этого класса. Этот файл не показывается в окне Solution Explorer. Чтобы его открыть, необходимо щелкнуть правой кнопкой мыши на уже открытом файле *.aspx и в контекстном меню выбрать View Code. Изначально содержимое этого файла выглядит следующим образом:

namespace FirstWebApplication

{

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

public class WebForm1 : System.Web.UI.Page

{

public WebForm1()

{

Page.Init =+ new System.EventHandler(Page_Init);

}

protected void Page_Load(object sender. System.EventArgs e)

{

// Добавляем пользовательский код для инициализации страницы

}

protected void Page_Init(object sender, EventArgs e)

{

InitializeComponent();

}

private void InitializeComponent()

{

this.Load += new System.EventHandler(this.Page_Load);

}

}

}

Как мы видим, исходный код очень простой. Конструктор класса устанавлива­ет обработчик события для события Init. Реализация этого обработчика вызывает метод InitializeComponent(), который, в свою очередь, устанавливает обработчик события Load.