We would all agree that ASP.NET has come a long way from its first version. IMO the next version Asp.Net 5.0 is the most drastic change that ASP.NET has done so far (leaving the addition of MVC and WebAPI). I am all thrilled and awaiting the next version because there are many changes that affects the core architecture itself. The following are top 5 of those modifications
- Introduction of .NET Core – This is a light weight, portable and cross platform framework distributed via NuGet. This means that the Asp.net applications can be run cross-platform. A cross-platform version of .NET core for windows, Linux and Mac OS X systems will be made available. This also makes the ASP.Net application to run with the deployed version of the runtime and not the version that is installed on hosted OS.
.NET core is also made open source along with CoreCLR. In fact within .NET the number of open source projects has grown significantly. .NET foundation is an independent organization to foster open development of open source technologies for .NET. Refer to http://www.dotnetfoundation.org/projects for all the open source projects under the stewardship of .NET.
- Environment-based configuration to support cloud deployment – Asp.net 5.0 provides the ability to provide configurations from multiple JSON based files and environment variables. This makes it easy to deploy the application in azure which can now use azure environment variables.
- Flexible and light weight request pipeline – While OWIN introduced a different request processing pipeline, a similar model has been incorporated in ASP.NET with new HTTP request pipeline. The dependencies of “system.web” is removed making this light weight and flexible. This promises to be better performant.
- Unified MVC and WebAPI – I have always wondered why these 2 models and even request pipelines are separate. Microsoft has done the right thing now by merging these 2 models. Both the controllers are developed the same way and there is no differentiation except for the results they return.
- Dependency management via JSON Configuration – Dependency can be managed via NuGet packages which can be included right in the project.json file. Project file being a json file is another cool feature which provides a user friendly ability to update and control the project files.
- Self-Hosting capability – ASP.Net 5.0 can be hosted on self-hosted processes which removes the dependency on the IIS. IIS will continue to be one of the leading web server options for ASP.Net but can hope to see many other servers. Kestrel web server can be used to run Asp.Net 5.0 application on Linux. Kestrel is a development web server and hence might have some limitations.
Unfortunately in spite of all the powerful features, ASP.NET is considered heavy with high overhead. These changes will break those opinions and position Microsoft better compared to other web development frameworks. The open source movement of Asp.net would also result in the increase of open source projects which generally is a lac among Microsoft technologies. While I appreciate Microsoft for bringing these changes I wish they had done it much more early.
What does this mean to developers? This does mean breaking changes and changes to existing code. But it is definitely worth it and hence the organization should gear up for these changes. While I write this Asp.net 5.0 is in beta5 release and the final version is anticipated before the end of this year.
Wishing you all happy development!!!