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 a technology and business perspective.
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 easily run .NET Core applications on their existing infrastructure while companies that are running both Windows and Linux environments can consolidate and reduce the number of moving parts in their infrastructure.
And there’s more. 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. On the AWS side, you can run .NET Core 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 traditional .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 significantly higher than their Linux equivalents. Running a .NET Core application on Linux can lead to savings of up to 20% on your compute bill versus the equivalent Windows instance.
There’s more cost saving options available through the use of containers. .NET Core was designed with containers in mind, making it relatively easy to run multiple applications on the same host. This lets you scale only the parts of the system which are heavily sollicited while leaving those that aren’t to consume less resources and money.
Costs can be reduced even further for applications that are rarely sollicited with Lambda’s serverless technology. With Lambda you only pay for executions, so a Lambda that doesn’t run doesn’t cost a penny. The latest release also supports running an entire ASP.NET application as a serverless function, which makes for a quick and easy way to run a low-cost WebApi or MVC application.
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.
Avoiding The ‘Legacy’ Label
Microsoft seem to have focused a large part of their development team onto .NET Core. The latest and greatest features are being developed for it instead of the traditional .NET Framework. There’s no drop-dead date in sight for .NET Framework but it’s entirely possible that in the next five to ten years it becomes relegated to use in legacy applications only. That makes it all the more crucial to start new projects with .NET Core.
Working with the latest and greatest technology also helps attract and retain talented developers in an organization. Developers are always looking to work in the newest technologies available, making .NET Core especially exciting for developers who have been working in the Microsoft stack for awhile. It opens up so many new avenues of exploration that were previously unavailable, such as running on Linux and Lambda.
When You Do Decide To Embrace .NET Core…
Document the heck out of the process you’ve gone through for other .NET developers to see how it went. There aren’t many in-depth case studies with hurdles and challenges that need to be overcome when moving to .NET Core. The adoption rate will surely grow quicker as more detailed information is made publicly available for developers to consult.