.NET alone era used informally to designate technologies related to CLI (Common Language Infrastructure). Because of this it is common to say that . NET is a platform. Actually CLI is really the platform. O . NET is the best known implementation of CLI (only currently maintained).
Today there’s something called .NET Standard which determines the minimum that an implementation of the CLR (Common Language Runtime) (read, you can better understand its functioning), BCL and other components must implement to conform to the standard specified in the CLI. But it has lost strength and almost no longer matters for most cases.
Initially practically only existed the .NET Framework, which was the first complete implementation of the CLI, the CLR, and all linked standards.
Came the .NET Compact Framework which was to be used on devices with more limited resources. It is hardly used anymore since the difference between them is small and where it would be used today carries a more complete implementation.
Microsoft also launched the .NET Micro Framework for devices with minimal capacity. Also little used since it is very limited and has independent implementation. I think so different from the standard that it should not even be considered with any compatibility, it is only inspired.
Recently Microsoft launched the .NET Core that runs on several platforms, is more flexible in deployment, has fewer strong dependencies and has some modernized technologies that bring some advantages.
There is also the .NET Native which generates native code from CIL codes. All conforming to the same standard. He’s been officially abandoned, even if there’s someone he tries to keep.
Also has the Mono which was done independently and runs on multiple platforms. It exists from the beginning although it took to become stable. It as a complete platform no longer has official support.
Xamarin is derived from Mono to run on Mac, Android and iOS. Today it is part of the Microsoft family and runs on the standard . NET.
It has other implementations and other technologies related to the ecosystem . NET. You can see on Wikipedia.
These implementations, to a greater or lesser extent, are available as open source.
The name . NET alone came to have a new meaning which is the . NET Core and that in version 5 takes position in place of all these other implementations cited.
Languages
.NET is not a programming language. Not a single compiler, although next to the . NET ecosystem .NET Compiler Platform.
C# is clearly the main language of .NET. It itself is almost all written in C#. But since CLI was created to support several languages, others are also used.
VB.NET is another heavily supported. F# has gained strength. There is a C++ implementation a little out of the standard call C++/CLI. Once had a Java, called J#. And the Windows Power Shell runs on . NET as well. Microsoft started support for Python, project still active and Ruby, abandoned.
There are still independent attempts to make these languages work well on . NET (look here I’m talking about . NET in a generic way). Boo and Nemerle are independent languages made thinking of the . NET, but have not gained traction, although interesting. Has JS for . NET. PHP has a very reasonable implementation. Up to Prolog and Lisp had (has another attempt). Still has Object Pascal.
The list goes far. It has a incomplete list in Wikipedia.
. NET provides the backend for these languages, including a gigantic standard library that conforms to CLS and CTS.
Just say . NET is the same as talking about . NET Infrastructure? Or is it something more complex?
Informally you can. People usually understand. In fact they usually talk . NET so much to talk about framework, as infrastructure, the ecosystem involving languages, libraries, tools and everything else, even if it is not strictly correct. The term . NET may be being used as a culture, a community.
There’s even the .NET Foundation that regulates the use . NET and everything around it.
But without a word that accompanies the term . NET we do not always know exactly what you are talking about. If you want to be precise, you should use the most appropriate terms for each case. I would say that the most used cases are talking about one of these. NET I mentioned above, others are talking about the ecosystem. And some of the infrastructure :)
I hope that showing all these names has helped to understand what is really a little confusing, and has not caused more confusion. At least it has subsidies to research further, and ask more questions with other questions about the subject.
You’ll probably want read this.
I consider the question pertinent to the site and was even reasonably formulated. I improved a little. I don’t know if you need to discuss it at the finish line, but I don’t understand why the closing votes and the negatives.
– Maniero
Thanks for the strength Bigown :)
– Pedro Abreu
Possible duplicate of What is and how . NET Platform Standard works?
– MagicHat
My question is broader. And the Bigown Answer was exactly what I was looking for.
– Pedro Abreu