The previous part is here.

As I wrote before our project has 824 C# projects. As you can imagine it is a lot of source code and converting so much code will take quite a lot of time. But we typically release a new version of our product every month and we definitely will not be able to finish all converting and testing within one month.

As a result, we have to create a branch and periodically merge changes from the main/master branch. But there are the following problems:

  • csproj file is for .NET 6 is very different from csproj file for the .NET Framework
  • if we change some code and this code will be changed for the .NET Framework then we will have to do tricky merges
  • it is a lot of work to convert many projects and we expect that some projects need manual conversion
  • build system needs to be changed as well to be able to build the .NET Core projects

Our company has a relatively big desktop product that still uses the .NET Framework. We tried to switch to .NET 5 in 2020 but we had one dependency that we could not make to work for the .NET Core family because it used things that were considered legacy even for .NET Framework. But this time it was way more successful and this is a story about how we were switching from .NET Framework to .NET 6 and what issues we had on our way.

But before you do anything you need to know why are you doing it. This is a really important question because such a huge change will create a lot of regression and your clients will be

I’m sure that many of you heard about a backdoor in xz util that allows specific people to get root access if Linux is configured to allow incoming SSH connections. There are a lot of systems like that because it is a typical configuration for pretty much every Linux machine. Fortunately, it was caught quickly, and as far as we know there were no real hacks made via that backdoor.

But it reveals a lot of problems and most of them are typical for open-source development.  I would like to review them and to explore if these problems apply to the closed-source world.

Let’s start with the obvious problem. You rarely get paid for developing open-source projects. Most of