Why Has There Been a Decline In Demand for ASP.NET?
The graph above shows an apparent decline in demand for ASP.NET. In this post I give my view on why I think this decline has taken place.
First of all, ASP.NET MVC is a great server-side technology. I've been using it productively with C# for many years and know a lot of talented developers who would agree.
ASP.NET Core has been a welcomed improvement providing an open-source, cross-platform framework for building modern cloud based applications. I've used ASP.NET Core for a couple of projects and have enjoyed the experience. Check it out if you haven't already.
So why might there be a decline in ASP.NET across the permanent and contract market?
Firstly, I would say that it has nothing to do with it being a 'bad' technology or because (ASP.NET Core aside) it is not completely open-source. It also has little to do with ASP.NET not being seen as a cool technology.
It's more simple than this. Ultimately, the decline is because of the rise of the front-end stack.
Rise of the front end
It's no coincidence that the decline of ASP.NET started at the time when Single Page Applications (SPA) where becoming popular around 2009 onwards. For readers that don't know, Single Page Applications are web applications that load a single HTML page and then dynamically update it as a user interacts with the page. This gives the user a much better experience, more like using a traditional desktop application.
Once SPAs became popular, backends became less about generating HTML and more about simply providing data to the front-end. There was no longer as much need for a heavy backend technology like ASP.NET MVC.
Node.js made the next leap in web applications much easier: isomorphic applications. The problem with SPAs is that they often have a slow initial page load because of the amount of code being downloaded and then run by the browser. Bootstrapping web apps can take a long time compared with static sites. SPAs are also terrible at SEO.
Of course, Node.js isn't the right technology for all web applications but it fulfilled the need for a lot of companies that were building modern web apps in the start-up world. All of this meant that ASP.NET just wasn't as relevant as it used to be simply because it wasn't the right tool for the job.
The future of front-end
That said, most web apps still need to get data from the server and for me ASP.NET Core is a great choice to provide just that.