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

Тут можно читать онлайн Гайдар Магдануров - ASP.NET MVC Framework - бесплатно ознакомительный отрывок. Жанр: Интернет, издательство БХВ-Петербург, год 2010. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    ASP.NET MVC Framework
  • Автор:
  • Жанр:
  • Издательство:
    БХВ-Петербург
  • Год:
    2010
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-9775-0462-1
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Гайдар Магдануров - ASP.NET MVC Framework краткое содержание

ASP.NET MVC Framework - описание и краткое содержание, автор Гайдар Магдануров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Рассмотрены основные принципы и возможности технологии 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 Func Foo(Guid? userId)

Для демонстрации реализации данного паттерна перепишем пример паттерна Event по-другому:

public Func XXX(Guid userId)

{

UserData userData = new UserData();

AsyncManager.RegisterTask(

callback => BeginXXX(userId, callback, null),

asyncResult =>

{

userData = EndXXX(asyncResult);

}

);

return () => {

ViewData["userData"] = userData;

return View() ;

};

}

Главное отличие реализации паттерна Delegateв приведенном фрагменте от паттерна Eventсостоит в том, что для возвращения результата выполнения действия используется не ActionResult, а Func,который представляет собой анонимную функцию, возвращающую результат в виде ActionResult. По сравнению с паттерном Eventданный паттерн имеет упрощенный единый механизм, не разделенный на несколько методов, и максимально напоминает работу действий в синхронных контроллерах. При использовании этого паттерна у разработчика нет необходимости заботиться ни об обработке AsyncManager.OutstandingOperations, ни о заполнении AsyncManager.Parameters.

Дополнительные сведения об асинхронных контроллерах

Для асинхронных операций важно понятие времени исполнения запроса, поэтому в стандартный механизм класса AsyncControllerвходит свойство AsyncManager.Timeout, которое позволяет задавать максимальное время ожидания результата выполнения асинхронного действия. В случае, когда действие выполняется дольше, чем определено в AsyncManager.Timeoutмеханизмом, будет вызвано исключение TimeoutException. Для более гибкого управления максимальным периодом ожидания ответа от действия механизм асинхронных контроллеров предлагает два атрибута: AsyncTimeoutAttributeи NoAsyncTimeoutAttribute. Первый устанавливает время ожидания для конкретного действия или контроллера, второй указывает, что ожидания ответа не должно вызвать исключения и ожидать ответа от асинхронного действия требуется без ограничения по времени.

Одним из ограничений механизма асинхронных контроллеров является ограничение на именование методов действий. Вы не можете называть методы действий с префиксами Begin, Endи суффиксом Completed. Это ограничение призвано предотвратить прямой вызов методов типа BeginXXX, EndXXXили XXXCompletedвместо вызова XXX. Тем не менее вы можете воспользоваться атрибутом ActionNameAttributeдля того, чтобы задать необходимый псевдоним методу действия. Следующий фрагмент демонстрирует это:

[ActionName("BeginProcess")]

public ActionResult DoProcess();

Еще одним требованием механизма асинхронных контроллеров является исключение Default.aspx из корня проекта в случае, когда запросы к корневому ресурсу будут асинхронными. Default.aspx, включенный в стандартный проект MVC Framework, может работать только с синхронными запросами.

Неизвестные действия и метод HandleUnknownAction

Во время обработки клиентских запросов весьма распространенной ситуацией является невозможность определить действие, которое необходимо вызвать в ответ на запрос. Класс Controller, базовый класс контроллеров MVC Framework, содержит виртуальный метод HandleUnknownAction, который предназначен для обработки подобных ситуаций. Метод HandleUnknownActionимеет следующее определение:

protected virtual void HandleUnknownAction(string actionName)

{

throw new HttpException(404,

String.Format(CultureInfo.CurrentUICulture,

MvcResources.Controller_UnknownAction,

actionName, GetType().FullName));

}

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

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

ГЛАВА 5

Представление и интерфейс приложения

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

Стандартный механизм представлений на базе WebForms

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

До того как рассматривать непосредственно создание представлений, рассмотрим необходимые компоненты инфраструктуры, обеспечивающие работу представлений — использование code-behind-файлов, мастерские страницы, механизм передачи данных между контроллером и представлением через коллекцию viewDataи строгая типизация представлений.

Code-behind-файлы

Модель использования code-behind-файлов в WebForms является основой разделения логики представления, выполненной в файле разметки ASPX, и бизнес-логики самой страницы, выполненной в файле исходного кода.

Напомним, что непосредственно в файле разметки страницы указана ссылка на code-behind-файл страницы и класс, определенный в code-behind-файле, которому наследует страница:

%@Page Language="C#" Inherits="MyApp.Pg" CodeBehind="Pg.aspx.cs"%

Класс, определенный в code-behind-файле, служит "прослойкой" между страницей и классом System.Web.UI.Page, базовым для всех страниц WebForms, и отвечает за обработку событий жизненного цикла страницы. В случае, если дополнительная обработка событий не является необходимой, файл code-behind может быть смело удален, а страница может непосредственно наследовать классу System.Web.UI.Page:

В MVC Framework не используется жизненный цикл страниц ASP.NET, поэтому для представлений применяется аналогичный подход с исключением code-behind-файла, и страницы наследуют непосредственно классу System.Web.Mvc.ViewPageили обобщающему классу System.Web.Mvc.ViewPage,используемому для строгой типизации представлений, описанному далее.

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

Интервал:

Закладка:

Сделать


Гайдар Магдануров читать все книги автора по порядку

Гайдар Магдануров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




ASP.NET MVC Framework отзывы


Отзывы читателей о книге ASP.NET MVC Framework, автор: Гайдар Магдануров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x