Which is better for learning C# - .NET or .NET Core?

14 Nov 2016

We are naturally drawn towards new stuff - new means better, right? Surely you heard of .NET Core, unless you’ve been living under the rock for the last couple of years. New is hard to resist, especially when it’s backed by Microsoft’s huge PR/propaganda machine. Don’t get me wrong, I am not blaming Microsoft - they’ve got to make sure they attract and retain enough people onto the new platform, but this is exactly the moment you want to stop and ask yourself - what’s better for me, given my task, needs, and constraints?

Also, check out my free PDF guide to technology choice - should you stick with .NET or pick .NET Core for your new project?

Starting to learn C#

When learning a new language is your utmost priority, you want to immerse yourself into its structure, do coding exercises, start working on your own small projects. There will be plenty of challenges and you want to make sure nothing extraneous gets in your way. You want your tools to help you, not drag you down.

Enter .NET Core - release version 1.0, or is it?

The current version of .NET Core is 1.0, but that’s only part of the story. You also may want to ask what’s the current version of tooling, meaning build/package management tools and such. And the truth is - it’s still in the Preview 2 version (check out the latest release in here)

.Net Core Tooling Preview 2

Again, it’s understandable Microsoft wants to get the product out of the door as soon as possible, but if for you, who’s just starting to learn C#, it means added risk of having to deal with flaky tools, plus potentially having to spend extra time relearning commands/conventions when things inevitably change in release version, you may as well ask yourself if it’s really worth it.


So if you are not sure what to do and whether you should start learning C# on .NET Core or “classic” .NET, I would recommend sticking with tried and proven “classic” .NET. There’s no difference in the language itself (C# 6.0 is available on both platforms and new releases of the language will be made available both on .NET and .NET Core), plus with “classic” .NET you eliminate all the potential flakiness that can be present in .NET Core toolchain.

But “Future!” I hear you saying, “And Progress!” - yes, .NET Core is the future, and you may want to keep some tabs on its progress - already mentioned Toolset releases page, as well as the .NET Core roadmap page on Github, specifically that part around planned ship dates.

Never miss a new article

I hope this post helped you to decide what to choose for learning C#.

If you want to receive helpful guides and articles as I publish them, subscribe to my mailing list below. I only write actionable advice that is based on real-world problems, saves people time and brings the joy of creation. I never spam, period.

Subscribe now and get helpful tips on developing .NET apps - never miss a new article.

You can unsubscribe at any time. I'll never share your email with anyone else.