Доступны ASP.NET MVC/Web API 5.2.3 и Web Pages 3.2.3

Стали доступны новые версии библиотек ASP.NET MVC, Web Pages и Web API.

Основная цель данного выпуска – устранение ошибок. Всего их было исправлено 13. Вот ключевые:

Исправления в ASP.NET MVC

  • 2155 – атрибут Remote не работает со значениями типа boolean для Html.CheckBoxFor;
  • 2081 – улучшение производительности OutputCacheAttribute для дочерних Действий;
  • 2136 – при задании маршрутов с помощью атрибутов не устанавливается корректное значение ControllerContext.IsChild;
  • 2172, 2048 – исправления ошибок ненавязчивой проверки данных (unobtrusive validation).

Исправления в ASP.NET Web API

  • 2092 – оптимизация производительности System.Net.HttpFormatting.ReadAsAsync за счет кэширования JSON formatter;
  • 2103 – ошибка декодирования в сценариях с WebHost;
  • 2101 – обработка MIME-multipart запроса с необычным MIME типом.

Исправления в ASP.NET Web Pages

  • 2085 – улучшение производительности отображения Представлений Razor;
  • 2119 – улучшение производительности обработки атрибутов в Представлениях Razor.

Как установить/обновить?

Установка в новый проект осуществляется с помощью NuGet командой Install-Package:

Install-Package Microsoft.AspNet.Mvc -ProjectName [имя проекта]
Install-Package Microsoft.AspNet.WebApi -ProjectName [имя проекта]
Install-Package Microsoft.AspNet.WebPages -ProjectName [имя проекта]

В существующем проекте для обновления достаточно выполнить команду Update-Package.

Сравнительные тесты производительности

Команда разработчиков ASP.NET приводит сравнительные тесты, показывающие как изменилась производительность.

Первый сценарий: нагрузка сайта постоянным числом запросов.

5.2.25.2.3Delta %
Total request (count)2 9112 869
Trace duration (seconds)3030
Request/second97.0395.63
GC CPU Samples (msec)12 139.006 682.0045%
Total allocations (MB)18 049.7912 602.0830%
Total GC Pause (msec)1 103.20663.0040%
Gen0 GC (count)76107-41%
Gen1 GC (count)31710667%
Gen2 GC (count)57198%
CPU / request (msec/req)4.172.3344%
% CPU Time spent on GC6.40%2.30%64%

Второй сценарий: нагрузка сайта максимальным числом запросов.

5.2.25.2.3Delta %
Total request (count)5 2468 895
Trace duration (seconds)3030
Request/second174.87296.5070%
GC CPU Samples (msec)39 61534 70412.40%
Allocations/Request (MB/Request)6.3824.73934.66%
Total GC Pause (msec)2 974.603 215.70-8.11%
Gen0 GC (count)7699-30.26%
Gen1 GC (count)317368-16.09%
Gen2 GC (count)574521.05%
CPU / request (msec/req)87.42155.63-78.03%
% CPU time spent on GC8.60%7.80%9.30%