This article has been localized into Russian by the community.
Код, расположенный сзади (CodeBehind)
Хотя наша первая программа получилась хорошей, мы нарушили один из принципов ASP.NET: разделять разметку и код. Как вы помните, мы добавили блок с тэгами <% и %>, в котором разместили строку кода на C# для взвимодействия с текстовой меткой (элементом управления Label). И хотя это выглядит допустимым в маленьком и простом примере, в будущем мы получим смесь C#-кода с большой массой HTML-кода. Если сюда же добавить код на JavaScript и CSS, то очень скоро станет проблематично что-либо поменять. Вот почему в MS придумали технологию CodeBehind, позволяющую полностью отделить разметку (HTML, CSS и т.п.) и код (C#, VB.NET и др). Давайте теперь удалим скриптовый блок (между <% и %>) и запишем его в файл.
VisualStudio автоматически создала файл Default.aspx.cs и добавила его к проекту. Если его не видно в Обозревателе решения, кликните на маленький знак "+" слева от файла Default.aspx. Теперь откройте этот файл. Если вы знакомы с HTML, но не работали с языками программирования (не только на платформе .NET), то на первый взгляд его содержимое может показаться пугающим, т.к. он совершенно не похож на HTML-код. Однако, я попробую объяснить его содержимое, и со временем вы поймете, что технология разделения кода и разметки CodeBehind позволяет лучше организовать разработку веб-приложений. Листинг первоначальной версии файла Default.aspx.cs:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
В его верхней части расположен список с пространствами имен, подключаемых к данному файлу с помощью ключевого слова "using". Я не буду объяснять их детально, т.к. данное учебное пособие по платформе ASP.NET, и, если хотите, вы можете почитать про них в Учебном пособии по C#. Дальше идет класс. Классы являются частью концепции Объектно ориентированного программирования (ООП), которая стала очень популярной, особенно с появлением таких языков как C++, Java и C#. ООП мы тоже не будем объяснять в данном пособии.
У класса задано имя "_Default", а двоеточие после имени означает, что класс отнаследован (в данном случае от класса Page пространства имен System.Web.UI). Путем наследования класса от другого класса с методами (и свойствами) наша страница может уже кое-что делать даже без (дополнительного) программирования. В ASP.NET все классы страниц должны наследоваться от класса Page, либо от других классов, которые наследованы от класса Page.
У класса страницы есть метод, который вызывается при каждой ее загрузке. Он называется Page_Load и уже присутствует в автоматически сгенерированном классе. Давайте, задействуем его для установки текста метки. Можно воспользоваться той же строкой кода, только без тэгов скриптового блока (<% и %>). Добавьте эту строку в метод Page_Load между фигурными скобками:
HelloWorldLabel.Text = "Hello, world!";
Запустите проект (F6) и посмотрите, что получилось. Страница должна выглядеть так же, как и в прошлый раз, но при этом значение метки мы задали в файле класса страницы (в соответствии с CodeBehind). В следующей главе мы познакомимся с кое-чем поинтереснее.