DEV Community

Ashleigh Roberts
Ashleigh Roberts

Posted on

Explain C#.Net Like I'm Five

What's the difference between C#.Net and just C# or .Net Core?

If I'm looking for a Full Stack Developer with C#.Net where C++ is a nice to have, would someone who has C# and C++ be able to pick up the .Net aspect very easily or would they need to learn .Net Core AND C#.Net?

Top comments (15)

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
 
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.

Collapse
 
itsashleighhyo profile image
Ashleigh Roberts

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

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

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
 
katnel20 profile image
Katie Nelson • Edited

.NET is a framework that has been around since the beginning of C#. It runs only on the Windows operating system.

.NET Core is a newer open source version that runs on Windows and several Linux versions including Apple MAC OS.

I’m pretty sure it’s what Microsoft is pushing developers towards. I read that when the next version of Core is released, they will stop any further releases of the plain .NET

The syntax when writing for both is the same (that’s the C# part), but the patterns used to develop are slightly different. I first learned .NET (it took months to feel comfortable) and recently it took a couple of weeks to learn the newer .NET Core patterns.

Hope that helps Ashleigh.

 
andreasjakof profile image
Andreas Jakof

C++ is a good language to learn with. It makes every other language very easy to grasp.

That is definitely true... learning to code the hard way :)

It was not my first language, but the one I was using as a first langauge, when I started to code professionally. I would not say, that it is an easy langauge, but if you put your feet under you in C++, you very fastly get any other C-based (syntax) language.

I once heard someone say, which describes C++ pretty good:
C++ gives you all things you need, to prevent you, from shooting yourself in the foot. But if something goes wrong, the whole leg is gone.

Collapse
 
andreasjakof profile image
Andreas Jakof

.NET framework also provides C++ development and it would be easier for a C# developer to start writing C++ in the .net framework, than a C++ dev to learn .NET framework quickly.

Coming from C++ I'd say the opposite. It is easier to learn C# and the behavior of a garbage collected language, than coming to a language, where one has to manage memory oneself.
Also the syntax in C# is easier on the eye and if you already know C++ very easy to read and write.

Collapse
 
itsashleighhyo profile image
Ashleigh Roberts

That's perfect, thanks so much Trevior!!

Collapse
 
chocolim profile image
Choco Lim

C# is like Java if Sun didnt stoped working on it for 8 years.

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard • Edited

C# is a good language indeed

But you are making an interesting factual claim here.
Nobody worked on Java for 8 years?

I rate this claim as Pants on fire! :)

Collapse
 
chocolim profile image
Choco Lim

Java SE 6 December 2006
Java SE 7 July 2011
Java SE 8 March 2014

Java 7 is really that different from Java 6? Its has improvements but its more like an Java 6.5