loading...

Explain C#.Net Like I'm Five

twitter logo ・1 min read

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?

twitter logo DISCUSS (18)
markdown guide
 

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.

 
 

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

 

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.

 

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

 

C# is the flagship language of the .NET framework. It is one language, regardless of how you may see it written as C#.NET or C# Core. It's the same language.

.NET Framework and .NET Core are always evolving and adding new features and ways to do things, but C# syntax is the same, with one and two new ways of doing some stuff as we go along.

It is a relatively safe assumption to make, that anyone you find with C# knowledge, understands .NET.

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

I hope this helps..

 

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

 

Ok, feedback accepted. To be fair, I started with C++ myself and C# was very easy to grasp.

I really meant however, that adapting to .NET; the new big bad IDE; the CLR and all the wonderful things that .NET programming comes with, it would take a while to fully appreciate the new environment and all that .NET allows you to do.

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

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.

 

That's perfect, thanks so much Trevior!!

 

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

 

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

 
 

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

 

C# is the language.
.NET or .NET Core is the runtime that C# runs on, the language aspect is the same between both runtimes.

Classic DEV Post from Aug 8 '19

About Pair Programming

Sometimes it helps to have another set of eyes to go through code with you, no matter how much experience you have. Pair programming is a cool way that some dev shops are handling this issue. I've learned a few things about it that I think are interesting.

Ashleigh Roberts profile image
Tech Recruiter at Berkeley Square IT β€’ Feminist β€’ Foodie β€’ Big fan of sitting down