Чтение онлайн

на главную - закладки

Жанры

Шрифт:

namespace Routing

{

using System.Web.Routing;

using Microsoft.VisualStudio.TestTools.UnitTesting;

using MvcContrib.TestHelper; using Routing.Controllers;

[TestClass]

public class TestRoutesMSTest

{

[TestMethod]

public void TestSimpleRoute

{

"~/".Route.ShouldMapTo<HomeController>(x => x.Index);

}

[TestInitialize]

public void SetUp

{

MvcApplication.RegisterRoutes(RouteTable.Routes);

}

[TestCleanup]

public void TearDown

{

RouteTable.Routes.Clear;

}

[TestMethod]

public void TestProduct

{

"~/Product/750".Route

.ShouldMapTo<ProductController>(x => x.GetById(750));

}

[TestMethod]

public void TestIgnoreAxd

{

"~/someroutetoigonre.axd".ShouldBeIgnored;

}

[TestMethod]

public void TestProductListValidYear

{

"~/ProductList/2009".Route

.ShouldMapTo<ProductController>(x => x.List(2009));

[TestMethod]

public void TestProductListInvalidYear

{

Assert.AreNotEqual("~/ProductList/1800".Route

.Values["controller"], "Product");

}

}

}

Утилита ASP.NET Routing Debugger

Для тестирования и проверки правильности создания маршрутов в вашем приложении может пригодиться небольшой инструмент от разработчиков MVC Framework. Данный инструмент позволяет в режиме отладки проверить все зарегистрированные маршруты на работоспособность. Кроме того, этот инструмент поможет посмотреть на то, как и в каком порядке реагируют ваши маршруты на запросы с различными адресами URL.

Примечание

Инструмент ASP.NET Routing Debugger доступен для скачивания по адресуrl-routing-debugger.aspx.

*****************************

Для работы с Routing Debugger необходимо добавить в проект ссылку на сборку RouteDebug.dll и в файле Global.asax добавить одну строку кода в методе Application_Start так, как показано в следующем фрагменте:

protected void Application_Start

{

RegisterRoutes(RouteTable.Routes);

RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);

}

После этого, запущенный проект вместо ожидаемой страницы выведет специальную страницу с отчетом о зарегистрированных в проекте маршрутах и их параметрах (рис. 6.11).

ASP.NET Routing Debugger может быть полезен, когда ваш проект содержит массу определенных маршрутов. В таком случае вы получаете наглядный инструмент, который покажет вам порядок и параметры маршрутов, и их реакцию на любой запрос. Используя Routing Debugger, вам не придется долго ломать голову над вопросом: "Почему на этот запрос вызывается этот маршрут?"

Заключение

Маршрутизация — это значительный элемент ASP.NET и базовый механизм для работы MVC Framework. Маршрутизация позволяет организовать обработку пользовательских запросов в виде, удобном для построения приложения, согласно паттерну MVC. С использованием маршрутизации в MVC Framework можно отойти от привязки запроса к конкретной странице ASPX и использовать строку запроса как описатель необходимого для вызова действия и контроллера.

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

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

ГЛАВА 7

Ajax-функциональность

Последнее время все чаще и чаще слышны разговоры про Ajax. Появилось множество сайтов, использующих эту технологию, многие из них разработаны гигантами вроде Google или Microsoft. Ajax стал краеугольным механизмом для нового понятия Web 2.0. Так что же это такое — Ajax?

Ajax расшифровывается как Asynchronous JavaScript And XML, т. е. "асинхронный JavaScript и XML". Основное предназначение Ajax — осуществление запросов и получение данных для веб-страницы асинхронным способом, без перезагрузки самой страницы. Таким образом, пользователь не замечает запросы, посылаемые на сервер, а данные, передаваемые между сервером и клиентом, значительно уменьшаются в связи с тем, что пропадает надобность формировать и отправлять пользователю всю страницу целиком, по этой же причине снимается существенная нагрузка на сервер, которому нет нужды перестраивать страницу целиком или помещать ее в кэш.

