What Is New in ASP.NET Core 1.1
| Category | Key Updates |
|---|---|
| New Features | View Components as Tag Helpers, Middleware as MVC Filters, Response Caching Middleware, WebListener server for Windows, URL Rewriting Middleware |
| Improvements | Enhanced Kestrel security, Updated project templates, Azure App Service logging provider |
| Bug Fixes | Various fixes across MVC, Kestrel, and other core components |
What are the major new features in MVC?
ASP.NET Core 1.1 introduced View Components as Tag Helpers, a huge boost for component-based UI development. Instead of invoking components with C# in Razor views, you can use a clean HTML-like tag syntax. This makes views much more readable and maintainable.
Another key addition is the ability to use middleware as MVC filters. This lets you run middleware components, like response compression or authentication, within the MVC filter pipeline for more granular control. In practice, this bridges the gap between global middleware and action-specific logic.
View Component as Tag Helper Example
<vc:priority-list max-priority="2" is-done="false">
</vc:priority-list>
How did performance and caching get better?
The new Response Caching Middleware is the headline here. It enables your app to cache responses based on HTTP cache headers, significantly reducing server load for repeat requests. This matters because it moves complex caching logic into a dedicated, configurable component.
URL Rewriting Middleware also landed in this release. It provides a centralized way to modify request URLs before they are processed, which is essential for SEO-friendly redirects or simplifying complex routing scenarios without changing your controller code.
What server options were added?
This release brought the WebListener server for running on Windows. Unlike Kestrel, which is cross-platform, WebListener is built directly on the Windows Http.Sys kernel driver. This gives you access to Windows-specific features like port sharing and Windows authentication in a direct way.
Kestrel itself got security enhancements, adding support for connection logging and adding HTTPS redirection. These were crucial steps in hardening the cross-platform server for production use right out of the box.
FAQ
Should I use View Components as Tag Helpers or the traditional way?
Use Tag Helpers. They provide a much cleaner and more HTML-friendly syntax that is easier for front-end developers to work with. The traditional @Component.Invoke method still works, but the new way is the recommended approach for readability.
What's the difference between Response Caching Middleware and the ResponseCache attribute?
The [ResponseCache] attribute sets the HTTP cache headers on a response. The Response Caching Middleware is what actually interprets those headers and stores the response. You need both for full server-side caching to work.
When would I choose WebListener over Kestrel on Windows?
Choose WebListener if you need specific Windows features like HTTP.Sys-based port sharing (hosting multiple apps on the same port) or Windows Authentication. For most other scenarios, Kestrel is the simpler and more performant choice.
Can I use middleware as a filter and as global middleware?
Yes, the same middleware component can be used in both ways. Using it as a filter gives you per-action control, while using it globally applies it to every request. The choice depends on the scope you need for that functionality.
Was this a breaking change update from 1.0?
No, ASP.NET Core 1.1 was a non-breaking feature update. You could upgrade an existing 1.0 project to 1.1 without having to modify your code, which made adoption very straightforward for teams.