Which Is It between .Net Framework and .Net Core?
With the release of many .Net versions and the fact that it has spread to other online ecosystems beyond Microsoft, the question arises as to when to use which between Net framework and .Net Core. And then again with so many names, which is which? Well, in this article the Iflexion .Net developers share their views on this lingering .Net issue.
Further, with three runtimes and four sets of libraries, it is even more tricky to settles on the foundation for your .Net applications, and to add to that it is now no longer only about the language, .Net languages are destined to diverge the result being some languages not working in some .Net environments. Now, users have to maneuver through more languages, and the .Net runtime targeted as well, as opposed to the previous one, runtime .Net Framework which developed with Windows and Microsoft to become part of the larger Windows ecosystem.
However it is not all gloom; as you will find in the new installer for Microsoft's Visual Studio 2017, users have access to more choice such as more selections for writing or Visual Basic, C# or F#, more variants of .Net, and more platforms to target which has achieved one of the main aims of turning .Net into a cross platform runtime. Visual Studio Installer is popularizing the latest addition to the .Net family, the .Net Core by making it very visible for choosing if you want to construct ASP.Net web applications, or if working with cross-platform applications using containers.
What is .Net Core?
Well, .Net Core is the latest addition to the .Net family and is not yet well understood; best viewed as an upgrade and refactoring of .Net to enable it to carry cross-platform development. It has quickly taken root and is now at the centre of most of .Net Foundation's open source work, an important attribute that make it possible for .Net Core to react faster to demand for new platforms, more than previous .Net libraries and runtimes. Its importance is underpinned when you see Samsung adding it to Tizen OS, and support for code running on Raspberry Pi made available in the latest release of .Net Core and is the foundation of Universal Windows Platform (UWP) applications, which use the .Net languages.
Despite coming with many features available on the rest of the .Net platform, it is most focused on providing server applications that are console based. It also offers software developers tools for building and running command-line applications on MacOS, Windows, and Linux, and is used to build ASP.Net Core web applications. In addition, it builds and runs microservices in Windows containers because tools available on Windows Server Nano, which it runs on, are familiar.
.Net Core does not come with common .Net features making it unlikely for running existing workloads; it is more effective for building new applications intended for cloud workloads, or for a microservices refactoring of enterprise monoliths. It has recently been updated to support UWP and Xamarin Forms which allows the building of GUI applications on small devices, which is why Samsung has it on Tizen's .Net support and Linux devices carry.Net Core on mobile. Being lightweight and fast, .Net Core has noteworthy advantages over .Net Framework which is more complex, but takes a while to learn since it cannot support several familiar extensions and libraries as compared to .Net development. However, it does not mean learning from scratch.
How about .Net Standard?
.Net Standard is responsible for libraries thus the name .Net Standard libraries, which confusingly is the same name (netstandard) used for building a target in .Net development, quickly defining libraries needed in code, and enabling automatic handling IDE and compiler. .Net, Microsoft standardized runtime APIs through ECMA making the same code capable of targeting different .Net runtimes, does not reach far enough since it cannot standardize the base class libraries needed for building more advanced applications.
It is this deficiency that .Net Standard library covers, specifying the APIs working across all .Net implementations; Android to iOS Xamarin code to UWP on HoloLens, Windows Phone's Silverlight to applications running on Azure's serverless PaaS. Another thing of note is that different .Net runtimes support different levels of the .Net Standard APIs restricting the easy transfer of code; to building code that will need to run on different versions of .Net, target the lowest common version of the standard libraries, just make sure that you target the right version of .Net Standard for the devices you want and remembering that the lower the version, the fewer the features you get.
It has taken a bit of time but what Microsoft wants to achieve with .Net and its refactoring are now becoming clear; once you distinguish between netstandard; target and .Net Standard; libraries it is simple and you will enjoy working on it.
Back to the initial question of when to use .Net Core or .Net Framework; if the applications you are working on are big with data connecting tools and workflow taking up a broad .Net, use .Net Framework. For less complex applications like cloud and mobile with cross-platform development, use .Net Core and .Net standard libraries.
About the Author
Ruchi has been creating SEO friendly content for over 7 years now. She has a niche for writing about technology and is great at providing tips on SEO and Blogging.