Almost 20 years ago Microsoft decided to show us conception of .NET framework, which was intended to provide a quick way to create an application for Windows operating systems. Since that time platform evolves and gets a lot of versions, branches and sub frameworks witch bring to live many internal and external applications.
When in 2016 Microsoft shown new product branch of .Net called .Net Core, many of companies and software houses stared to ask themselves a question: Should we upgrade our .net framework app to .net core? Let’s try to answer this question.
What exactly is.NET Core? And why should you consider migrating? / 3 key benefits showing why you should consider migration to the.NET Core framework
.NET Core is a new platform for building applications based on Microsoft technology. Unlike previous versions of the .Net Framework, it was written from the ground up, and the development process was guided by assumptions about modularity, openness and the potential for dynamic by both Microsoft and the community associated with it. And most importantly: the new platform is designed to be independent of the runtime environment and open to other operating system providers. The main advantages of the new environment are:
1. Optimized .NET is quicker, better, faster, stronger
Performance is the most obvious benefit for applications. The new structure is more optimized after compilation and brings real gains in application performance. Based on statistics, we can say that ASP.NET Core is now at the forefront of web application performance testing
. With the right choice of additional accompanying technologies, such as presentation layer or data storage methods, we can design high-performance solutions.
2. Less dummy work and maintenance
The new platform requires less development work compared to previous versions. Developers can optimize the code structure by using nugget libraries
developed by the community around .NET Core and .Net Framework. Standardization of packets for the two branches through the introduction of the .NET Standard is intended to facilitate easier migration across implementations of these platforms in the future. The strong embedding of the packet concept in .NET Core will lead to smaller and lighter projects, and of course less code, easier to maintain. In addition, the new platform allows you to smoothly implement new relaeses of the framework inuse, and does not involve frequent rewriting of applications, as was the case in the .NET Framework.
3. Cross-Platform means “unlimited possibilities”
An application written in .NET Core can now run on all available platforms such as Windows, Mac or Linux, giving enterprises the opportunity to extract more value from a single product. For example, for desktop or mobile applications, it requires one backend code for various mobile systems such as iPhone, Android and Windows Phone. One C# code in .NET core can be hosted on Windows and Linux servers, giving us more options in the search for a more technologically and financially efficient solution.
What are the arguments against migration?
Despite the many advantages that the .NET Core offers, there are also reasons why each migration case should be considered individually. 1. Applications do not live in a vacuum
First of all, we must be sure that the functionalities in our applications using third-party solutions, integrations and custom libraries will be suitable for use by .NET Core. Despite being 3 years on the market, .NET Core is still a platform in development, so it may take some time before all libraries are available on the new platform. 2. Another issue is the platform’s dynamic development
This may lead to frequent changes of the application version being necessary. This imposes an obligation on us to manage these versions and test end-to-end applications to ensure quality. Therefore, we should consider whether this potential issue, despite the process being easier than before, will not be burdensome for us. 3. Migration costs for your team
Migration to a new platform is not automatic and requires that developers are familiar with both the old and the new platform. So if you have a business application that has been functioning for more than a dozen years and is supported by a team without the right competencies, the risk of migration increases significantly. This can be mitigated by taking advantage of external resources offered by partners providing digital transformation
for companies, assessing what and how can be upgraded in your organization 4. The .NET Framework remains alive
Microsoft says it will ensure support for the .NET Framework until 2027. As a result, maintaining applications that presently work on this solution should not pose a risk to companies from the perspectives of security and development possibilities.
So when should we use.NET Core?
The simplest answer is "definitely in new projects".
Until we begin seeing pitfalls resulting from the absence of some specific functionality or dependency with other systems provided by the new framework, we should not be afraid of the new technology. The benefits delivered by the new platform will certainly pay off in a short time, even with the team’s need to acquire experience with the new platform. What if we’re already in the middle of a project?
The first issue here is to determine the technological debt that our application has. The older an application written in ASP.NET MVC, and all the more so in ASP.NET Web forms, the greater the probability that migration of the application to the new framework will actually be an exercise of writing it again from the ground up in many areas. However, remember that sooner or later migration can always become a necessity, so we need to consider whether waiting is the best solution. Can we prepare for migration in existing applications?
Definitely. It will help to use new design patterns such as micro-services architecture, MVVM, CQRS or domain driven design. This will allow for easier migration of systems in the future owing to the potential of migrating their parts. Additionally, we can start today trying to use nuggets based on .NET Standard, which can presently work with applications in the .NET Framework and .NET Core in the future. Unity Group is one of Gold Microsoft Partners in Poland. Feel free to contact us directly if you require related help – we’ll be happy to support you.