.NET is a framework that enables running of applications written in C# and other languages compatible with it (like F# or Visual Basic). You can think of it like that: C# is a plane, and .NET is an airport. One is not very useful without the other – you can’t really use the plane without all the airport’s infrastructure, like fueling, runway, control towers, passenger or cargo access. On the other hand, an airport without a plane is just an expensive mall really far from the city center.

So what is the role of .NET, exactly?

  • It provides the execution environment called Common Language Runtime, which is responsible for things like processing the Intermediate Language, managing the memory, providing error handling, and more.
  • It provides a set of standard libraries (which can be found in the System namespace)

Let’s get back to the job titles you might encounter. Employers are sometimes reluctant to post job offers for “C# developer” because they want to hire peop who understand the .NET in general, possibly know some .NET-related technologies (like WPF, MVC or Entity Framework). On the other hand, it doesn’t make much sense to post a job offer for “.NET Developer” if one actually mean “C# programmer”, because F# or Visual Basic programmers are also working in .NET.
By the way, at this point you might be curious why “.NET” and “.NET Framework” are also used interchangeably. I admit – this is actually confusing. First, there was the .NET Framework, released in 2002. The truth is, people rarely used the full name, and everyone was calling it just “.NET”. Then, in 2016, .NET Core – a successor of .NET Framework – was released. So at this point we had “.NET Framework” which was commonly called “.NET”, and “.NET Core”. The real problem started in 2020 – when Microsoft released version 5.0 of “.NET Core” but actually decided that from now on, this technology will be called “.NET”. So nowadays, when people say “.NET” they are often asked “But do you mean the old .NET Framework or the latest .NET Core?”. Well, if you expected the programming to be simple, you were wrong.