What are the differences of “.NET”?

Posted on

Question :

I took a look at this response , but did not answer my question. As far as I know, there is the .NET Framework, .NET Core, ASP.NET, .NET Standart, and Mono but I do not know the difference between them and I do not know which one to use for proper projects.

I built an artificial intelligence in the .NET Framework thinking of running on other platforms, but I was recommended to restart the project entirely in .NET Core. But why?

I also built a project in .NET Standart thinking about running on Windows only, but I was also recommended to restart the project in the .NET Framework, I also did not understand this difference.

For multi-platform projects, what to use? What if it’s only for Windows? What if I want to run on an Android? I do not know, make a game for iOS? A professional online website / application? Or maybe a more complex game for Xbox … Can I use .NET in all this? If so, which one should I use?


Answer :

  • ASP.NET is just a part of these larger frameworks , not part of the CLR.

  • The .NET Framework only works on Windows and is already installed on it, and is the only one that currently works with Windows Forms, WPF and ASP.NET classic, and access a series of technologies that only makes sense in Windows. It is fully supported but has reduced the cadence of improvements. It has the complete infrastructure. Try to conform to .NET Standard.

  • .NET Core runs on a variety of platforms, is modular, suitable for cloud running, container and serves well backend and console. You can run UWP and other third-party libraries for GUI. It only runs ASP.NET MVC Core. It does not depend on an runtime installed. Wheel up on XBox. It conforms to .NET Standard using tricks.

  • Standard .NET d is just a specification, it is a standard that implementations must follow to conform to it. Each implementation chooses to support the version you want. But it has some tricks to conform and some implementations are only creating signatures to be able to compile and conform, but not as expected, probably only throws an exception. It is useful for targeting what you use when you want to use several different implementations.

  • Mono is the multiplatform independent implementation that is now maintained by Microsoft. We need him less every time. It conforms to .NET Standard, with tricks.

  • Xamarin, based on Mono to run on Mac, iOS and Android. It conforms to .NET Standard, with tricks.

  • .NET Native is similar to .NET Core and generates native code without * separate runtime (the executable has everything you need).

  • Rotor is a separate implementation created by Microsoft to meet the requirements for the platform specification to be accepted internationally with a formal standard. Never used in production.

  • .NET Micro Framework is a very limited and simple implementation that consumes few resources to meet the demands of low-capacity embedded devices. Pretty little used. It runs with 64KiB and does not need an operating system.

  • TinyCLR OS is a third-party initiative to maintain the goal of .NET MF that seems to be being overlooked by Microsoft.

  • .NET Robotics, as far as I know a variation to meet the robotic demands, but seems abandoned.

  • XNA Framework is a version of the .NET Compact Framework that specializes in games.

  • MonoGame would be XNA based on Mono.

  • Unity3D is based on Mono and specializes for gaming and is successful.

  • CrossNet and SharpLang were attempts to create native code for .NET.

  • FlingOS and COSMOS and MOSA are adaptive .NET-based operating systems.

  • .NET Foundation is just a foundation (nonprofit) that holds rights to .NET by promoting its free use. It is not a framework .

This list is far from wanting to be complete. Nor did I mention the versions used in Microsoft research projects and experimentations and other adaptations made to create operating systems.


Leave a Reply

Your email address will not be published. Required fields are marked *