In recent times, .NET developers have faced the question of moving their project from .NET to .NET Core. To migrate from ASP.NET to .NET Core is a smart move due to the following reasons:
- Cross Platform Support
.NET Core aka ASP .NET Core provides a cross platform support that was not present in its previous editions (.NET versions). It allows developers to build apps that support Linux, Mac and Windows platforms. It also provides modern architecture to build cloud and IOT applications.
- Enhanced Performance and Scalability
.NET framework is upgraded to provide enhanced performance along with speed and efficiency. The modern architecture is built with containerization and microservices that enable .NET Core to manage apps built with numerous microservices to make sure that scalability doesn’t remain a problem any more.
- Fast Development and Deployment
Different features like modular architecture, razor pages, powerful UI components, regular updates, wider community support, secure processes, easy integration of client side frameworks, lightweight, cloud-ready and inbuilt dependency injection boost faster development and permit businesses to anchorage constant development and deployment.
Steps to Migrate
Following steps will help you to migrate to .NET Core:
- Restart the project that you want to port to .NET framework 4.7.2 or higher. In case .NET Core doesn’t support any specific API, then these steps can be applied to use substitute APIs for specific targets in .NET Framework.
- In this case. .NET Portability Analyzer becomes quite handy. It analyzes assemblies and tells us whether it is portable to .NET Core or not?
- Installing .NET API analyzer will help us to recognize APIs that throw PlatformNotSupportedException on some platforms and recognize further potential compatibility issues.
- Transfer all your packages.config dependencies to the PackageReference format with the help of conversion tools such as packages.config that don’t work on .NET Core.
- The project file format used by .NET Core is more simplified than the .NET framework. Due to this, you have to create a new project for .NET Core and copy source files and convert your existing files with a tool.
- Now comes the most important part of the process i.e. porting the code. One should always port their test code first and run or test the code. Because sometimes porting code can bring in such a change that may result in damage.
Some Additional Points To Take Care of while .NET Core Migration:
- The new simplified .csproj file format is introduced in ASP.Net Core. We can edit this file without unloading it in the visual studio.
- Using .NET Core, we have the flexibility to target .both or .NET Framework and .NET Core individually.
- The entry point to an app in ASP.NET is Startup that doesn’t depend on Global.asax. Each Startup should have a Configure method. You have to add the required middleware to the pipeline in Configure.
- The concept of dependency injection in software architecture is very useful as here one object supplies the dependencies of another. It plays a major role in developing large, loosely coupled and scalable applications. DI (Dependency Injection) is a native component of .NET Core architecture.
- .NET Core doesn’t support multi-value cookies. We can use one cookie for each value.
Useful Tips For a Smooth .Net to .Net Core Migration:
It is always advised to pre-plan things to ensure continuous monitoring, network readiness, code safety and provisions to fix issues in case they arrive.
- We should try to move project module wise instead of the whole codebase to .NET Core.
- Dotnet try-convert tool can be used as a starting point to automate basic setup but not whole because it has been observed that converting projects with this tool creates subtle change in behavior.
- “base” of the library should be identified as it could be the data models or classes or methods that are necessary. Copy the “base” in a new .NET Core project. Make any changes if required to compile the code. Repeat the same steps after copying another layer of code.
- Open source code editor of Microsoft also known as Visual Studio (VS) can also be used by .NET Core developers i.e. supported by major operating systems (Windows, Linux and MacOS).
Conclusion
Migration of a project is completely dependent on the project requirement and architecture to support it. We have tried to cover the small but essential steps that we can sometimes miss, which can cause issues and require a complete repeat of the process. This blog will help you to eliminate that repetition and you can start working in the first go.