8 Things to Prepare for a .NET Core Upgrade

As Microsoft begins to deprecate the .NET Framework and move their innovation to .NET Core, it might be the right time for your business to upgrade your applications to .NET Core. While the migration will likely require you to redo much of the “plumbing” of your application, the results of the move are overwhelmingly positive—faster speeds, improved performance, and more affordable deployment options.

Aptera team members have been working with clients to port several applications over to .NET Core and shared with us what they learned along the way. If you’ve found the right time to begin your migration to .NET Core, we’re sharing 8 factors to prepare for before you begin your migration to help it go more smoothly.

8 Factors to Prepare Before Migrating to .NET Core

Team collaborating around a conference table

1. Set Expectations Around Timeline

Before you jump into a migration, we should point out that it’s important to have realistic expectations around how long a typical upgrade takes. It doesn’t happen in a matter of hours, or even days. At best it’s likely a couple of weeks’ worth of work. One of our teams spent six weeks on their migration. We recommend selecting a time window where you can have a product freeze on new development for up to six weeks. Remember, while you won’t be producing new features, you will be investing in the future of the product.

2. Capture “Before” Metrics

After you finish the upgrade, you’ll want to know if moving to .NET Core has improved your app speed, up time, memory consumption, and other metrics. To understand the affect the migration had on your system, you’ll need to remember to gather all the relevant metrics before you begin the move as well. Having “before” data is critical for comparison with your “after.”

3. Know How You’ll Track Work

With multiple people on a team working on a migration and stakeholders and a Product Owner likely curious about progress, it helps to have a plan for how you will track your work. One of our teams used DevOps boards to great effect to keep track of tasks that needed done, who was working on what, and to keep their Product Owner apprised of progress. This visibility into the project also let them see where challenges and roadblocks were as well as giving stakeholders the peace of mind that the migration was continuing to move forward.

4. Verify that Third-Party Libraries Support .NET Core

Before you start your migration, we recommend making a list of all your app’s dependencies and then checking all of them for compatibility with .NET Core. Even some Microsoft tools didn’t make it to .NET Core, so it’s best to not make any assumptions ahead of time. It’s better to be thorough here so you don’t get stuck when a smaller dependency causes problems. Pay close attention also to open source libraries, as these rely on an open source network to keep them up to date.
Return key on a keyboard that says "security update"

5. Prepare to Upgrade Security

The move to .NET Core is a great opportunity to take care of technical debt surrounding security, so be sure to bring members of your security team onto the migration project. It’s important to not throw your app over the fence to security when you’re finished, but rather to have cross-team cooperation with them. Security specialists will be able to speak to implications that developers need to know.

Additionally, .NET Core has a different framework deploy model for vulnerability upgrades. In other frameworks, you could deploy once per system. Now, you need to update your SDKs and rebuild your app and redeploy if there is a vulnerability. You’ll want to make sure all of your developers are trained on new security update procedures.

6. Plan the Workflow for Database Conversion and Coding Migration

In previous versions of the .NET Framework, there were different ways to code your data access, leading some to set theirs up in less than ideal ways. In .NET Core, Microsoft has restricted how you can code your data access, making it so you have to do it the “right” way. It’s a positive change and will make your apps function faster, but this will leave many teams needing to upgrade to new APIs. Be aware that this could add time to your conversion process.

7. Plan Updates to CI/CD Pipeline

.NET Core projects utilize a different project file format which changes how it compiles. You’ll need your CI/CD pipeline to reflect the new build tools. Depending on the current set up of your CI/CD pipeline, this change could provide a good opportunity to revisit how it functions. One of our teams took the opportunity to completely modernize their CI/CD platform, moving to Azure DevOps to use the latest generation of build tasks, triggers, and quality gates, etc.

8. Know Your Testing Plan

Since there is potential for small dependencies to not work with .NET Core or when other aspects of the system need to be rewritten, you’ll likely need to do full regression testing on your product. Therefore, it’s important to have a living test plan—know where you are headed but leave it open so as you learn more into the process you can adjust your focus and add details.

One of our teams saw a lot of success by including the rest of the team, beyond just the QA manual tester, in the process. This way the developers and business analysts could help keep the QA testers aware of any additional variation cases that they might come across. Collaborative testing with the team is also beneficial because it gives everyone safety and visibility into the testing process.

Conclusions

A lot of these points discuss upgrades to other components of your product, but don’t feel like you need to upgrade everything during this process. Assess what makes sense to be upgraded right now for your business.

We hope that calling out these tips will help you to think through your migration to .NET Core before you start and hopefully save you a few headaches along the way. If you’d like help from a high-performing team for your .NET Core upgrade or to work on other aspects of your .NET application, let’s talk and see if an Aptera team would be a good fit.

Be the Leader Who Pushes Software Initiatives Forward

Get an Aptera Team on Your Side

Nikki Dent

Nikki Dent

Nikki is a technical copywriter for Aptera. With a bachelor’s degree in writing from Saint Mary’s College, Notre Dame, Ind., she has been honing her craft of marketing copywriting for the past seven years. In her role at Aptera, Nikki enjoys learning and writing about the technology and strategy at work across the company.

Like this Article? Share it with your friends!

Share on facebook
Share on twitter
Share on linkedin