.NET Core 3 marks a significant release in the reboot of .NET. Now that the fundamental framework is in place, Microsoft has been able to look at technologies that, while no longer en vogue, are running on millions of machines around the world.
WinForms and WPF have been victims of their own success: Microsoft simply dare not change the framework around them and risk breaking applications that may have been running successfully for several years.
C# 8 has a similar theme in that it introduces features such as nullable reference types, and interface implementations that are designed to improve legacy code bases.
A legacy code base is any code that has already been written, whether that was 10 years or 10 minutes ago!
In this, the first chapter, we'll create the Ebook Manager application. Following this, we'll pick up our Ebook Manager built with .NET Core 2 and migrate it over to .NET Core 3.
In .NET Core 2, a number of significant performance enhancements were made, and so there is a real drive to upgrade existing WinForms apps to .NET Core 3. Microsoft has boasted that .NET Core 2.1 had over 30% performance boost for Bing.
The topics that we'll cover are as follows:
- Creating a new WinForms application in .NET Core 3.0
- Migrating an existing WinForms application to .NET Core 3.0
- Nullable reference types
- XAML Islands, and how they can be used to add functionality to existing WinForms applications
- Tree shaking and compilation