The .Net Framework has been around for many years and has gone through several major versions. The first version (1.0) was released in 2002, and the latest version (.Net 6) was released in 2021.
Whenever a new version is released, Microsoft continues supporting older versions for a period of time. The support that they provide includes security updates, bug fixes, and other technical support.
However, there is an end date for this support. For example, the support end date for .NET Framework 4.0 was January 12, 2016. This means that after this date, Microsoft will no longer provide any of the above-mentioned support for this version. Once support for a version of the .Net Framework ends, it is important to migrate to a newer, supported version.
While your applications will still run on an unsupported version, they will be unsecure. Additionally, you will not be able to receive technical support for any issues that you might encounter unless you upgrade to a supported version.
The Three Types of .Net Platform Support
Microsoft provides three types of support for its .NET platform (which refers to the .Net ecosystem that includes all versions of .Net Framework, .Net Core, and .Net numbered versions). The three types of support from Microsoft include:
- Operating System (OS) Support: OS support is the underlying support provided by Microsoft for the OS on which the .Net platform runs. This type of support is usually provided in the form of security updates, bug fixes, and other technical support. It's a very long-term support service that is tied directly to the support lifecycle of the OS, which is often 10+ years.
- Long-Term Support (LTS): LTS is a type of support that Microsoft provides for a specific version of the .Net platform. This type of support usually includes security updates and bug fixes. LTS support is provided for three years following the initial launch of a .Net platform.
- Current Release Support Only: Microsoft will provide three months of current release (short-term) support following an LTS release or the next "current" release (whichever comes first).
Ending Framework Support – What It Means
Ending support for the .Net Framework means that Microsoft will no longer provide security updates, bug fixes, or any other type of technical support for that specific framework. This can pose a serious security risk for applications that are running on an unsupported framework, as they will no longer be receiving any security updates.
Additionally, any issues that you encounter with your application will not be resolved by Microsoft unless you upgrade to a supported version of the .Net Framework.
With that in mind, the following are a few more specific details on how certain technologies can be affected by the lack of .Net Framework support:
.Net And Windows
If you're using the .Net Framework for Windows, then you're in luck. The Windows operating system has a very long support lifecycle, often 10+ years. This means that even though Microsoft might stop supporting a specific version of the .Net Framework, the underlying OS will still be supported.
Of course, this only applies to the Windows operating system. If you're using the .Net Framework on another type of operating system, then you will need to migrate to a supported version of the framework once support ends.
.Net And Applications
If you have an application that is written in .Net, then it will continue to run even after support for the framework has ended. However, you will not be able to receive any technical support for that application unless you upgrade to a supported version of the .Net Framework. Additionally, your application will no longer receive any security updates, which could leave it vulnerable to attack.
It’s worth mentioning that the more outdated an app is, the more prone it is to cyber attacks. This is because cyber attacks are becoming more sophisticated as technology continues to advance. Without regular security updates, your apps will be subject to more and different types of cyber attacks.
.Net And Servers
If you're using the .Net Framework on a server, then you will need to upgrade to a supported version of the framework once support ends. Additionally, any applications that are running on that server will also need to be upgraded to a supported version of the .Net Framework.
.Net And Security
As we mentioned before, one of the main risks of using an unsupported version of the .Net Framework is that your application will no longer receive any security updates. This could leave it vulnerable to attack, as new security vulnerabilities are discovered.
Why Is Support Ending For The Framework?
Older releases of the .Net Framework were signed using Secure Hash Algorithm 1 (SHA-1) certificates. Hashing is similar to encryption, meaning that it is used to protect data by transforming it into a secure code. However, unlike encryption, hashing is a one-way process, meaning that once data has been hashed it cannot be unhashed.
SHA-1 certificates are no longer considered to be secure, as they can now be easily broken by computers that have been specifically designed for that purpose. This means that if an attacker were to get their hands on an SHA-1 signed certificate, they could potentially use it to spoof their identity or forge signatures.
As a result, Microsoft is ending support for any version of the .Net Framework that is signed with a SHA-1 certificate. It's one of the primary reasons why you should migrate to a newer version of the .Net Framework.
Which Versions Of .Net Will Be Affected?
The following are the levels of support that are available for the different versions of .Net Framework as of April 26, 2022:
- .Net 1.0 - No longer supported
- .Net 2.0 - No longer supported
- .Net 4.5.2 - No longer supported
- .Net 4.6 and .Net 4.6.1 - No longer supported, unless it was built into the OS of Windows 10 Enterprise LTSC 2015. In this case, the framework was a long-term servicing channel release and it will be supported until October 2025.
- .Net 4.7 - Still supported
- .Net 4.8 - Indefinite support as long as it's installed on supported operating systems
- .Net 5, 7, and odd-numbered versions - Current support only
- .Net 6, 8, and even-numbered versions - Long-term support is provided
End Of Support For .Net Core 3.1
.Net Core 3.1 was released on December 3, 2019. Although the latest patch (3.1.26) was released on June 14, 2022, it will only be supported until December 13, 2022. After this date, you will need to migrate to a newer version of .Net Core in order to continue to receive support and security updates.
It's worth noting that .Net 6 is the latest version of .Net Core and will be supported up to the end of 2024, while .Net 7 is expected to be released at the end of 2022. The terminology may seem confusing, but essentially .Net Core and the .Net Frameworks were developed in parallel, but now the .Net Core has replaced the .Net Framework. As such, the latest versions of .Net Core are simply referred to as ".Net" versions.
What You Should Do Now To Prepare
As we mentioned before, one of the main risks of using an unsupported version of the .Net Framework is that your application will no longer receive any security updates. This could leave it vulnerable to attack, as new security vulnerabilities are discovered.
With that in mind, if you're using a .Net Framework that is no longer supported, then you'll want to prepare for the end of support by doing the following:
- Inventory Existing Applications: The first step is to inventory all of your applications to determine which ones are running .Net Framework and .Net Core, as well as to identify which versions they are using.
- Assess Deprecated Components: Take a look at any components or libraries that are being used by your application. If they're no longer supported, then you'll need to find alternatives.
- Prioritize With Stakeholders: Work with stakeholders to prioritize which applications need to be migrated first. Additionally, you'll want to evaluate the cost of the migration. Some stakeholders may decide that it is better to just rewrite the entire application, especially if doing so will allow it to better align with the existing business strategy.
- Prepare A Rough Migration Schedule: Based on the inventory and assessment, you should prepare a rough migration schedule. This will help ensure that everything is done in a timely manner.
If you're using a .Net Framework that isn't supported anymore, you'll want to begin migration as soon as possible. If your version is still supported, then you have some time to plan ahead.
- Increase Your Release Velocity: One of the best ways to prepare for the end of support is to increase your release velocity, which is the rate at which you can push out new features or updates to your application. By increasing your release velocity, you'll be able to migrate to a newer version of the .Net Framework more quickly.
When To Start Migrating Platforms For Existing Apps
Some organizations wait until support ends before they start migrating, but this isn't always the best approach. If you wait until support ends, you'll be playing catch-up and might not have enough time to properly test and deploy your applications. Additionally, you risk running into problems if there are any unforeseen issues with the migration.
It's generally best to start migrating at least six months before support ends. This will give you enough time to properly test and deploy your applications. Additionally, it will give you a buffer in case there are any unforeseen issues with the migration.
However, if support has already ended for the .Net Framework that you're using, don't panic. The following are a couple of tips on how to quickly migrate in this situation:
- Minor Versions: You should upgrade any minor versions that are no longer supported as soon as possible. However, if you're using .Net Framework 4.8 (and newer), then you can choose to delay migration. While .Net Core 3.1 is still being supported, that support ends in December of 2022.
- Patch Versions: If you don't have time to deal with potential breaks, you may not want to rush into patch upgrades (which are security fixes). However, you should still upgrade as soon as possible as security risks will continue to increase.
Targeting Platforms For Newer Applications
Targeting an older platform can be beneficial as it can help you minimize the cost of re-training your staff. However, you won't want to target a platform that is no longer supported or that is nearing the end of its life. As such, the following are a couple of things to consider when choosing a platform for your new applications:
- .Net Framework: You should not target an older .Net Framework that is not supported. However, that doesn't necessarily mean you have to target the newest version of .Net. For example, Microsoft will continue to support .Net 4.8 as long as it’s on a supported version of Windows.
- .Net Core: It's best not to target the .Net Core versions as only 3.1 currently has LTS, but that will come to an end in December, 2022.
- .Net 5, 6, and Beyond: As previously mentioned, .Net 5 and .Net 6 are actually considered to be newer versions of .Net Core. However, you may want to avoid targeting .Net 5 as it will only have support for the current release. Fortunately, .Net 6 does come with LTS, which means it will be supported for three years.
Targeting Different .NET Platforms For Different Applications
Not every application you develop has to be on the same .Net platform. You can target different platforms for different applications. Just be sure to consider the following:
- Is the version being used at end-of-life?
As long as it's not end-of-life, you can target the platform as much as you want, even if there is no support. However, you should strongly consider another version if the one you are looking at is no longer supported.
- Is there a parallel track for .Net development?
As mentioned before, .Net Framework and .Net Core versions will no longer be released in parallel. Going forward, there will only be major-numbered .Net versions.
- Can you target any major-numbered .Net version?
You can, but odd-numbered releases (such as .Net 5) will only have current version support, whereas even-numbered releases (such as .Net 6) will have LTS. As such, it's better to target even-numbered releases.
Be Prepared For .Net’s Support End Date
Several recent versions of the .Net Framework are no longer supported by Microsoft. If you're currently using an unsupported version, then you should strongly consider migrating to a supported version as soon as possible. Security risks will only continue to increase for unsupported versions of .Net.
When developing new applications, you'll want to avoid targeting older versions of .Net that are no longer supported.
However, you don't necessarily have to target the newest version of .Net. For example, Microsoft will continue to support .Net 4.8 as long as it’s on a supported version of Windows. Just make sure that you keep the end of support dates in mind for the version you're using so that you can begin migration plans accordingly.