People often ask me “How long does it take to migrate to the core?” My usual answer is “It depends, it can take one hour or one year, it all depends on how you define “migrating to the core” and the state of your project.”
So, let’s start by defining “migration to the core” because there are a number of cores, the ASP.Net core and the Entity Framework core, for example. However normally, when using the term ‘the core’, you most likely have in mind the .NET Core which is a .NET runtime and replacement for the .NET Framework. .NET Core runs on many platforms. It is open source and faster than the .NET Framework. Additionally, it has new .NET features. Because .NET Framework is at the end of its lifetime, all new projects should use .NET Core. It’s also advisable that, if your project uses the .NET Framework, you should seriously consider migrating to .NET Core.
The condition of your project and the technologies you are using, are key factor when estimating the work needed to migrate. Many libraries become obsolete over time and there will eventually be no version for .NET Core. Also, concepts change over time; for example, configs are handled differently in .NET Core than in .NET Framework. The most important constraint is in your web and API projects: WCF is discontinued in .NET Core and you cannot migrate ASP.NET Web forms either.
So how then should you migrate your project? Our approach is to take many small steps toward .NET Core as part of routine development. Even in instances where we can’t migrate to .NET Core, we made our project much better, easier to maintain, and more prepared for future changes. Also, developers are much happier working with a project that has been modernised.
The migration process is quite straight forward. First, you should create a road map: “Things I have to do before I migrate”. Next allocate some percentage of the budget to modernisation; let’s say 20% of the time could be spent on making small steps towards migration. If at any point during this time you decide not to finish your migration, the effort will not be wasted because the changes implemented so far will make your project much better.
Once preparation is complete, you will only need a short period of time for the whole team to do the final migration. Because of the thorough preparation stage, you will be able to plan the final stage more precisely because developers will have a much better grasp of the necessary changes.
From our .NET guru Bohumír Pospíšil, CN Group Architect Chamber