- Visual Studio Code (recommend)
- Visaul Studio Community
- Jetbrains Rider
- Requires subscription
- Tour of .NET
- Interactive C# tutorial
- Get started with .NET Core
- Create your first web app (intermediate)
Microsoft is in the middle of a massive transition from .NET Framework and .NET Core to .NET 5. .NET 5 merges Core, Standard and the Mono runtime (for non-desktop target) into a single unified framework again. Documnation for .NET Framework won't be valid with .NET 5 going forward.
.NET is the platform C# is written on top of. Think of Java but better. The .NET Framework is directly tied to Windows and receives updates through it. Core is a rewrite of Framework to be free, open source, and cross-platform by making everything - including the Windows parts - modular. .NET Core is at near-feature parity with the Framework. .NET 5 is the upcoming successor to Framework and built on top off Core.
The .NET Standard is a relatively new type of library meant to work with the different .NET platforms without requiring extra overhead. It's evolved alongside Core, serving as a reference too, and is the most compatible with it.
When making libraries, I recommend you use .NET Standard for this very reason, unless you're targetting the Framework before 4.6.1. However, this is thankfully becoming rare and only needed in the Enterprise. You can target both by changing <TargetFrameowkrs>
:
<TargetFrameworks>net40;netstandard2.0</TargetFrameworks>
If you're new to C#, I highly recommend sticking with the most recent LTS. This should be a no-brainer but try not to focus on the latest and greatest until you've mastered the basics. .NET is now about you building almost anything instead of you building for Windows.