ASP.NET MVC 4 Roadmap
In keeping with their annual cadence, Microsoft has begun work on the next version of ASP.NET MVC. Areas of emphasis include smoothing out the development and deployment workflow, sharing more features with Web Forms, improving AJAX support, and offering a better story for HTML 5 on mobile and tablet devices.
Warning: The features mentioned in this article are still in the planning stage and may not necessarily appear in the final version of MVC 4.
In terms of development speed, the lack of complex user controls has been quite detrimental to the framework. The MVC team is looking to offer a way get the same rapid development that Web Forms offers, but without the associated lack of control. One idea is the use of “recipes”. This is best explained using an example:
Another example of using a recipe is implementing OAuth-based authentication. Normally this requires changing code in several places, some of them non-obvious. In this case the recipe would add all the necessary code in the right places, greatly reducing the chance of a mistake leading to a runtime failure or security vulnerability.
Authoring your own recipes should not be too difficult. Essentially it is just a dialog which is given an instance of the EnvDTE.DTE interface. From there it would work like any other Visual Studio plug-in or macro. The framework would handle things like hosting the recipe in the right context menus.
The first change to the mobile development story is improving the out-of-box style sheets so they look good on small screens. This isn’t a big deal for shops with professional designers who build CSS from scratch but smaller shops often rely on it as a starting point.
It is well known that using asynchronous techniques can greatly improve the maximum number of simultaneous clients on a single web server. Alas it is also well known that asynchronous techniques require an inelegant or downright clumsy series of callbacks.
Like Web Forms vNext, MVC will be getting support for the async/await keywords from C# 5 and VB 11. In the example below you can see how two asynchronous calls (presumably to a database) are in-lined with the constructor of the view-model.