Whenever there is a new technology contagiously spreads across businesses, CTOs on alert whether this is the next big thing that will occupy the Domain.
.NET core has been around for a while now (.NET Core 1.0 was released on June 27, 2016). It was introduced as a Free, opensource software framework, which will work cross-platform rather than just on windows. But it wasn’t marketed as an upgrade to the .NET framework, rather it is an independent framework which has utilities supplementing the previous features.
.NET framework is still in service and the last Visual Studio update (4.7.2) was released on 30th April 2018.
With both these frameworks going strong there are questions around whether one should migrate to the .NET core framework or stay with the existing, if it suffices all our requirements.
As far as .NET core is considered we are not on fire for migration. Since it is of Microsoft origin, it is assumed that we will have to move to .NET core eventually. But is it a necessity or an urgency to do so. Here are a few features which if required, you need to move to .NET Core.
.NET is marketed by windows as - “.NET Core is a cross-platform version of .NET for building websites, services, and console apps”; Cross-platform compatibility being the keyword here. If your application needs to run on multiple platforms apart from windows, then .NET core is the go-to platform as it is compatible across Windows, Linux and Mac operating systems.
Microservices & Containers
Microservices architecture structures an application as a collection of services modelled across the business domain. Each service can be isolated, self-contained and can be based on individual frameworks.
Microservices and Containers go hand in hand. Microservices could work in individual Virtual environments, but Containers help encapsulate the runtime environment of your application, along with all the figures and files required to run it. Hence enabling application portability. Due to its lightweight nature .NET Core is a perfect partner for Containers. Being associated with Windows the size of an application in .NET Framework is quite heavier than the one created in .NET Core. Both Linux or Windows Container images can be deployed when using .NET Core, hence enabling us to work cross-platform. Dockers is the most used open-source Container in the microservices market.
.NET core is considered hands down the better performer over the traditional .NET Framework, as it provides high-performance server runtime. Scalability comes into question when we work across systems also while working with Cloud. Cloud-native modernization for SMBs require significant revamp of the existing software. Applications based on microservices are the core of Cloud-native development. With its Microservices and containers support model, .NET Core enables building applications which fully exploit a Cloud computing architecture, hence provisioning a marginal improvement in performance.
Compatibility with previous .NET versions
Considering you are already using the .NET framework, on varying versions for individual Applications; .NET Core will provide you with compatibility across all .NET versions. Further it provides the facility of side-by-side installation which will avoid the cost of upgrading your existing Frameworks and Applications.
Having said so, here are a few .NET technologies which are not available or compatible with .NET Core.
- Windows Specific APIs: If your application is designed to work with the Windows Registry or WMI it wont be possible with .NET Core since Core is considered to be an isolated from the underlying OS.
- Language support: Even though we have VB and F#, said to be compatible with .NET Core there are a few project types that do no support them.
- Workflow related services: Workflow Services and Data Services are only available with .NET Framework.
- Web Forms: ASP .NET webforms are only available in the .NET Framework.
- Web Pages: ASP .NET web pages are left out from .NET core.
Migrating from one platform to another involves cost and might require marginal changes in the code too. Keeping these differences in mind a Business should evaluate if they should or should not migrate to .NET .
Migration to any platform is a job that needs to be seamlessly performed involving .NET Development companies and requires a complete reevaluation of the services available on the previous platform. While evaluating technology partners for the same, make sure to involve a qualified team of experts in the process.