DevCon12 // msdevcon.ru #msdevcon 23-24 мая, 2012 г. Microsoft.

Презентация:



Advertisements
Похожие презентации
DevCon12 // msdevcon.ru #msdevcon мая, 2012 г. Microsoft.
Advertisements

Microsoft TechDays Людмила Шайкина Quarta Consulting
Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
DevCon12 // msdevcon.ru #msdevcon мая, 2012 г. Microsoft.
Новые продукты Microsoft для повышения качества и эффективности образования Амит Миталь Старший вице-президент Microsoft по развитию социальных проектов.
Microsoft TechDays Павел Маслов MVP, Directory Services.
Microsoft TechDays Павел Дугаев Руководитель проектов Вебзавод
На примере одного дня из жизни руководителя. Поездка в Милан.
Microsoft TechDays Александр Неволин Nevlabs кандидат технических наук.
Microsoft TechDayshttp:// Коршиков Андрей Фёдорович ведущий инженер-программист ЗАО «НИПИ «ИнжГео» MCT, MCITP, MCPD.
Msdevcon.ru#msdevcon. Работа с асинхронными операциями в Win RT Иван Бодягин ABBYY.
Microsoft TechDays Золотовицкий Аркадий Директор по производству «Интеллектуальные системы»
Microsoft TechDays Леонид Шапиро MCT ЦКО «Специалист»
Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
Ромуальд Здебский Microsoft.
Msdevcon.ru#msdevcon. ПРОФИЛИРОВАНИЕ WINDOWS STORE ПРИЛОЖЕНИЙ Филипп Панфилов Mail.Ru Group.
Microsoft TechDays Виталий Дильмухаметов
Msdevcon.ru#msdevcon. OPEN SOURCE РЕШЕНИЯ В ОБЛАКЕ WINDOWS AZURE Воркачёв Владимир.
Microsoft TechDays Марат Бакиров Эксперт по разработке ПО Microsoft
DevCon12 // msdevcon.ru #msdevcon мая, 2012 г. Microsoft.
Транксрипт:

DevCon12 // msdevcon.ru #msdevcon мая, 2012 г. Microsoft

// DevCon12 Асинхронная магия в ASP.NET MVC ЕВГЕНИЙ | eugeneagafonov.com Руководитель группы веб-разработки Lingvo ABBYY

#msdevcon Обзор Асинхронное программирование в.NET

Эволюция.NET C# 1.0 Управляемый код С# 2.0 Generics С# 3.0 LINQ C# 4.0 Динамическое программирование C# 5.0 async и await Асинхронное программирование

Зачем оно нужно? Масштабирование Производительность «Быстрый» интерфейс

Асинхронное программирование APM BeginXXX, EndXXX, IAsyncResult EAP XxxAsync, событие OnXxxCompleted TPL Task

.NET Thread.Start() Очень дорогой объект ThreadPool.EnqueueUserItem() Worker Thread IO Thread (IOCP)

ASP.NET IIS Свой ThreadPool IO Thread передает управление ASP.NET worker thread Thread starvation Если потоки будут долго работать, то пул потоков может кончиться

#msdevcon AsyncController Асинхронное программирование в ASP.NET MVC 3

ASP.NET MVC 3 Исходный код:

В MVC3 Используется EAP Действие разбивается на два метода void ActionAsync ActionResult ActionCompleted() AsyncManager

#msdevcon Task Асинхронное программирование в ASP.NET MVC 4

ASP.NET MVC 4 и Web API Исходный код новой веб-платформы MS: Доступно через Install-Package AspNetMvc Install-Package AspNetWebApi

AsyncController в MVC4 // Controller now supports asynchronous operations. // This class only exists // a) for backwards compat for callers that derive from it, // b) ActionMethodSelector can detect it to bind to // ActionAsync/ActionCompleted patterns. public abstract class AsyncController : Controller { }

Taskи тоже бывают неправильные! Task.Factory.StartNew( ()=> DoWork() ); Возвращает текущий worker thread в thread pool, и забирает еще один Имеет смысл иногда для параллельного выполнения задач, но зависит от конкретики Нужно использовать IO-bound tasks, в этом нам поможет API библиотеки классов

Что же делать? Поддержать работу с Task в MVC3 самим ActionInvoker ControllerDescriptor ActionDescriptor В сумме 4 файла, из которых только один требует усилий

#msdevcon Реально экспериментальное решение. Может падать и вываливаться с ошибками. Давайте немного похимичим! Эксперимент

Неудобно Как перейти от Task к Task ? TaskCompletionSource Помогает перейти от одного Taskа к другому

Счастья все равно нет Нет есть! LINQ провайдер для Task ParallelExtensions от pfx team aspx LinqToTasks 3 файла

#msdevcon Все любят волшебство и фокусы. Время фокусов! Фокус

А что же дальше? С# 5.0 Можно написать быстро, но не совсем правильно Все равно сложности нас подстерегают

#msdevcon Немного софтверной магии! Демонстрация решения Демонстрация

#msdevcon ЕВГЕНИЙ | eugeneagafonov.com Руководитель группы веб-разработки Lingvo ABBYY

#msdevcon Доступна сегодня на: Новая версия Visual Studio!

Полезные материалы /04/04/ aspx

Связанные сессии WEB305 Повышение производительности веб-решений WEB306 Библиотека SignalR WEB207 Новые возможности ASP.NET MVC 4

Пожалуйста Оцените доклад и мастерство докладчика. Форма для оценки находится в вашем инфопакете.

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.