This document lays out a roadmap for ASP.NET MVC, ASP.NET Web API, and ASP.NET Web Pages. This is a planning document, not a specification of what is to come. We hope to implement most or all of the features listed
here, but there are no guarantees. Plans can change. You can help change them! Please visit the ASP.NET
UserVoice site to provide feedback on our plans so that we have a better picture of what you want to see in the next
release.
ASP.NET is a set of technology components for building web sites and services whether hosted locally or in the cloud. Developers can use the components to build sites and services they need to support their application.
ASP.NET MVC, Web API and Web Pages are components built within the larger context of ASP.NET.
We just shipped ASP.NET and Web Tools
2012.2,
a tooling refresh for MVC 4, Web API and Web Pages 2. We are working on our next release which we are targeting to have a go live beta in the summer and RTM in the fall of 2013. The following items are what we are tentatively
targeting for this next release:
MVC
Attribute Based Routing
– Routing is one of the more complex features used with MVC and we are making it easier to control routing by placing attributes on action methods. This lets you think of routing at the same place you
are writing code. This feature is being implemented in partnership with Timothy McCall and his
Attribute Routing project.
HTML Helpers
– We have gotten lots of feedback that the existing HTML Helpers for drop down lists, checkbox lists and radio button lists are hard to use. We plan to make improvements to these and also look at adding new
helpers for Mobile applications that allow you to provide a badge in your application for native mobile applications that are available in application stores for devices.
Bootstrap Templates
– Using HTML 5 and CSS 3 to make beautiful looking websites is challenging and many sites are switching to using libraries like
Bootstrap to make building rich layouts easier and simpler to theme. With these
libraries you write basic HTML and put attributes on the HTML to control layout and styling. We are going to rewrite our templates to use Bootstrap to make them easier to customize.
Authentication Filters
– We plan to add new authentication filters to the MVC filter pipeline. This will enable developers to restrict the authentication types at the controller/action level.
We will provide authentication filters to support cookie-based authentication.
Web API
We will invest heavily in Web API security area as well as integration with various new technologies, such as
Katana
and SignalR.
We will continue our investment in bringing more OData functionality, adding formatting support for connected devices and improving our default action selection logic. In addition, the template and controller scaffolding
will also be dramatically simplified and easy to use.
CORS –
In order to make cross domain REST calls, we need to add CORS support.
This feature is largely based on a community pull request from Brock Allen.
Web API with Security
–
The first version of Web API has laid a great foundation for people to build APIs. Now it is time to add rich support for Web API to authenticate the client with credentials from Azure Active Directory (AAD), ADFS
as well as third party authorities, such as Facebook, Google, Microsoft, etc. In addition to that, we will also add support for other credential types such as basic, client certificate and shared secret.
Authentication Filters
– We plan to add new authentication filters to the Web API filter pipeline. This will enable developers to restrict the authentication types at controller/action level. We will provide authentication
filters to support Basic and Bearer authentication.
Unit testability improvement
–
Today there are two pieces of framework code that when used in a controller action can make it difficult to unit test: link generation and HttpResponseMessage creation. Testing actions that depend on this functionality
is difficult because it requires a lot of framework context to be set up. We will improve the testability of these features to make unit testing a lot easier.
Batching support
–
In order to reduce power consumption on connected devices, it is increasingly popular to support batching multiple HTTP requests. We will add support for that in the next release.
Attribute Based Routing
– Routing is one of the more complex features of Web API and we are making it easier to control routing by placing attributes on controllers and action methods. This lets you think of routing at the
same place you are writing code. This feature is being implemented in partnership with Timothy McCall and his
Attribute Routing project.
Katana OWIN Integration
–
OWIN
has gained popularity in the community as a platform for hosting .NET on web servers. There are times when people want to host ASP.NET Web API, ASP.NET SignalR and more outside of IIS or without System.Web
using SelfHost. OWIN allows our frameworks to be written in a way that they can easily be hosted on IIS, HTTP.SYS, or even through the command line. This new hosting stack will allow us to host ASP.NET with a much smaller memory footprint and is expected
to improve performance compared to the existing SelfHost solution we have today.
OData –
We will make ODataMediaTypeFormatter more
extensible and enable some top voted OData scenarios such as named streams,
$expand, and $select. We will allow user to define model without a real CLR type as well as modify a property name on the model easily.
Formatters Support for Connected Devices
–
Client side support for connected devices such as Windows Phone and Windows Store Apps will be expanded. In addition to HttpClient class there will be support for using Web API formatters as well.
Tooling
The main focus for tooling is to simplify the experience. This includes:
- All MVC and Web API tooling will be available to all Web projects. For example, you will be able to scaffold MVC and Web API controllers in any web project, not just MVC or Web API projects.
- We will make the tooling easier to update so that you will be able to try out our preview tooling earlier.
- Projects will be created tailored to your need. You will be able to select which NuGet packages you want to be included, and what type of authentication you would like to use for the project as well as other options.
This will dramatically reduce the project size and project creation time as well.
As always we invite you to provide feedback and ideas for future development. Plans can change. You can help change them! Please visit the
ASP.NET UserVoice
site to provide feedback on our plans so that we have a better picture of what you want to see in the next release.