Сама технология не нова, в той или иной мере она использовалась годами ранее, и только с широким распространением веб-сервисов появился специальный термин, который описывает не одну технологию, а подход к взаимодействию клиентского кода на стороне пользователя и бизнес-логике на сервере.

История успеха Ajax

Технология Ajax начала свою жизнь в середине 90-х годов. Когда вебтехнологии стали развиваться бурными темпами, появилась конкуренция браузеров и многие крупные компании старались внести свой вклад в создание будущего вида интернет-технологий. Так, компания Microsoft представила в 1996 году элемент iFrame, который позволял в одном окне браузера загружать данные из нескольких источников. Одним из применений iFrame стала незаметная для пользователя загрузка данных в скрытый фрейм с последующим использованием этих данных на основной странице. Можно сказать, что IFrame заложил некоторые основы Ajax, и даже сегодня данный подход широко используется на практике.

Чуть позднее компания Microsoft вновь внедрила инновационную технологию в свой браузер Internet Explorer, которая позволяла еще более просто асинхронно получать данные с сервера. Эта технология сегодня известна как объект XMLHttpRequest, который поддерживается всеми браузерами. Изначально XMLHttpRequest представлял собой ActiveX-компонент, который могли использовать разработчики, создающие свои продукты, нацеленные на работу в Internet Explorer. Этот компонент позволял при помощи JavaScript делать асинхронные запросы на сервер с получением данных в формате XML. Сама компания Microsoft использовала его в веб-версии почтового клиента Outlook.

Поделиться:
Популярные книги

История западной философии

Рассел Бертран Артур Уильям
Пути философии
Научно-образовательная:
история
философия
культурология
5.00
рейтинг книги
История западной философии

Меняя маски

Метельский Николай Александрович
1. Унесенный ветром
Фантастика:
боевая фантастика
попаданцы
9.22
рейтинг книги
Меняя маски

Наследие Маозари 7

Панежин Евгений
7. Наследие Маозари
Фантастика:
боевая фантастика
юмористическое фэнтези
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Наследие Маозари 7

Первый среди равных

Бор Жорж
1. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных

Играть... в тебя

Зайцева Мария
3. Звериные повадки Симоновых
Любовные романы:
современные любовные романы
5.25
рейтинг книги
Играть... в тебя

Монстры

Говард Роберт Ирвин
2009. Антология
Фантастика:
фэнтези
социально-философская фантастика
ужасы и мистика
юмористическая фантастика
детективная фантастика
6.40
рейтинг книги
Монстры

Кодекс Охотника. Книга XXXIX

Сапфир Олег
39. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
боевая фантастика
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIX

Барон Бранд Берс. Том 3

Limonad
3. Бранд Берс
Проза:
магический реализм
5.00
рейтинг книги
Барон Бранд Берс. Том 3

Триггер и её друзья

Шмиц Джеймс Генри
The Federation Of The Hub
Фантастика:
научная фантастика
5.00
рейтинг книги
Триггер и её друзья

Первый среди равных. Книга XII

Бор Жорж
12. Первый среди Равных
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Первый среди равных. Книга XII

Экспансия — II

Семенов Юлиан Семенович
11. Штирлиц
Детективы:
исторические детективы
7.78
рейтинг книги
Экспансия — II

Путь Князя. Эллирия в огне

Рокотов Алексей
8. Путь князя
Фантастика:
фэнтези
рпг
попаданцы
5.00
рейтинг книги
Путь Князя. Эллирия в огне

Дважды одаренный

Тарс Элиан
1. Дважды одаренный
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
попаданцы
5.25
рейтинг книги
Дважды одаренный

Воин-Врач

Дмитриев Олег
1. Воин-Врач
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
6.00
рейтинг книги
Воин-Врач