.NET Core is the next evolutionary step for Microsoft and the .NET platform. .NET Core version 1 was released in late 2016 and it's a big change in the framework that will require you to completely re-write your website from the ground-up. So the chances are pretty high that the next time you need to do a big site upgrade, it will be in .NET Core instead of MVC. If you work within the .NET CMS world, this change in framework has made the CMS landscape an interesting place. In today's guide, I'm going to cover what .NET core is and how CMS companies are now frantically working on their products to cater for it.
What Is .NET CORE?
Before I talk about the benefits of .NET core, I'll very briefly give you a walk-down memory lane of .NET in general. Around 2005 ASP.NET 1 came out with something called web forms intergration. Web forms enabled web developers to build websites using Microsofts new programming langugae C#. At the time Web forms was a good option to bulid a website with, as it came with a number of out-of-the-box components like a DataGrid and it worked with Intellisense to allow for more accurate code, however, due to the way the page lifecycle model worked it meant pages were structured in a way that made it really hard to maintain and manage, as all the code and the HTML got mingled together.
Due to the limitations of web forms, Microsoft released MVC. MVC was a massive improvement over web-forms. MVC provided a clean way to architecure your application, as it allowed developers to seperate the HTML and the code. As MVC forced developers to split their code up in a clean way, things like testing, TDD, dependency injection became easier to implement and consequently adopted by more companies. However, as MVC was built on top of webforms platform, it still had a few limitations, like how it referenced the HTTP context. This meant .NET always had to run within IIS the Microsoft web server, which also meant all .NET applications had to run on Windows. As a lot of companies invest in Linux, this meant .NET was automatically disconnected as an option by loads of companies.
Microsft then released Azure, it's cloud hosting option. Azure made hosting Windows applications a lot cheaper and easier and thousands of companies are now using it. I would guess Microsoft makes a lot of money from it, however, as .NET only works on Windows, I would also guess that meant a lot of companies would never consider Azure as a hosting option. So... a few years later .NET core came out which can run on Windows and Linux. So in effect Microsoft have reinvented a framework which removes the constraints of having to use Windows. .NET core will be adopted by companies who would have never touched it and when people start using .NET core they are then much more likly to use Azure to host it in. It's quite clever really.
So .Net core is a rewrite of the Microsoft web framework to allow it to run on different web servers and on different operating systems. It removes a lot of the limitations of MVC and web forms, allowing for better unit testing and good practice development processes. In 5-10 years time .NET Core will be the normal way of working for people from a Microsoft programming stack background, however, in the short term, this has made life very interesting/difficult for CMS vendors. Most CMS systems have been built up over a number of years in MVC, web forms and even asp. To make a CMS work with .NET core will mean all of the vendors will have to rewrite a lot of the application from scratch. This rewrite will obviosuly take a lot of time and effort and for that reason even though .NET core is out, there are no major .NET core CMS systems yet.
Who will win the .NET CORE CMS Race?
It seems all the big .NET systems Umbraco, EPiserver and Sitecore are still quite a long way away for being fully .NET core compliant. Umbraco for example is currently on version 7 and according to the roadmap it won't be .NET core ready until version 9, which will very likely be at least another year away. Episerver and Sitecore find themselves in a similiar boat. The Episerver admin for example, still has some web form aspects around it to getting rid of all the dependencies, so the CMS itself can run on a Linux server for example is complex.
From my research, it looks like the winner in the race will be Orchard CMS, with Orchard 2. Even though it's not the most popular CMS, there is already an Alpha .NET core version out, with the beta expected around May-June 2017 and the final product by the end of 2017. Orchard 2 is a re-implementation of Orchard in .NET core. You can download the CMS now if you really want to from here. They do warn you though that it is an alphah verion. An Alphah incase you don't know is a version complete enough for internal testing. So if you want to use .NET core and build a new CMS in the short term Orchard might be your only option!
My advice, if you are planning on upgrading your current website, it might be better to hold off for a while. When the main CMS players have made .NET Core compliant versions, people who are upgrading their CMS now will be out-of-date pretty much straightaway :P I guess thats the price of how rapidly technology is currently moving!