47 ms·
.Net Core: cross-platform build tooling, minimal API .Net Standard: cross-platform comprehensive API .Net 4.5: Windows-only build tooling + comprehensive API
by ihsw 10y ago
.Net Core: cross-platform build tooling, minimal API
.Net Standard: cross-platform comprehensive API
.Net 4.5: Windows-only build tooling + comprehensive API
.Net MVC: Windows-only web framework built on .Net 4+
- kierenj 10y agoNot quite (I think): .NET Standard is an API definition, or rather a versioned set of them. ".NET Framework" (e.g 4.5) "implements" that definition, with some extra features to boot. ".NET Core" also implements it. It's a cut-down (though not very), cross-platform implementation of the .NET Standard. Mono is another implementation of the standard.. cross-platform too, but this time compatible with the actual .NET Framework, i.e. 4.5.
- yazr 10y agoR U saying that (currently) Mono is a superset of Core ? So i am starting with a large and varied Win code base, i will have an easier time porting (as much of it as possible) to Mono rather than Core ?
- WorldMaker 10y agoMono is not a direct superset of Core, but yes if you have an existing large .NET application you might have an easier time working with Mono than Core. Some of that may change as Core starts to get closer to .NETSTandard 2.0, depending on what sort of a legacy codebase you refer to. (That is, Mono has an okay-not-great emulation library for System.Windows.Forms, but it seems like it may be unlikely for .NET Core to have anything similar.)
- rodrigokumpera 10y agoMS engineer here, I work on mono. Mono is not a strict superset of .net Core. We follow desktop more closely. The extra APIs that are part of .net core, and are features on .net standard 1.6 will come to mono as we get the time to implement them.
- aandrieiev 10y agoIs mono going to be fully merged into .net _something_ (core? standard?) at some point in the future or it will remain separate?
- forgotAgain 10y agoFrom the OP: ".NET Standard is a set of APIs that all .NET platforms have to implement. This unifies the .NET platforms and prevents future fragmentation. Sounds like baseline API that will be present on all .Net <foo>.
- jongalloway2 10y agoThe .NET MVC thing is off. ASP.NET MVC is a web framework that implements the MVC pattern, as opposed to ASP.NET Web Forms, which was control based. ASP.NET MVC versions 1-5 run on the full .NET framework. ASP.NET Core includes MVC, and the API has stayed as close asp possible to previous versions of ASP.NET MVC. The lower level bootstrapping / hosting / middleware / config stuff is pretty different (much improved, IMO), but your application code (models, views, controllers, services, etc.) should move from ASP.NET MVC to ASP.NET Core pretty smoothly.
- Dayshine 10y ago>but your application code (models, views, controllers, services, etc.) should move from ASP.NET MVC to ASP.NET Core pretty smoothly. Controllers not so much. That's actually where the biggest changes are for most projects.
- maxxxxx 10y agoI am a .Net developer for more than 10 years and I don't know when to use Core or Standard. And why is 4.5 still around when I seem to be able to use Standard? I really wish they would clean up their story. Same for UI. When to use WPF, Winforms or UWP? It's just a mess.
- dragonwriter 10y ago.NET Core is a platform/implementation, like .NET Framework (there are others, as well.) .NET Standard is a "pure" API spec, not an implementation. Any version of Core supports some version of Standard, as does any version of Framework from 4.5 on. (Framework 4.5 supports Standard 1.1, Framework 4.6.1 supports Standard 1.4 and 2.0, Framework 4.6.2 supports Standard 2.0 and 1.5, Framework vNext will support Standard 1.6 and 2.0, Core 1.0 supports Standard 1.6, Core vNext will support Standard 1.6 and 2.0, etc.) Standard 2.0 will be a big deal, because pretty much all their active platforms will support it as of their next major version, though the earlier versions provide a handier way than has previously existing for addressing what works against the various .NET implementations, which should somewhat simplify cross-platform .NET development for the existing platforms.