DEV Community

Discussion on: Explain C#.Net Like I'm Five

Collapse
 
andreasjakof profile image
Andreas Jakof • Edited

Hi...

.NET is mostly used a collective term for all languages that run in the Common Language Runtime (CLR).
Those languages are

  • C# (as its current main contributor)
  • F# (rising star)
  • ML.NET (machine learning)
  • C++/CLI (yes, thats C++ mixing with CLR) and
  • VB.NET (yep ... still there).

In a wide definition, it is also used to describe a set of assemblies to interact with "the outer world" like the operating system or networking.

.NET is itself divided into

  • .NET Framework, which is "old" technology, proprietory to Microsoft and most likely at the end of its life with .NET Framework 4.8.
  • .NET Core, which is an open source implementation (lead my Microsoft) of the same APIs and will most likely be the future of .NET, starting with the upcoming .NET 5.0, where Microsoft strives to have re-implemented most of .NET Framework into .NET Core cutting away some legacy stuff and "merged" both strands.

There is a common denominator named .NET Standard, which can be used to write DLLs for both (Framework and Core).

But to answer your question. If someone has experience with C#, this person has also some experience with .NET (as set of assemblies).

Although .NET Core and .NET Framework have some differences, you can reuse most of your code written in any of the .NET Languages. There are some minor exceptions to this and some of the assemblies used to interact with the system have slightly different APIs. Also, at some points - as in ASP.NET Core - it uses a completely different approach.
Although mostly you can work in both, without any major differences and those are usually quickly learned.

Collapse
 
itsashleighhyo profile image
Ashleigh Roberts

Thanks, Andreas! Could you please expand on how ASP.NET fits into it all?

Collapse
 
aniel profile image
Niels • Edited

ASP.NET is like ML.NET an Framework on top of .NET.

There are two different versions "ASP.NET Core" and "ASP.NET". The first one only runs on .NET core (windows, Linux, etc. ) and the latter only on .NET Framework (Windows only).

Thread Thread
 
itsashleighhyo profile image
Ashleigh Roberts

Thank, Niels!

Collapse
 
andreasjakof profile image
Andreas Jakof • Edited

ASP.NET is the Server framework for .NET Framework.
It is a collection of assemblies providing you with a set of APIs to build your web pages.There is ASP.NET WebForms and ASP.NET MVC, both are depending on an IIS.

As @Niels already mentioned, there are two flavors of ASP.NET.
ASP.NET (as described above) and ASP.NET Core, which works a bit differently.

For ones, Core comes without the need for an IIS, although you can use it with an IIS. As a second, it does no longer support WebForms (I never liked those) but comes with MVC, Razor Pages, Server side Blazor and Client side Blazor (WebAssembly since 3.1), which all work a bit differently, allowing you to look for the best fit for your needs and style.

Thread Thread
 
itsashleighhyo profile image
Ashleigh Roberts

Thank you :)

Collapse
 
aniel profile image
Niels • Edited

Correct me if I am wrong, but ML.NET is an framework on top of .NET and not an language.

Source:
dotnet.microsoft.com/apps/machinel...
dotnet.microsoft.com/learn/ml-dotn...

Collapse
 
andreasjakof profile image
Andreas Jakof

Oh, right ... my bad.