1 ...7 8 9 11 12 13 ...52
Выбор подхода к разработке веб-приложения
На платформе ASP.NET можно создать любое веб-приложение, с любым уровнем сложности и возможностями по масштабированию, несмотря на выбранный подход, однако правильный выбор подхода позволит достичь результата меньшими усилиями и упростить дальнейшую поддержку проекта. Приступая к проектированию очередного веб-приложения, вы, возможно, задумаетесь о выборе подхода WebForms или MVC Framework.
Как уже было сказано ранее, такой выбор можете сделать только вы, основываясь на своих знаниях технологии WebForms и MVC Framework, исходя из требований того самого приложения, над которым вы размышляете. Тем не менее постараемся сформулировать список требований, который может пригодиться при выборе между WebForms и MVC Framework. Требования с краткими комментариями приведены в табл. 2.1. Большинство приведенных требований весьма условны и предназначены лишь для того, чтобы дать читателю пищу для размышлений.


Рассмотрев приведенные в табл. 2.1 требования, можно грубо определить, насколько MVC Framework может быть использована для решения конкретной поставленной задачи.
Нужно отметить еще один важный принцип, который может быть полезен при выборе технологии: предыдущий опыт разработки участников команды, которая будет работать над новым проектом. В случае если у членов команды был опыт создания приложений с использованием платформы PHP, Ruby, Perl и т. п., то очевидным выбором будет MVC Framework, однако если члены команды имеют большой опыт разработки с использованием WebForms или JSP, то переход на MVC Framework может быть для них достаточно длительным, поскольку работа с технологиями вроде WebForms вырабатывает определенный стиль кодирования, и для упрощения разработки и поддержки могут быть использованы различные архитектурные подходы (например, такие как Web Client Software Factory от команды Patters & Practices в Microsoft). MVC Framework навязывает общую архитектуру и подход к написанию кода веб-приложения, а привычки достаточно сложно изменить. Поэтому, если сроки сдачи проекта небольшие, а в команде в основном программисты, знакомые с WebForms, данный аргумент может пересилить все остальные, приведенные ранее.
Реализация подхода MVC в WebForms
Продемонстрируем подход MVC для разработчиков, знакомых с технологией WebForms, выделив логику обработки страницы в контроллер, а саму страницу используя как компонент представления и модель, описывающую данные, размещаемые на странице.
Рассмотрим ASPX-страницу, приведенную в листинге 2.1. На этой странице размещены несколько элементов управления Label, TextBox
и Button
. Логика страницы должна быть простой, и в классической модели WebForms описывается в code-behind-файле, код которого приведен в листинге 2.2.
Листинг 2.1. Страница Default.aspx
" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml">
Ответ сервера:
Text="noKa HeT">
Имя:
|
runat="server">
|
Фамилия:
|
runat="server">
|
Text="Coxpaнить" onclick="btnSave_Click" />
|
Листинг 2.2. Файл Default.aspx.cs
using System;
using WebFormsMvc.Controllers;
namespace WebFormsMvc {
{
protected void btnSave_Click(object sender, EventArgs e) {
lblResponse.Text = txtFirstName.Text + " "
+ txtLastName.Text; }
}
}
Для того чтобы выделить отдельный компонент контроллер, который будет отвечать за логику обработки запросов к странице, таких, например, как щелчок по кнопке или загрузка первоначальных значений в текстовые поля, необходимо обеспечить возможность контроллера модифицировать модель, отображением которой является представление. В случае ASPX-страницы моделью является собственно сама объектная модель страницы, поэтому именно к ней нужно предоставить доступ контроллеру — для этого достаточно отредактировать CS-файл, автоматически создаваемый Visual Studio для страницы, и сделать все поля, соответствующие элементам управления на форме, публичными, как это приведено в листинге 2.3.
Листинг 2.3. Модифицированный файл Default.aspx.designer.cs
namespace WebFormsMvc {
public partial class _Default {
public global::System.Web.UI.HtmlControls.HtmlForm form1;
public global::System.Web.UI.WebControls.Label lblResponse;
public global::System.Web.UI.WebControls.TextBox txtFirstName;
Читать дальше
Конец ознакомительного отрывка
Купить книгу