Гайдар Магдануров - ASP.NET MVC Framework

Здесь есть возможность читать онлайн «Гайдар Магдануров - ASP.NET MVC Framework» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2010, ISBN: 2010, Издательство: БХВ-Петербург, Жанр: Интернет, Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

ASP.NET MVC Framework: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «ASP.NET MVC Framework»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Рассмотрены основные принципы и возможности технологии ASP.NET MVC Framework и показаны способы ее практического использования при разработке веб-приложений. Описаны преимущества подхода разработки MVC и рассмотрена структура MVC-приложения. Приведено сравнение технологии WebForms и MVC Framework и рассмотрены вопросы их совмещения.
Описаны модель и доступ к данным (технологии LINQ, Entity Framework и др.), контроллеры, представление и интерфейс приложения, механизмы маршрутизации и Ajax-функциональность. Уделено внимание вопросам тестирования веб-приложений. Рассмотрены особенности применения ASP.NET MVC 2 в Visual Studio 2010.
Для программистов

ASP.NET MVC Framework — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «ASP.NET MVC Framework», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

public global::System.Web.UI.WebControls.TextBox txtLastName;

public global::System.Web.UI.WebControls.Button btnSave;

}

}

После этого можно создать отдельный класс-контроллер для страницы Default.aspx, код которого приведен в листинге 2.4, и обращаться к нему из обработчиков событий страницы, как это показано в листинге 2.5. Обработчики событий страницы, в данном случае, выполняют только утилитарную роль привязки вызовов методов контроллера к событиям страницы.

Листинг 2.4. Файл DefaultPageControNer.cs

namespace WebFormsMvc.Controllers {

public class DefaultPageController {

public DefaultPageController(_Default pg) { page = pg; }

public void ButtonSaveClick()

{

page.lblResponse.Text = page.txtFirstName.Text + " "

+ page.txtLastName.Text;

}

public void PageLoad()

{

if (!page.IsPostBack)

{

page.txtFirstName.Text = "Иван";

page.txtLastName.Text = "Кузнецов";

}

}

}

}

Листинг 2.5. Модифицированный файл Default.aspx.cs

using System;

using WebFormsMvc.Controllers;

namespace WebFormsMvc {

public partial class _Default:System.Web.UI.Page {

protected DefaultPageController controller;

protected void btnSave_Click(object sender, EventArgs e)

{

controller.ButtonSaveClick();

}

protected void Page_Load(object sender, EventArgs e)

{

controller = new DefaultPageController(this);

controller.PageLoad();

}

}

Теперь, когда логика страницы вынесена в отдельную сущность — контроллер, есть возможность тестирования логики в отрыве от представления. Для этого достаточно создать экземпляр класса контроллера и передать ему проинициализированный объект модели. Поскольку в качестве модели выступает ASPX-страница, необходимо создать экземпляр класса страницы и про-инициализировать значащие элементы управления, поскольку при тестировании не будут задействованы внутренние механизмы создания экземпляров страниц.

В листинге 2.6 приведен простейший unit-тест для проверки обработчика события загрузки страницы.

Листинг 2.6. Unit-тест для события загрузки страницы

[TestMethod]

public void TestPageLoad()

_Default page = new _Default();

page.txtFirstName = new TextBox();

page.txtLastName = new TextBox();

DefaultPageController controller = new DefaultPageController(page);

controller.PageLoad();

Assert.AreEqual(page.txtLastName.Text, "Кузнецов");

}

Развивая это решение, можно пойти дальше и для упрощения разработки и тестирования для всех страниц создать интерфейсы, описывающие модель. В этом случае на этапе создания unit-тестов можно будет работать со специальными тестовыми экземплярами модели, автоматически инициализирующими нужные поля при создании, не прибегая к созданию экземпляров класса страницы и написанию большого количества кода в unit-тестах.

Указанный ранее подход может быть применен в веб-приложениях, использующих подход WebForms, с целью упрощения тестирования, однако использование такого подхода не упрощает миграцию на MVC Framework. Поэтому, если вы проектируете приложение на WebForms, но подумываете над будущей миграцией на MVC Framework, лучший совет для вас — откажитесь от планов миграции, либо сразу же пишите на основе MVC Framework.

Совмещение WebForms и MVC Framework в рамках одного веб-приложения

Обидно терять наработки, особенно когда они еще могут пригодиться и сохранить большое количество времени на разработку нового функционала. И еще более обидно, когда есть технология, которая просто идеально подходит для решения поставленной задачи, однако существующее решение уже построено на другой технологии, его необходимо развивать, а времени переписать все заново нет.

В этих случаях можно подумать над совмещением технологий WebForms и MVC Framework, возможно, несколько жертвуя принципами архитектуры MVC.

Использование элементов управления WebForms в MVC-приложениях

Поскольку в MVC Framework в качестве движка представлений по умолчанию используется стандартный механизм ASPX-страниц, то можно попробовать использовать существующие элементы управления на MVC-страницах. Однако нужно помнить о том, что для представлений в MVC-приложениях не работает стандартный механизм обработки событий, и элементы управления теряют свои серверные возможности по обработке событий. Поэтому для подобного использования пригодны элементы управления, представляющие ценность на этапе первоначальной генерации разметки, отправляемой пользователю, такие как, например, Repeaterили GridView.

Чтобы продемонстрировать эту возможность, используем декларативный источник данных sqlDataSourceи GridViewв представлении Index.aspx, в результате получим страницу, приведенную на рис. 2.1. Код страницы приведен в листинге 2.7.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «ASP.NET MVC Framework»

Представляем Вашему вниманию похожие книги на «ASP.NET MVC Framework» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «ASP.NET MVC Framework»

Обсуждение, отзывы о книге «ASP.NET MVC Framework» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x