Андрей Кулешов




ASP.NET MVC 4
Чем порадовал, чем удивил и что оставило равнодушным
Что нового?
(официальная версия)

▪ Обновленные шаблоны проектов
▪ Слияние и минификация ресурсов
▪ Новые шаблоны для мобильных сайтов
▪ Улучшенная поддержка асинхронных методов
▪ ASP.NET Web API
▪ Множество нововведений для мобильных приложений
▪ Больше опен-сурса по умолчанию
Adaptive templates
▪ Новые красивые страницы-по-умолчанию
▪ Используют адаптивный рендеринг
▪ Всѐ.
Bundling & Minification - зачем
▪ Решает задачу производительности при загрузке ресурсов, которые
  требуются нашей странице для корректной работы (в самую первую очередь
  – JavaScript, во вторую очередь – CSS, в третью – разнообразные
  LESS, html-шаблоны etc…)
▪ Первая очередь яваскрипта обусловлена блокирующей природой его
  загрузки
  Пока мы грузем яваскрипт, браузер практически останавливает свою работу
  А грузим мы его медленно из-за ограничения на количество одновременных
  скачиваний с одного домена
Демо
Bundling & Minification в ASP.NET MVC 4
Bundling & Minification – реализация в
ASP.NET MVC 4
Возможности                          Отсутствующие возможности

▪ Работает согласно названию, что,   ▪ Автоматический fallback для CDN-
  в общем-то, уже неплохо             скриптов

▪ Дает возможность b&m файлы по      ▪ Неудобно организована настройка
  списку или из папки по шаблону       порядка фалов внутри bundle
                                     ▪ Ручная организация порядка
▪ Запрос необходимых файлов            вывода bundles
  возможен как с layout-страницы,
  так и из отдельных View            ▪ В debug-режиме к пути файлов не
                                       добавляется хэш, что дает
                                       простор для проблем с
                                       кэширования на машине
                                       разработчика
Async controllers
▪ Позволяют разгрузить сервер и убрать простой потока, ожидающего
  асинхронного ответа от удаленного ресурса
▪ Существовали в MVC 3, но их синтаксис сложно было назвать тривиальным
▪ ASP.NET MVC 4 поддерживает введеные в .NET 4.5 ключевые слова
  async/await
  Вместо ActionResult – возвращаем Task<ActionResult>
▪ Обработка ошибок - поддерживается декларативное задание таймаутов на
  асинхронные операции и вывод custom views – пользователь будет видеть
  красивые сообщения
▪ Не забываем наследоваться от базового класса AsyncController (я почти
  забыл )
WebAPI
▪ Поставляется вместе с ASP.NET MVC 4
▪ По внутреннему устройству не имеет никакого отношения к ASP.NET MVC 4
▪ Но все равно заслуживает внимания – решение получилось интересным
WebAPI – организация доступа к данным по
шаблону MVC MC
▪ Цель – создавать сервисы – поставщики данных – специально заточенные
  под работу по протоколу HTTP
▪ В отличие от WCF, где одной из целей было абстрагирование от транспорта,
  WebAPI использует более глубокую интеграцию с HTTP
▪ Для CRUD-операций используется HTTP-verbs (POST, GET, PUT, DELETE)
WebAPI – идеи, пришедшие из ASP.NET MVC
▪ Одной из задач было, чтобы программистам ASP.NET MVC было более или
  менее комфортно с новым WebAPI

▪ Контроллеры
▪ Model binding and validation
▪ Роутинг (с изменениям – дефолтный маппинг имен методов не по URL, а по
  verb-ам запросов)
▪ Фильтры
▪ Scaffolding
▪ Тестирование
WebAPI
▪ Content negotiation – отдает данные в том формате, в котором просят.
  Ну, или очень старается.
  Что ценно – можно дописывать свои форматы (JSONP в частности)
▪ Query composition
▪ Поддержка IoC-контейнеров – даже лучше, чем у ASP.NET MVC
▪ Create custom help and test pages – интерфейс IApiExplorer
Новые опен-сурс библиотеки
▪ Были давно – jQuery, jQuery UI, Modernizr
▪ JSON.NET
▪ DotNetOpenAuth
Не успели
▪ Single Page Application – позволяет создавать приложения, работающие
  полностью на клиенте (одна страница, которая грузит с сервера только
  данные). Не успели к релизу, обещают отдельным пакетом
▪ Recipes
Интересное чтение
▪ Professional ASP.NET MVC 4 by Phil Haack and many, many others
▪ http://www.asp.net/mvc
▪ http://www.asp.net/mvc/mvc4 - What’s new
▪ http://www.asp.net/whitepapers/mvc4-release-notes
▪ http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification - как слышится,
  про то и рассказывается 
Интересное видео
▪ A look at ASP.NET MVC 4 by Scott Guthrie
▪ C#5, ASP.NET MVC 4, and asynchronous Web applications by Steven
  Sanderson
Вопросы?
                 Внимательно слушаю! 


Андрей Кулешов

kaa-tula@ya.ru
    akuleshov.tula




Специально для http://GetDev.NET

