Why would you upgrade to .NET Core anyway? It’s not trivial, you will lose some functionality that are available in .NET Framework and .NET Core is moving so fast right now that sometimes it feels like you can’t keep up anymore. For our situation there are a few advantages:
- .NET Core scales better
- Fast development of .NET Core means that new features will be available quickly
- Support for running on other systems than Windows alone
- Good support for containers (Docker etc.)
- .NET Standard allows us to migrate internal libraries and use them for both .NET Core and .NET Framework, which is ideal in our current system with multiple projects and services running.
However, there are also a few considerations to be made:
- Third-party components need to be upgraded too. Some will have changes in their API, some will not support all the features we need.
- Our build and release pipeline needs to be adapted for .NET Core
- Some of our internal libraries will need to be supported for two frameworks (like libraries that make use of MVC)
- A significant effort needs to be put in converting all (fortunately we have a lot of unit tests)
- Developers need to be trained to use .NET Core to the fullest.
All in all, it will be an advantage on the long term, and we will be able to migrate gradually because of our loosely coupled domains. The first project will be the hardest to migrate because everything will be new. When that is done successfully, we will have learned a lot and will be able to apply that to the other projects.
In the mean time, I will post some things on this blog that I find helpful. Because, maybe it will be helpful to other people as well. And, probably to me in the future 😉