The .NET (Dotnet) framework was first released in early 2000. It is a free, open-source development framework that you can use to develop a wide range of applications.

Microsoft stopped the official support of .NET 5 on 8th May 2022. If you happen to be using .NET 5 in your applications, this means your applications are more vulnerable to security breaches. Fortunately, you can easily upgrade or migrate your applications to the new LTS version of .NET, version 6.

What Is Dotnet 6?

.NET 6 is the current LTS version of the .NET framework and released in November 2021.

You can develop applications using .NET 6 on Windows, Linux, and macOS. It is also natively supported on M1 Apple Silicon chips and Arm-based Windows operating systems.

The .NET 6 framework also supports developing applications in multiple languages such as C# (C-Sharp), Visual Basic, and F# (F-Sharp).

One of the main advantages of the .NET framework is that you can develop a wide range of applications with it. These include Web apps, games, mobile apps, and desktop applications. In addition, the framework is both well tested and documented.

Installing .NET 6 SDK

You'll need to install the .NET SDK on your PC to be able to develop .NET applications.

Simply download the .NET 6 Software Development Kit (SDK), then install it on your PC. The SDK contains all the required tools for you to develop software in .NET 6.

Once the installation is complete, you can list the SDKs available on your PC using the following .NET CLI command:

        dotnet --list-sdks
    

If you simply want to check the version you are on, you can run the following command:

        dotnet --version
    

Download: .NET 6 (Free)

Updating the Target Framework

Start the upgrade by updating the .NET target framework. Your Web app contains a target framework moniker, which tells your application what kind of .NET runtime to use.

The target framework for your Web app is located in your application project XML file. It has the extension .csproj. Open the application project file and update the TargetFramework moniker located under the PropertyGroup tag from net5.0 to net6.0

        
<PropertyGroup>
    <!-- <TargetFramework>net5.0</TargetFramework> -->
    <TargetFramework>net6.0</TargetFramework>
 
    <UserSecretsId>xxx33795-1b05-xxxx-926f-dcc112c2xxxd</UserSecretsId>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
</PropertyGroup>

If your application uses the global.json file, then make sure that you update the SDK version to "version": "6.0.100".

Updating Package References

The next step is to update your application package references or NuGet package dependencies. The .NET framework is very modular and works on the concept of dependency injection. Your NuGet package references are located in the .csproj project file, under the <ItemGroup> tag.

The number of NuGet packages will vary depending on the size of your application and its complexity.

The first number in a NuGet package version usually shows which .NET framework it targets, 6, in this case. Make sure that you update all NuGet packages to reflect your target framework. The code following code listing shows the new package in bold. The old NuGet packages are commented out.

        <ItemGroup>
    <!-- <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.13" /> -->
    <!-- <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.9"> -->
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.3" />
 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.3">
        <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        <PrivateAssets>all</PrivateAssets>
    </PackageReference>
 
    <!-- <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.9" /> -->
    <!-- <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" /> -->
    <!-- <PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" /> -->
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.3" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.2" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.3.0" />
</ItemGroup>

Updating Debug Directory

If you are using Visual Studio Code (VS Code) for your development, it is important that you update the following line in the launch.json file. VS Code uses the program property value to store the path of the debugger. Your application will still work fine if you do not update the debugger folder, but you will not be able to run the VS Code debugger.

VS Code is a cross-platform editor with support for code debugging amongst other powerful features. You can even install it on ARM based chips like the Raspberry Pi.

code listing showing updated debugger path folder

Minimal Hosting Model

One of the major updates to the new .NET 6 framework is a minimal hosting approach. By default, new .NET 6 applications do not contain the startup.cs file. Service configuration and application bootstrapping happen in the program.cs file. Old applications will continue to work fine but consider updating them to minimal hosting in the future.

Note: You do not need to use minimal hosting when you are migrating to .NET 6.

Migrate to .NET 6

.NET 6 is the newest Long Term Support version of the .NET framework. If you are still using .NET 5 in your application, it's high time you upgraded to .NET 6.

Developers have built many useful frameworks on top of .NET, like ASP.NET, the web application framework. ASP.NET is an open-source platform that allows you to create powerful applications quickly. It may now be over 20 years old, but there’s still high demand for ASP.NET today.