4 ms·
1. .NET "Core" ... I tell myself "C is for Cross platform." This is usually what people seem like they mean now when they talk about ".NET". 2. .NET "Framewor
by pyjarrett 4y ago
1. .NET "Core" ... I tell myself "C is for Cross platform." This is usually what people seem like they mean now when they talk about ".NET".
2. .NET "Framework" ... I tell myself "F is for Former." This is the older, Windows specific version.
3. .NET "Standard" ... I tell myself "S is for Specification." This is just the spec which defines what Core and Framework must implement.
- tiffanyh 4y agoThat’s super helpful, thank you. Where it still gets a bit murky is: > “ .NET has many different implementations, including the .NET Framework, Mono, and Unity. Each of these is a separate platform with separate Base Class Libraries (BCLs) and app models. .NET Core is another separate platform.”
- simooooo 4y agoYou don’t really interact with or care about mono as A normal c# dev
- WorldMaker 4y agoMono is almost entirely merged in .NET 8. Very few parts of "mono" exist now as a separate runtime.
- doodlesdev 4y agoWhat about Mono and Unity?
- pyjarrett 4y ago"Mono is an open source implementation of Microsoft's .NET Framework." [1] Unity looks like it uses its own fork of Mono, or IL2CPP, which is a fancy thing that converts the intermediate language produced by C# into C++ code, which it compiles. [2][3][4] [1]: https://www.mono-project.com https://www.mono-project.com [2]: https://docs.unity3d.com/2023.2/Documentation/Manual/overview-of-dot-net-in-unity.html https://docs.unity3d.com/2023.2/Documentation/Manual/overvie... [3]: https://docs.unity3d.com/Manual/IL2CPP.html https://docs.unity3d.com/Manual/IL2CPP.html [4]: https://docs.unity3d.com/Manual/Mono.html https://docs.unity3d.com/Manual/Mono.html
- DoctorOW 4y agoUnity was Mono, and still is in some places. Now, it's moving to the cross platform .Net runtime.
- WorldMaker 4y agoAs of .NET 8 most of what "mono" was has merged directly into one cross-platform .NET runtime. There's very little "mono" left, and most of it is on the path to disappearing/further merging, including the parts of mono that Unity uses.
- starik36 4y agoI think .NET "Standard" is deprecated. Per this article. https://devblogs.microsoft.com/dotnet/the-future-of-net-standard/ https://devblogs.microsoft.com/dotnet/the-future-of-net-stan... Though reading through it, I am still confused.
- Jochim 4y ago.NET Standard specified a common API that was implemented by the .NET Core and .NET Framework runtimes, allowing library authors to easily target both platforms. .NET Standard solved a problem at the time but as elucidated in the article, it turned out not to be the right solution in the long term. .NET Framework is essentially in maintenance mode and won't be receiving new language features, so new .NET Standard versions don't make much sense given the overhead they introduce. Newer versions of .NET will still be able to build and run libraries targeting .NET Standard but no new .NET Standard versions will be released. Greenfield projects now typically target what was previously called .NET Core. With the removal of .NET Standard, .NET Core was renamed to .NET to reflect the fact that it's the whole ecosystem as far as any future development is concerned.
- starik36 4y agoSo the bottom line is that .NET Core can't call a .NET Framework library. It must be converted to .NET Standard first. And despite deprecation (let's call it that), .NET 5, 6, 7, 8 will continue to support calling into .NET Standard libraries.
- matthewrobertso 4y agoI am not sure this is (still) correct - I am able to call into a .NET framework 4.8 library from .NET 7.
- int_19h 4y agoIf it's built against .NET 4.8 but only uses the API surface subset that corresponds to .NET Standard, that works - but then it's effectively a .NET Standard library with metadata not properly reflecting that.
- kgwxd 4y agoIt's just .NET going forward (for now) if you don't need to worry about any old stuff.
- Kwpolska 4y agoThe issue is with Googling (or Binging if you’re so inclined). If you google ".NET foobar", you might get answers for .NET Core, but you might also get old answers for the .NET Framework, written at a time when there was just one .NET, or when .NET Core was not as relevant and not the “real” .NET. Of course, it’s not super important if “foobar” is something simple and generic, like “.NET split string”, but when you get into the murky and obscure stuff, it might be hard to figure out if you’re reading an article about .NET Framework or .NET the-artist-formerly-known-as-Core.
- osigurdson 4y agoSuggest using ChatGPT instead of google.
- Kwpolska 4y agoThen go ahead and ask it, and tell us the results. A good query would be “How are assemblies loaded in .NET?”, and if the response talks about the Global Assembly Cache (GAC), app.config, or assembly redirections, it’s not applicable to the modern .NET. I’m skeptical, ChatGPT is not magic, and it was trained on ~15 years’ worth of “there is only one .NET Framework, so we might as well call it .NET” content, ~5 years of “.NET Framework is for serious business, and there’s the cross-platform (mostly-)web .NET Core” content, and 1 year of “.NET 5 is the future of .NET”.
- osigurdson 4y agoExcept .NET Core doesn’t exist anymore - it is just .NET.
- deleted 4y ago[deleted]
- pyjarrett 4y agoTrue, but I only recently started learning .NET and I had to come up with a mnemonic to help filter out and through older docs and resources. It gave enough clarity to gain traction.