Знакомство с ASP.NET 2.0
Страница 2. Технология разделения кода



Технология разделения кода

Основа всего в Web-приложении – это страница. Пользователь, пользуясь браузером, перемещается между страницами, периодически возвращаясь к уже просмотренным ранее страницам, вводя какие-то данные в HTML формы и получая некоторый результат. В ASP.NET страница чаще всего представляет собой Web-форму, содержащую различные элементы управления, реагирующую на события, создаваемые пользователем.
    ASP.NET 1.x позволяет разделять код логики от кода представления, то есть помещать код программной логики страницы в файл .cs или .vb, отдельно от кода собственно страницы, размещаемом в .aspx файле. Эта технология называется Code-Behind. Таким образом, дизайн страницы может быть изменен не затрагивая кода страницы, что позволяет разделить ответственность за внешний вид и работу страницы между дизайнером и программистом. Для этого в .aspx файле можно задать параметры директивы Page.

<%@ Page Language="c#" src="User.aspx.cs" %>

Но для поддержки редактирования с помощью Microsoft Visual Studio .NET в ASP.NET странице необходимо указать класс, соответствующей данной странице и файл, в котором находится код этого класса. Для этого директива Page преобразуется с использованием ключевых слов Codebenind и Inherits.

<%@ Page Language="c#" Codebehind="TheProject.User" Inherits="User.aspx.cs" %>

В ASP.NET 2.0 используется иной механизм разделения кода. В директиве Page при этом необходимо использовать другие ключевые слова: CodeFile и Inherits.

<%@ Page Language="c#" CodeFile="TheProject.User" Inherits="User.aspx.cs" %>

В этом случае код класса программной логики страницы будет размещен в файле указанном в атрибуте CodeFile. Надо отметить, что Visual Studio 2005 использует разделяемые классы (partial classes).

public partial class Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) { }}

Поэтому разработчик может поместить код класса в нескольких файлах, но подобное рассредоточение кода делает приложение весьма громоздким и трудным в поддержке и разработке.
    Используемая в Visual Studio 2003 модель Code-Behind обладает несколькими весьма существенными недостатками. Прежде всего, используя Visual Studio разработчику необходимо компилировать проект перед публикацией, поскольку ASP.NET компилирует страницы, только если указан атрибут Src, не используемый Visual Studio. При этом, поскольку среда ASP.NET обнаруживает изменение даты создания сборки, после каждой замены старой сборки в каталоге bin происходит перезапуск домена приложения, что выливается во временную «заторможенность» в работе приложения.
    Visual Studio 2005 использует новые ключевые слова, поддерживаемые средой выполнения ASP.NET 2.0, а среда выполнения, в свою очередь, использует новую технику компиляции страниц. Это позволяет решить проблему замены сборки на более новую.
Несмотря на это, Visual Studio 2005 по-прежнему позволяет отказаться от разделения кода и поместить код программной логики в самом файле страницы, и использовать теги <script runat="server"></script>. Более того, по умолчанию Visual Studio создает именно страницы без разделения кода.

 
« Предыдущая статья   Следующая статья »