Top Reasons for .NET Core’s Fast Adoption Rate

Posted by

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.

Cost Reductions

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.

Performance Improvements

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.

 

 

4 comments

  1. I recall when the .Net framework first came out. Microsoft hosted huge events at arenas and developers literally showed up after work to geek out on it. It was absolutely electric. It let us do things we couldn’t do before.

    .Net Core? So it runs on Linux. Yawn. Containers? Yawn. Not “Legacy”. Yawn. It’s “Modern”. Uh huh.

    None of these things help me deliver a finished product to my clients more quickly, reliably, and cheaply than what I’ve had at my fingertips for the past decade or so. Actually, the delay of getting features out in .Net Core have forced them to create .Net Standard. If you have to create an interface over your crap to patch over the holes, it ain’t good. It sounds as though it may be .Net Core that is the branch and not the trunk. It would not surprise me if the .Net Framework is still more commonly used than .Net Core in another 5 to 10 years.

    If Microsoft truly had ambitions, they would co-opt the best of these js frameworks out ther and do with them what they did with web forms years ago. Then build a non-crud simple web service layer to talk with them. You know, make developers more productive.

    However, I’ll learn .Net Core since I’m a professional developer. We have to keep our skills up regardless as to whether the direction is a wise one or not. But please do not insult my intelligence by insisting that the dog food tastes better than what we had before.

    Like

    1. Hi Paul,

      I agree that .NET Core is a bit of a side-step in terms of developer productivity. We’ve had to re-learn how to do things that we’ve been doing for well over a decade.

      That said, there are a few ways that .NET Core can help you build more quickly, reliably, and cheaply:
      – Serverless applications in AWS Lambda are a big productivity boost and only support .NET Core. I’ve worked on projects with Lambda where we delivered to customers three times faster than “traditional” .NET development.
      – Running a Linux VM is a significant cost savings if you compare it to running a Windows VM in the cloud.

      Cheers,
      Marc

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s