The .NET Fiasco

Introduction

Welcome to the Road to Code!

This new series aims to document the misery I went through to upgrade my large codebase to .NET. So, let's jump right in...

The Awakening

At the end of 2022 I finally accepted the inevitability of upgrading my huge codebase to .NET Core. I hadn't really faced up to the facts that had been presenting themselves regularly over the preceding few years. As a sole developer, and a self-taught one at that, the migration to .NET seemed to be something foreign that I didn't imagine would ever affect me.

When I finally pulled my head out of the sand and looked around, beyond the blinkered path I'd previously followed, I realised that this was a big deal. After a little research, I blocked out some time in my diary and decided the best way to deal with this situation was to take a copy of my entire codebase, remove the old .NET framework, and install the latest .NET.

The Migration

It was so easy! The only thing left to do was iron out a few creases - tens of thousands of them in fact; tens of thousands of breaking changes that filled me with utter fear! But I stuck with it and gradually, with the help of Find and Replace and other basic tools, I managed to get the list of errors down to a thousand or so. And two weeks later, I finally got the thing to compile. However, although it would compile, I couldn't get it to run. And worse, I had no idea where to start debugging and daren't even think about all the shortcuts I'd taken and code that I'd commented out to look at later. This was certainly the lowest point of my career and one of the low points of my entire life.

The Redemption

What I did next changed me - as a developer, and as a person - and is the topic of this series of blog posts. But for now, I'll just give you a sneak peek of what's to come. Not only did I finally manage to migrate my codebase, but I was also able to improve it and make it more modern, secure, and performant. I also learned a lot about .NET Core along the way as I discovered its features, benefits, and challenges. And most importantly, I learned to embrace change and enjoy the journey.

The Conclusion

I hope you enjoyed this introduction to the road2code series. In the upcoming posts, I'll go into more detail about each of the steps and challenges I faced in my migration process, and share some tips and tricks that might help you in your own journey. Stay tuned!

Over and out.

Matt

P.S. Have you ever migrated a large codebase to .NET Core? How was your experience? What tools and resources did you use? Let me know in the comments below!