ASP.NET MVC 4

  • 1.
    Андрей Кулешов ASP.NET MVC4 Чем порадовал, чем удивил и что оставило равнодушным
  • 2.
    Что нового? (официальная версия) ▪Обновленные шаблоны проектов ▪ Слияние и минификация ресурсов ▪ Новые шаблоны для мобильных сайтов ▪ Улучшенная поддержка асинхронных методов ▪ ASP.NET Web API ▪ Множество нововведений для мобильных приложений ▪ Больше опен-сурса по умолчанию
  • 3.
    Adaptive templates ▪ Новыекрасивые страницы-по-умолчанию ▪ Используют адаптивный рендеринг ▪ Всѐ.
  • 4.
    Bundling & Minification- зачем ▪ Решает задачу производительности при загрузке ресурсов, которые требуются нашей странице для корректной работы (в самую первую очередь – JavaScript, во вторую очередь – CSS, в третью – разнообразные LESS, html-шаблоны etc…) ▪ Первая очередь яваскрипта обусловлена блокирующей природой его загрузки Пока мы грузем яваскрипт, браузер практически останавливает свою работу А грузим мы его медленно из-за ограничения на количество одновременных скачиваний с одного домена
  • 5.
  • 6.
    Bundling & Minification– реализация в ASP.NET MVC 4 Возможности Отсутствующие возможности ▪ Работает согласно названию, что, ▪ Автоматический fallback для CDN- в общем-то, уже неплохо  скриптов ▪ Дает возможность b&m файлы по ▪ Неудобно организована настройка списку или из папки по шаблону порядка фалов внутри bundle ▪ Ручная организация порядка ▪ Запрос необходимых файлов вывода bundles возможен как с layout-страницы, так и из отдельных View ▪ В debug-режиме к пути файлов не добавляется хэш, что дает простор для проблем с кэширования на машине разработчика
  • 7.
    Async controllers ▪ Позволяютразгрузить сервер и убрать простой потока, ожидающего асинхронного ответа от удаленного ресурса ▪ Существовали в MVC 3, но их синтаксис сложно было назвать тривиальным ▪ ASP.NET MVC 4 поддерживает введеные в .NET 4.5 ключевые слова async/await Вместо ActionResult – возвращаем Task<ActionResult> ▪ Обработка ошибок - поддерживается декларативное задание таймаутов на асинхронные операции и вывод custom views – пользователь будет видеть красивые сообщения ▪ Не забываем наследоваться от базового класса AsyncController (я почти забыл )
  • 8.
    WebAPI ▪ Поставляется вместес ASP.NET MVC 4 ▪ По внутреннему устройству не имеет никакого отношения к ASP.NET MVC 4 ▪ Но все равно заслуживает внимания – решение получилось интересным
  • 9.
    WebAPI – организациядоступа к данным по шаблону MVC MC ▪ Цель – создавать сервисы – поставщики данных – специально заточенные под работу по протоколу HTTP ▪ В отличие от WCF, где одной из целей было абстрагирование от транспорта, WebAPI использует более глубокую интеграцию с HTTP ▪ Для CRUD-операций используется HTTP-verbs (POST, GET, PUT, DELETE)
  • 10.
    WebAPI – идеи,пришедшие из ASP.NET MVC ▪ Одной из задач было, чтобы программистам ASP.NET MVC было более или менее комфортно с новым WebAPI ▪ Контроллеры ▪ Model binding and validation ▪ Роутинг (с изменениям – дефолтный маппинг имен методов не по URL, а по verb-ам запросов) ▪ Фильтры ▪ Scaffolding ▪ Тестирование
  • 11.
    WebAPI ▪ Content negotiation– отдает данные в том формате, в котором просят. Ну, или очень старается. Что ценно – можно дописывать свои форматы (JSONP в частности) ▪ Query composition ▪ Поддержка IoC-контейнеров – даже лучше, чем у ASP.NET MVC ▪ Create custom help and test pages – интерфейс IApiExplorer
  • 12.
    Новые опен-сурс библиотеки ▪Были давно – jQuery, jQuery UI, Modernizr ▪ JSON.NET ▪ DotNetOpenAuth
  • 13.
    Не успели ▪ SinglePage Application – позволяет создавать приложения, работающие полностью на клиенте (одна страница, которая грузит с сервера только данные). Не успели к релизу, обещают отдельным пакетом ▪ Recipes
  • 14.
    Интересное чтение ▪ ProfessionalASP.NET MVC 4 by Phil Haack and many, many others ▪ http://www.asp.net/mvc ▪ http://www.asp.net/mvc/mvc4 - What’s new ▪ http://www.asp.net/whitepapers/mvc4-release-notes ▪ http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification - как слышится, про то и рассказывается 
  • 15.
    Интересное видео ▪ Alook at ASP.NET MVC 4 by Scott Guthrie ▪ C#5, ASP.NET MVC 4, and asynchronous Web applications by Steven Sanderson
  • 16.
    Вопросы? Внимательно слушаю!  Андрей Кулешов kaa-tula@ya.ru akuleshov.tula Специально для http://GetDev.NET