Appendix A. Getting to grips with .NET Core and .NET Standard
This appendix covers
- Understanding the position of .NET Core in the .NET ecosystem
- Sharing code between projects using .NET Standard libraries
- Using the .NET Framework compatibility shim
The .NET ecosystem has changed a lot since .NET was first introduced, but the development of .NET Core has resulted in a particularly large degree of churn and the introduction of many new concepts.
This churn isn’t surprising given Microsoft’s newfound transparency regarding the development process, building in the open on GitHub. Unfortunately, it can be confusing for developers new to the .NET Framework, and even to seasoned veterans! In this appendix, I’ll try to straighten out some of the terms that developers new to .NET Core often find confusing, as well as provide some context for the changes.
I begin by discussing the .NET ecosystem prior to .NET Core, to highlight the issues Microsoft is attempting to solve by developing .NET Core. I describe the structure of a typical .NET platform and how that relates to .NET Core, as well as the similarities and differences between .NET Core and other platforms like the .NET Framework.
.NET Core wasn’t developed in isolation, and one of its primary design goals was to improve the ability to share code between multiple frameworks. In section A.2, I describe how this was achieved in pre-.NET Core days, using Portable Class Libraries (PCLs), and the new approach using .NET Standard.