dotSITE
Учебник по C# Шаблоны проектирования Work in Murano Software.
новости материалы решения форумы группы настройки/о проекте

Разделение кода и представления

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

В ASP.NET, благодаря объектно-ориентированной архитектуры, проблему удалось решить очень элегантно. При генерации класса страницы он наследуется от указанного класса, в котором находтся вся логика. Это позволяет писать логику страницы в файле класса, а интерфейс - в .aspx-файле. Покажем пример такого разделения:

Separate.aspx

<%@ Page Src="separate.cs" Inherits="Separate" %>
<form runat="server">
    <asp:Label id="lblMessage" runat="server" />
    <asp:Button id="btnSubmit" runat="server" onclick="btnSubmit_Click" text="submit" />
</form>
    

Separate.cs

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public class Separate : Page
{
    protected Label lblMessage;
    protected Button btnSubmit;

    public void btnSubmit_Click( object sender, EventArgs e )
    {
        lblMessage.Text = "Hello, world";
    }
}
    

При этом страницу не нужно даже специально компилоровать - все будет произведено автоматически. Нужно только зайти на страницу и вуаля:


Здесь мы сделаем несколько пояснений касательно доступа к элементам страницы из кода. Первое - это как работать с серверными элементами управления.

Для доступа к ним проще всего объявить члены класса с именами, соответствующими идентификаторам контролов на форме. Они будут автоматически связаны. Разумеется, члены класса должны быть соответствующего типа из System.Web.UI.WebControls.

Второй момент - обработка сообщений. В Visual Studio связывание проихводится автоматически - через панель Messages:

Чтобы достичь того же эффекта самостоятельно, при инициализации страницы нужно добавить делегата в список обработчиков сообщения. Код выглядит подобным образом:

btnSubmit.Click += new EventHandler(btnSubmit_Click);
    

Также обработчик можно прописать прямо в коде страницы, как было сделано в примере выше. Более подробно события будут разобоаны в следующей части.

<< Предыдущая Следующая >>

Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2012 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development