Microsoft has announced version 5 of ASP.NET and seems pleased that the 15 year old technology is alive and well – but is it? If you replace the heart, mind and soul of a technology all you have left is the name.
There is no doubt that ASP.NET 5 is great stuff and if you plan to use it to build websites then it is probably as good as many choices. However, if you have a website designed back in the early days of ASP, or are using something like SharePoint, you will be wondering what is going on. Perhaps wondering why this new thing is even called ASP.NET at all?
The fact is that back when ASP.NET was introduced Microsoft had a dream – now it seems to be just following what everyone else is doing.
First the web world decided that MVC was the way to go and, guess what, Microsoft created ASP.NET MVC. Not a lot to do with the original vision, but it was easier to use and produced a better architecture for the client. Then everyone decided that Node.js was best and so Microsoft introduced the Web API.
So now we have at least four different interpretations of what ASP.NET technology is supposed to be about.
To be clear, just in case you missed the original ASP.NET, the idea was to make web development the same as desktop development. All code was to be in a separate file, code behind, and the HTML and the code was combined in a compile step and the server issued a page tailored to work with the particular browser. If there was a control on a form then its events were serviced by a round trip to the server. Everything worked as if the web page was a Windows form and hence the technology is generally referred to as a WebForm – and yes it really did make web programming like desktop programming.
So where is Web Forms in ASP.NET 5?
A very good question.
Currently it looks as if the ASP.NET team have rubbished most things that made ASP.NET different and re-created other people’s technology. Not only have they replaced the clean division between code and markup of Web Forms, they have even replaced IIS! Not everyone’s favourite web server, but to replace it with a start from scratch system like WebAPI is not doing any favors for the Microsoft programmer.
If what is required is razor syntax then use PHP. If what is required is WebAPI then use Node.js and so on.
The new ASP.NET 5 is open source, apart from Web Forms that is, and can make use of open source .NET Core or the .NET Framework.
The .NET Core runtime is the one that is providing the cross platform facility - only not quite yet:
The cross-platform version of the runtime has not been released yet, but we are working on it on GitHub and plan to have an official preview of it out soon.
You should be able to use Linux or OSX with .NET in the future in many web application development and mobile application development Why this should be a good thing is difficult to work out. If you are happy working with Linux or OSX there are lots of technologies that provide good alternatives to ASP.NET. I’m not saying that no one wants it, only that the numbers are not big.
The other new features of ASP.NET 5 are:
- Built on .NET Core, which supports true side-by-side app versioning
- New tooling that simplifies modern Web development
- Single aligned web stack for Web UI and Web APIs
- Cloud-ready environment-based configuration
- Integrated support for creating and using NuGet packages
- Built-in support for dependency injection
- Ability to host on IIS or self-host in your own process
All good, but only of relevance if you are abandoning Web Forms and using some other technology. Again I’m not saying that this isn’t attractive to some, but again I think its a minority.
There are some improvements to classic ASP.NET technology, but they are almost relegated to the footnotes and don’t represent a big change:
- HTTP 2
- Async model binding
- Roslyn CodeDOM compilers
You can continue to run Web Forms on IIS using .NET 4.5 but you can’t run Web Forms using .NET Core. Given .NET Core is the future of ASP.NET this leaves Web Forms on its own.
Most ASP.NET users bought into the technology when Microsoft offered a real alternative. Now it’s just a late, and not well developed, copy of what you can get elsewhere. Overall the ASP.NET technology is a mess and what is happening now is a sorting out and unification:
“MVC, Web API and Web Pages provide complementary functionality and are frequently used together when developing a solution. However, in past ASP.NET releases, these programming frameworks were implemented separately and therefore contained some duplication and inconsistencies. With MVC 6, we are merging those models into a single programming model. “
The sad fact is that when it comes to web technologies Microsoft seems to have no vision of what might be good. The original ASP.NET has been abandoned and something different is living in its place. How anyone can call what Microsoft has just announced ASP.NET is a mystery. It may be good, but ASP.NET it isn’t. And the idea that it is an example of an unbroken line of 15 years of a single technology is silly.