The adoption of .NET Core has risen to about half a million developers, according to a recent interview with Scott Hunter on the .NET Rocks podcast. To put that number in context, back in 2012, Scott Hanselman estimated on Quora that there were approximately 8 million .NET developers worldwide.
This means about 6% of .NET developers have taken to .NET Core since its initial release two years ago. That puts it in the early adopters phase of the diffusion of innovation theory, which means that another upsurge in growth is probably about to kick off. There are a few reasons that make .NET Core an attractive framework from both a technology and business perspective. Let’s look at them now.
More Ways To Run A Cloud Application
One of the biggest factors I’ve heard from non-.NET colleagues over the years is that operating a Windows environment is much more complex from an operations perspective compared to a Linux environment. That argument is gone now that .NET Core applications can run on Linux once the runtime libraries are installed.
The barrier to entry is therefore much lower for new and existing .NET developers. Teams that are completely Linux-based can run .NET Core applications on their existing infrastructure while companies that are running both Windows and Linux environments can consolidate the number of moving parts in their infrastructure.
The ability to run .NET Core on Linux opens up the possibility of leveraging other technologies such as containers, serverless and Platform-as-a-Service. Azure, as you might expect, promotes using .NET Core anywhere you can run code. On the AWS side, you can run .NET Core apps in Beanstalk, Lambda, and ECS. Google also supports running .NET Core apps via their PaaS and container technologies. The same can’t be said for the .NET Framework, which has a plethora of hosting options on Azure but is much more limited on AWS and Google.
The operating cost of Windows instances has always been higher than their Linux equivalents. The exact amount of the “Windows Tax” depends on the size of the instance in question, but it can range anywhere from 15% to 70% higher than its equivalent Linux instance. That makes building for .NET Core on Linux a very attractive option.
.NET Core was designed with containers in mind, making it relatively easy to run multiple applications on the same host. That means that fewer virtual machines are needed to run the same workload as previously, with the added benefit of “right-scaling” the application to optimize cost.
Serverless technology like AWS Lambda and Azure Functions also help keep cloud costs in check. You only pay for what you use in serverless, so a Lambda or Function that doesn’t run won’t cost a penny. Both Lambda and Functions have a certain degree of vendor lock-in, but on the Lambda side it’s now possible to run an entire ASP.NET Core project as a serverless application. That makes for a quick and easy way to run a low-cost Web API!
Microsoft spent a great deal of time improving performance in the 2.0 and 2.1 releases of ASP.NET Core. They’ve done such an amazing job that it’s now on-par or slightly faster than Java and Node. Extreme performance usually isn’t a key deciding factor for a cloud app, but knowing that performance won’t be affected is good to know.
The Focus Is On .NET Core
Microsoft have put a large part of their development team onto all things related to .NET Core. The latest and greatest features are being developed for .NET Core at the expense of the full .NET Framework.
And while there’s no drop-dead date in sight for .NET Framework, it’s entirely possible that within the next ten years it becomes relegated for use in specific scenarios only. Developers who don’t want to get left behind have taken notice, and begun to embrace the more open world of .NET Core.
Embracing .NET Core can help organizations attract and retain talented developers. Top tier developers are usually looking to work with the latest technology, so production-level .NET Core projects are a great way to appeal to those developers.
When You Do Decide To Move To .NET Core…
Document the heck out of the process you’ve gone through for other .NET developers to see how it went. There sadly aren’t many case studies with hurdles and challenges that must be overcome when moving to .NET Core. These types of lessons learned are invaluable, so please, share what you’ve learned!