Solving Technical Debt by Updating our Orchard Core Web Application to .NET Core 3.1

Keeping up with Technology

YouTube Video

OrchardSkillsYouTubeThumbNailUpdate

Introduction

In the realm of software development, every software project acquires technical debt. One of the areas a project can require technical dept is when a platform gets updated. Back on December 3, 2019, Microsoft released .NET Core 3.1. The most important feature is that .NET Core 3.1 is LTS meaning its a long-term supported release. It will be supported by Microsoft until December 3, 2022. On December 26, 2019, the Orchard Core team updated to their projects .NET 3.1.

Technical-Debt-001

You can download the latest version of .NET Core at https://dotnet.microsoft.com/download.

Technical-Debt-002

Select the .NET Core 3.1 version.

Technical-Debt-003

Click on the Windows x46 version.

Technical-Debt-004

Load the MyOrchardCoreCMS solution. Most of the time Visual Studio will update .NET Core for you. Just make sure you have the latest version. You ca click on Help and the About to display the version.

Technical-Debt-005

In order to update the .NET platform to the latest, right click on the "MyOrchardCoreCMS" project and select "Properties".

Technical-Debt-006

Now let's update to the latest NuGet packages. Right click on the "MyOrchardCoreCMS" project and select "Manage NuGet Packages...".

Technical-Debt-007

Click on the "Updated" tab, you can "Select all packages" and the press the "Update" button.

Technical-Debt-008

Click on the "OK" button to confirm.

Technical-Debt-009

Select the "MyOrchardCoreCMS.Web" from the drop down combo box and press the green play button.

Technical-Debt-010

Enter your site name, select the Blog recipe, your credentials and press the "Finish Setup" button.

Technical-Debt-011

Your Orchard Core CMS Application is up and running with the latest software.

Technical-Debt-012

Go to the Admin Dashboard by appending "/admin" on the URL.

Technical-Debt-013

The Admin Dashboard is up and running as well.

Technical-Debt-014

With your favorite browser, browse to your DevOps site and select the project.

Technical-Debt-015

Select the Pipelines.

Technical-Debt-016

Click on your CI pipeline.

Technical-Debt-017

Click on Edit.

Technical-Debt-018

Add a new task by pressing the "+".

Technical-Debt-019

Search for :Use .NET Core" task and then add the task. Select "3.1.x" for the version. Save the changes.

Technical-Debt-020-1

Click on the CD Pipeline and select the "Edit" button".

Technical-Debt-020-2

Click on the "View stage tasks".

Technical-Debt-020-3

Modify the Runtime Stack to "dotnetcore|3.1".

Technical-Debt-023

Go back to Visual Studio select the "Teams Explorer" tab and then the "Changes" button.

Technical-Debt-024

Enter you description and then press the "Commit All" button.

Technical-Debt-025

Click on the "house" icon.

Technical-Debt-026

Press the "Sync" button.

Technical-Debt-027

Click the "Push" to push your changes to your repository.

Technical-Debt-028

Everything was pushed successfully.

Technical-Debt-029-1

Go back to the CI edit page select "Save and queue".

Technical-Debt-029-2

Click the "Save and Run"

Technical-Debt-030

Once the build task has been queued, click on the "Agent job 1" link.

Technical-Debt-031

Build is now successful.

Technical-Debt-032

Select the CD pipeline and select the latest release queued.

Technical-Debt-033

The delivery was successful.

Technical-Debt-034

With your favorite browser, browse to your site. Congratulations you got rid of some of your technical debt. Everything is working with the latest software.

Technical-Debt-035

Append "/admin" to your URL and enter your credentials to access the Admin Dashboard.

Technical-Debt-036

Admin Dashboard has been updated and working as well.

Conslusion

Technical Debt can be seen as a shortcut, which saves teams’ time, effort and/or money today, but might lead to increased costs in the future. Technical Debt cannot really be avoided in software projects. If the team and the customer handle the risk of Technical Debt properly, it should remain manageable. Any repayment should be a business decision. Even if the repayment is so small that a consultation with the customer does not make sense, the developer must always ask himself whether an improvement of the code really justifies the invested time and effort.

GitHub

The complete source code is located here.