Доступны 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.2 | 5.2.3 | Delta % | |
|---|---|---|---|
| Total request (count) | 2 911 | 2 869 | |
| Trace duration (seconds) | 30 | 30 | |
| Request/second | 97.03 | 95.63 | |
| GC CPU Samples (msec) | 12 139.00 | 6 682.00 | 45% |
| Total allocations (MB) | 18 049.79 | 12 602.08 | 30% |
| Total GC Pause (msec) | 1 103.20 | 663.00 | 40% |
| Gen0 GC (count) | 76 | 107 | -41% |
| Gen1 GC (count) | 317 | 106 | 67% |
| Gen2 GC (count) | 57 | 1 | 98% |
| CPU / request (msec/req) | 4.17 | 2.33 | 44% |
| % CPU Time spent on GC | 6.40% | 2.30% | 64% |
Второй сценарий: нагрузка сайта максимальным числом запросов.
| 5.2.2 | 5.2.3 | Delta % | |
|---|---|---|---|
| Total request (count) | 5 246 | 8 895 | |
| Trace duration (seconds) | 30 | 30 | |
| Request/second | 174.87 | 296.50 | 70% |
| GC CPU Samples (msec) | 39 615 | 34 704 | 12.40% |
| Allocations/Request (MB/Request) | 6.382 | 4.739 | 34.66% |
| Total GC Pause (msec) | 2 974.60 | 3 215.70 | -8.11% |
| Gen0 GC (count) | 76 | 99 | -30.26% |
| Gen1 GC (count) | 317 | 368 | -16.09% |
| Gen2 GC (count) | 57 | 45 | 21.05% |
| CPU / request (msec/req) | 87.42 | 155.63 | -78.03% |
| % CPU time spent on GC | 8.60% | 7.80% | 9.30% |