What are the differences in ". NET"?

Asked

Viewed 521 times

8

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

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

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

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

1 answer

10


  • ASP.NET is just one part of that frameworks is not part of the CLR.

  • .NET Framework died, the rest of the paragraph no longer matters or is no longer true (more at the end of the answer). It only works on Windows and is usually installed on it, and is the only one that currently works with Windows Forms, WPF and classic ASP.NET, as well as access a number of technologies that only makes sense on Windows. It is fully supported but has reduced the rate of improvements. It has the complete infrastructure. Try to conform to . NET Standard.

  • .NET Core runs on multiple platforms, is modular, suitable for running on cloud, container and serves well backend and console. You can run libraries for GUI normally. It only runs ASP.NET MVC in its latest version or its core. It does not depend on a Runtime installed. Runs even on Xbox. Conforms to . NET Standard using tricks (actually it has now become the standard).

  • .NET Standard It’s just a specification, it’s a standard that implementations must follow to conform to it. Each implementation chooses to support the version you want. But Andou has some tricks to conform and some implementations are only creating signatures to be able to compile and conform, but does not do what expected, probably just throws an exception. It is useful to mark what you use when you want to use several different implementations. Now it makes little or no sense.

  • Mono is the cross-platform independent implementation that is now maintained by Microsoft. We need it less and less. It conforms to . NET Standard, with tricks.

  • Xamarin, based on Mono to run on Mac, iOS and Android. Conforms to . NET Standard, with tricks. It’s more a way to pack Mono than something different.

  • .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 Compact Framework is the . NET of more limited form to run in old cell phones and Pdas. Essentially unnecessary these days and I think we can consider it obsolete.

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

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

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

  • XNA Framework is a version of . NET Compact Framework specializing in games.

  • Monogamous would be the XNA based on Mono.

  • Unity3d is based on Mono and specialized for games and makes success.

  • .NET Portable was an attempt to create a GNU alternative to . NET, but was abandoned.

  • Crossnet and Sharplang were attempts to create native code for . NET.

  • Flingos and COSMOS and MOSA are operating systems based on the . adapted NET.

  • .NET Foundation is just a foundation (non-profit entity) that holds rights over the . NET promoting its free use. It is not a framework.

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

Treat all as experimental or legacy. In new projects you should only use . NET Core, or now (2021 onwards) just called . NET, only he will be widely supported.

  • When you talk about Mono - "We need it less and less", what do you mean by that ? what would be "with tricks"? an example.

  • 1

    @samuelrvg o . NET Core, Xamarin and other implementations cover most of what Mono does and the tendency is for it to be expanded. Trick is to create method stub that throws an exception saying that it is not implemented. This was one of the biggest atrocities I’ve ever seen on .NET. Some cases even implement something, but not the way it should, so compliance is only with the signature.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.