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

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

Жанры

Шрифт:

<input name="_RequestVerificationToken" type="hidden"

value="71QjBJILoVngYTD+UZ3JTn8KMsJ/Yo48Q2sSOLo6cgpYHc2qOG4UudRujINZtg4L" />

Для проверки этого скрытого поля на сервере необходимо добавить к вызываемым действиям атрибут ValidateAntiForgeryToken так, как показано во фрагменте кода:

[ValidateAntiForgeryToken]

public ActionResult ChangePassword(string currentPassword,

string newPassword, string confirmPassword)

Теперь любой POST-запрос к действию ChangePassword приведет к сопоставлению скрытого параметра

формы с внутренним, сформированным на сервере. В случае, если параметры не совпадают, возникнет исключение, которое предотвратит несанкционированный доступ (рис. 7.11). Таким образом, проделав несложные действия, вы надежно защитите себя от CSRF-атак.

Расширения jQuery

Библиотека jQuery получила свое широкое распространение и огромную популярность не только за свои возможности в работе с DOM-моделью документа и Ajax. В большой степени популярности jQuery способствовало сообщество разработчиков, которые создавали и создают расширения к jQuery. Простота процесса создания плагинов к этой библиотеке послужила бурному росту числа расширений функционала jQuery. На текущий момент уже существует несколько тысяч всевозможных плагинов, которые помогают решать полный спектр задач на стороне клиента: от упрощения работы с данными до реализации богатых визуальных эффектов.

Существуют плагины jQuery и для упрощения работы с Ajax. Найти их можно по адресугде на момент написания книги таких плагинов было представлено 182 штуки. В табл. 7.3 перечислены некоторые из них.

Выбор между ASP.NET Ajax и jQuery

Перед разработчиками проектов на базе ASP.NET MVC может встать вопрос: с помощью чего реализовывать работу с Ajax-запросами при разработке клиентской части проекта. И jQuery и ASP.NET Ajax выполняют схожие функции, хотя различаются в подходах. Ответ на этот вопрос зависит от требований, которые разработчики предъявляют к проекту. Рассмотрим некоторые из них по порядку.

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

? Сложность. Предполагается, что для работы с jQuery требуются навыки JavaScript-разработки и знание принципов работы самой библиотеки. С другой стороны, ASP.NET Ajax предлагает решение задач, связанных с Ajax-запросами декларативным путем, знакомым каждому разработчику ASP.NET.

? Перспективы. Используя jQuery, разработчик получает не только механизм управления Ajax-запросами, но и богатый функционал по работе с DOM-моделью. С помощью jQuery разработчик может производить очень быстрые и оптимизированные процедуры поиска, модификации, удаления и добавления элементов DOM. jQuery позволяет оперировать запросами с помощью мощных селекторов, основанных на синтаксисе селекторов CSS3. Это дает в руки разработчика мощный инструмент

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

? Затратность. Использование любой JavaScript-библиотеки означает дополнительные расходы на количество пересылаемой информации от сервера клиенту. С применением GZip-сжатия на стороне сервера размер передаваемых данных при использовании библиотеки jQuery составляет около двадцати килобайт. С применением функционала ASP.NET Ajax это число может увеличиться до двух раз. Но при расчете затратности необходимо учитывать потенциальное увеличение размера JavaScript-файлов при использовании сторонних или собственных плагинов к jQuery. Кроме того, в перспективе ASP.NET Ajax получит механизм гибкого контроля над размером JavaScript-кода, когда разработчик сможет указать, какие части функционала следует использовать и отсылать клиенту, что значительно уменьшит размер пересылаемых данных.

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

Заключение

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

Технология Ajax — это современная технология, которая все более широко распространяется в Интернете. Возникает все больше крупных и мелких вебпроектов, которые используют Ajax в той или иной мере. Многие старые проекты при обновлении также начинают использовать Ajax. В связи с этим понимание и умение использовать технологию на практике — это важное условие построения современного веб-сайта в наше время. И как мы показали в этой главе, MVC Framework предоставляет все возможности для работы с Ajax и поддерживает разработчика удобными инструментами.

ГЛАВА 8

Тестирование веб-приложений

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

В этой главе мы воспользуемся популярным решением с открытым кодом для создания автоматических тестов — NUnit, которое стало стандартом "де-факто" для многих команд веб-разработчиков на платформе Microsoft .NET.

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

Дважды одаренный. Том VIII

Тарс Элиан
8. Дважды одаренный
Фантастика:
боевая фантастика
альтернативная история
аниме
попаданцы
5.00
рейтинг книги
Дважды одаренный. Том VIII

КГБ. Председатели органов госбезопасности. Рассекреченные судьбы

Млечин Леонид Михайлович
Научно-образовательная:
история
6.25
рейтинг книги
КГБ. Председатели органов госбезопасности. Рассекреченные судьбы

Ночной молочник

Курков Андрей Юрьевич
Детективы:
триллеры
6.25
рейтинг книги
Ночной молочник

Я Пилигрим

Хейз Терри
Детективы:
прочие детективы
боевики
7.67
рейтинг книги
Я Пилигрим

По светлому следу (сборник)

Томан Николай Владимирович
Детективы:
шпионские детективы
7.50
рейтинг книги
По светлому следу (сборник)

Цеховик. Книга 1. Отрицание

Ромов Дмитрий
1. Цеховик
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Цеховик. Книга 1. Отрицание

Мстители. Дилогия

Сандерсон Брендон
Мстители
Фантастика:
социально-философская фантастика
научная фантастика
боевая фантастика
постапокалипсис
8.09
рейтинг книги
Мстители. Дилогия

Астроном

Шехтер Яков
Проза:
современная проза
5.00
рейтинг книги
Астроном

Мир приключений 1967 г. №13

Булычев Кир
Альманах "Мир приключений"
Фантастика:
научная фантастика
5.00
рейтинг книги
Мир приключений 1967 г. №13

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Эволюционер из трущоб. Том 10

Панарин Антон
10. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 10

Я царь. Книга XXVIII

Дрейк Сириус
28. Дорогой барон!
Фантастика:
боевая фантастика
аниме
попаданцы
5.60
рейтинг книги
Я царь. Книга XXVIII

Хроноагент

Добряков Владимир Александрович
1. Хроноагент
Фантастика:
боевая фантастика
6.81
рейтинг книги
Хроноагент

История Древнего мира. От истоков Цивилизации до падения Рима

Бауэр Сьюзен Уайс
Страницы истории
Научно-образовательная:
история
5.00
рейтинг книги
История Древнего мира. От истоков Цивилизации до падения Рима