5 ms·
I've written[0] and spoken[1] a lot about .NET Core, so I understand that it can be confusing. The similar naming certainly doesn't help. To summarize (and over
by jsingleton 9y ago
I've written[0] and spoken[1] a lot about .NET Core, so I understand that it can be confusing. The similar naming certainly doesn't help. To summarize (and oversimplify) there are three main varieties of .NET: .NET Core, .NET Framework and Xamarin.
The new open source and cross-platform one is .NET Core and it is currently suited to writing server-side web apps (e.g. ASP.NET Core) and command line applications. It is a reimplementation of .NET and more use cases are coming (UWP, CoreRT, native tool-chain etc.).
The Windows only one is .NET Framework and it is better for graphical desktop apps on Windows. WPF and Windows Forms are not open and are Windows only, so are not in .NET Core.
Finally, Xamarin is also open now and lets you build native mobile and desktop apps on Android, iOS and macOS. Full details of all these are on the official docs site[2] if you want to read more, or you could buy my book on ASP.NET Core 2 :).
[0]: https://unop.uk/book/ https://unop.uk/book/
[1]: https://unop.uk/talks/ https://unop.uk/talks/
[2]: https://docs.microsoft.com/en-gb/dotnet/ https://docs.microsoft.com/en-gb/dotnet/
- supergreg 9y agoWhere does Mono fit in all this?
- akoeplinger 9y agoXamarin is built on top of Mono. The same applies to Unity3D. We're sharing more and more code with .NET Core now so there's convergence happening but there are still pieces that are unique to us. Disclaimer: I'm working on Mono for Xamarin/Microsoft.
- paavohtl 9y agoMono is a reimplementation of .NET Framework. It supports most APIs and modules from the full framework, with one notable exception being WPF, the UI toolkit. They've been integrating code from .NET Core for better compatibility, but ever reaching 100% feature parity with the full framework is rather unlikely. Mono used to have it's own C# compiler in addition to the runtime, but since the official C# compiler is open source, well-engineered and cross-platform compatible, it now uses the same compiler as other runtimes. Xamarin is based on mono, and Unity ships Mono as their .NET runtime. Mono supports the most platforms out of all .NET implementations, including all current and previous generation gaming consoles.
- vadimberman 9y agoThank you for tuning in here. I imagine that WCF was one of the first parts to be converted. How mature is the Core .NET WCF now?
- barake 9y ago.NET Core does not have an implementation of WCF, and I can’t imagine to ever will. .NET Core has a pretty good MVC framework you can build REST services on, GraphQL, or gRPC etc. Most of the framework baggage was left behind.
- akoeplinger 9y agoThere's https://github.com/dotnet/wcf https://github.com/dotnet/wcf which are the _client_ libraries of WCF for .NET Core. For the server side of WCF you're right those are only available on .NET Framework right now.
- maxxxxx 9y agoI hope they won't port WCF. wCF makes simple things complicated.
- vadimberman 9y agoFor me personally, WCF made complicated things trivial. My startup was able to get into Fortune 100 enterprises with all their insane compliance requirements, letting their IT departments configure things the way they see fit. Once you get the hang of it, WCF is one of the best frameworks EVER written.
- jsingleton 9y agoThis is a bit complex, but for what most people think of as WCF (enterprise SOAP APIs) then it is not supported on .NET Core. The W stands for Windows after all. However, the ASP.NET Core MVC framework supports Web API and this was originally part of the WCF REST services. Of course, you can still interact with SOAP endpoints (served by various frameworks) as a client, as pointed out elsewhere here.