ASP.NET couldn't get more fragmented if it tried. Oh wait, it just has. Project Helios is the latest technology to hit ASP.NET programmers and if you haven't been paying close attention it is going to be very difficult to figure out what it is all about.
The motivation behind ASP.NET was classic Microsoft.
At the time Microsoft controlled the desktop, but was losing ground in web programming so what did it do - made web programming the same as desktop programming.
The initial intent of ASP.NET was to allow the same approach to creating applications. i.e. .NET and asynchronous event handling, to be use for the desktop and the web.
After pushing ASP.NET as "the" way to do web sites, and after building support for the approach into its IIS web server, the first "stepping away" from the original idea was the introduction of ASP MVC.
This can be seen mostly as a reaction to the fact that it was the era of Ajax and frameworks like Rails. MVC provided the same facilities within the .NET system but it didn't make use of ASP.NET Web Forms. Microsoft managed to make .NET MVC look like the way of the future and many a project was started to convert Web Forms project to the new, more modern, MVC.
Next up was ASP.NET Web API. This introduced lower level HTTP facilities that could be used to build HTTP servers. Essentially this gives you another way to implement a REST API. It has been portrayed as something that will work with MVC and Web Forms, but it is also capable of standing on its own two feet and provides a third ASP.NET approach to building a website. It leaves you to build the server side using .NET and then implement the client side any way you care too.
Now we have Helios, which is essentially a response to the Node.js way of doing things. It is an implementation of ASP.NET OWIN - Open Web Interface for .NET - on top of IIS.
OWIN is essentially a framework that lets you write a web server within your own code.
For example the simplest web server you can create is:
public class Startup
public void Configuration(IAppBuilder app)
context.Response.ContentType = "text/plain";
If you know Node.js you will recognize the approach. From here you can build more complex responses. Of course, if you are starting from this primitive a position you are going to have to do a lot of work to create the sort of behavior a web server and a framework provide. The solution to this is the OWIN Middleware - a set of components that can form a processing pipeline.
There is already a Microsoft implementation of the OWIN approach in the form of the Katana project. The Helios project brings the same facilities but hosted by a standard IIS. This makes OWIN much more acceptable to companies that already run IIS production servers. At the moment it only works under Windows 8/Windows Server 2012 but wider support is promised in the future.
So now you can take a Node.js or an own host approach to building a web site with or without IIS as the server. I'm not sure that either are a good idea in an ideal world. It is a "given we find ourselves here then this is possibly a good way to get to where we should be".
Microsoft is saying that Helios and OWIN in general, and/or Web API, can help bind Win Forms and MVC together. This seems unlikely. If Microsoft could have a free choice it would probably un-invent Web Forms and MVC in favor of simply adopting everyone else's web technologies. After all, Microsoft was big on the desktop, but it failed to make it big on the web.
And while all of this goes on we have the huge anomaly of Sharepoint - a very successful web site infrastructure that is very popular with business. And guess what it is based on - yes, Web Forms.
Do you think the Sharepoint guys are planning to re-writing using MVC, Web API or OWIN?