Гайдар Магдануров - 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», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

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

Интервал:

Закладка:

Сделать

System.Web.Mvc, Version=1.0.0.0,

Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

verb="*" path="*.mvc" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc,

Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

Эти определения обработчиков необходимо заменить на следующие:

type="Microsoft.Web.Mvc.MvcHttpAsyncHandler, Microsoft.Web.Mvc"/>

verb="*" path="*.mvc" type="Microsoft.Web.Mvc.MvcHttpAsyncHandler,

Microsoft.Web.Mvc"/>

После всех изменений можно приступать к работе с асинхронными контроллерами. Для того чтобы класс контроллера стал асинхронным, необходимо наследовать его от класса AsyncController:

public class SomeAsyncController : AsyncController

{

...

}

После этого конструктор по умолчанию, унаследованный от AsyncController, определит новый вариант ActionInvokerв виде экземпляра класса AsyncControllerActionInvokerдля того, чтобы выполнять асинхронные действия. Для реализации асинхронных действий механизм AsyncControllerпредлагает три паттерна, которые вы вольны использовать по отдельности либо смешивать их друг с другом: IAsyncResult, Event, Delegate.

Паттерн IAsyncResult

Паттерн IAsyncResultпредполагает, что разработчик сам создаст асинхронную операцию. Согласно этому паттерну, вместо одного метода действия с именем XXX создаются два метода, BeginXXX и EndXXX, со следующим определением параметров:

public IAsyncResult BeginXXX(Guid? userId, AsyncCallback callback, object state);

public ActionResult EndXXX(IAsyncResult asyncResult);

Этот паттерн работает следующим образом:

1. MVC принимает запрос на выполнение действия xxx.

2. Механизмы MVC и AsyncController вызовут BeginXXX точно так же, как и любое другое синхронное действие.

3. Предполагается, что метод Beginxxx создаст некую тяжеловесную асинхронную операцию, например файловое чтение или запрос к базе данных, и использует переданную через параметры функцию обратного вызова callbackдля вызова после завершения асинхронной операции.

4. После выполнения асинхронной операции будет вызван второй метод Endxxx, которому будет передан результат выполнения Beginxxx в виде экземпляра IAsyncResult.

5. Метод Beginxxx, используя данные, полученные от Beginxxx, формирует обычный для всех действий результат в виде ActionResultили его производных.

Паттерн Event

Согласно этому паттерну, метод действия разделяется на два метода: запуска и завершения:

public void XXX(Guid? userId);

public ActionResult XXXCompleted(...);

Метод xxx соответствует обычному синхронному действию и вызывается стандартно. Полный механизм работы данного паттерна состоит из следующих действий:

1. MVC принимает запрос на выполнение действия xxx.

2. Механизмы MVC и AsyncController вызовут XXX точно так же, как и любое другое синхронное действие.

3. Разработчик определяет внутри метода xxx асинхронную операцию, после запуска которой метод завершает свое выполнение.

4. Чтобы механизм асинхронных контроллеров мог определить, когда следует вызвать XXXCompleted, разработчик должен воспользоваться свойством AsyncManager.OutstandingOperations, которое является стандартным для класса контроллера AsyncController.

5. Разработчик инкрементирует AsyncManager.OutstandingOperationsпри создании каждого асинхронного процесса и заботится о том, чтобы по завершению процесса свойство AsyncManager.OutstandingOperationsбыло декрементировано.

6. Механизм AcyncControllerActionInvokerследит за свойством AsyncManager.OutstandingOperationsи вызывает XXXCompleted, когда это свойство обнулится, что означает завершение работы всех асинхронных процессов.

7. Параметры для XXXCompletedопределяет разработчик. Для того чтобы AcyncControllerActionInvokerмог правильно выполнить XXXCompletedи передать необходимые параметры, разработчик заполняет специальную структуру AsyncManager.Parameters, которая является частью класса AsyncController. Структура AsyncManager.Parametersзаполняется при работе метода xxx.

8. После завершения работы XXX механизм AcyncControllerActionInvokerвызывает метод XXXCompletedс набором параметров на базе AsyncManager.Parameters.

9. Используя переданные параметры, метод XXXCompletedвозвращает стандартный результат в виде ActionResultили его производных.

Следующий фрагмент кода демонстрирует реализацию паттерна Event:

public void SelectUser(Guid? userId)

{

AsyncManager.Parameters["userData''] = new UserData();

AsyncManager.OutstandingOperations.Increment();

ThreadPool.QueueUserWorkItem(o =>

{

Thread.Sleep(2000);

AsyncManager.OutstandingOperations.Decrement();

}, null);

}

public ActionResult SelectUserCompleted(UserData userData)

{

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

Интервал:

Закладка:

Сделать

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

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


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

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

x