With the introduction of full-scale devices, operating over different platforms has always been a challenge to mitigate. The need of providing the same service over multiple platforms with unique user experience is reducing the gap between web and native applications.
With the low barrier, often free product use takes over commercial ones as far as the usage of the application over cross platforms is considered. To overcome this, Microsoft came up with .Net Core
Introduction
The .Net core is a free open source development platform maintained by Microsoft and .Net community on Github. It is a cross-platform framework used to build device, cloud, IoT applications supporting Windows, MacOS and Linux.
The .Net core was released on 27th June 2016 with Microsoft Visual Studio 2015 Update 3. Latest stable release as of writing this blog post is .Net Core 2.2.4 released on 9 April 2019.
Features
It is one of the emerging and booming platforms which brings the following features with itself:
- Open Source
- It is available with its complete code base on Github – https://github.com/dotnet/core
- Microsoft believes that building a community is vital to the success of any open source project. And to build a community, it’s critical that the development happens in the open.
- Most of the Microsoft community was on Github and hence the .Net core project was hosted on Github as it will be accessible to the community as a whole, good user experience, open to a wide variety of ideas.
- Cross-platform
- You can build the same application code that can be executable on different platforms like Windows, Linux, MaxOS
- Light-Weight
- Due to its modular implementation, we include the minimum number of modules as required, which makes the overall package light-weight.
- Easy to learn
- The .Net core is pure for both new and legacy developers.
- Lots of online resources are available.
- Easy to Deploy
- The deployment of .net core applications on the cross-platform (e.g. MacOS, Linux) have made their way easy due to the introduction of following deployments (Visit here for details)-
- Framework dependent implementation
- Self Contained deployment
- Framework dependent executables.
- The deployment of .net core applications on the cross-platform (e.g. MacOS, Linux) have made their way easy due to the introduction of following deployments (Visit here for details)-
- Performance
- Being lightweight and modular it is 3-8 times faster than its competitor. (e.g. PhoneGap, Codename One, Ionic Cordova, Sencha, Monocross, etc.)
- Cost-effective
- As it is an open source platform, it is available free of cost.
- One can choose any operating system.
- The single code base for application is working or hosted across the cross-platform on multiple devices.
The motivation for introducing .Net Core
- Having an effective free alternative like nodeJS, angularJS, Python, Java led to the rise of developers in open source.
- Microsoft left itself far behind in the race when competitors developed tools and techniques to minimize the gap between web and native applications.
- Microsoft states two basic principles to come up with .Net core and make it open source
- Lay the foundation for a cross-platform .NET
- Build and leverage a stronger ecosystem.
- The long-term impact of open source Microsoft technology will be enormous. The real cross-platform .NET will have a direct effect on hosting, licensing and maintenance costs. This will simplify selling .NET applications by a magnitude we can’t even imagine.
Use .Net Core for your server application when:
- Cross-platform needs
- When you need to provide the application service on multiple platforms like Windows, MacOS and Linux
- Micro Services
- When there is a necessity to go for microservices. Microservice is the breakdown of a significant project in smaller independent runnable modules.
- These modules communicate with each other via API.
- Scalability and Performance
- The .Net core is faster than traditional .Net framework.
- Helps reducing server and VM cost.
- It loads a minimum set of libraries that are needed.
- Containers
- The .Net core can be used with different design patterns and services. It is much easier to deploy Docker container in .Net core.
- Version Portability
- Multiple versions of .Net core can be installed on the same machine.
- It is possible to run different applications targeting a specific version of .Net core.
Use .Net Framework for your server application when:
- Your app currently uses .NET Framework (recommendation is to extend instead of migrating).
- Your app uses third-party .NET libraries or NuGet packages which are not available for .NET Core.
- Your app uses .NET technologies that aren’t available for .NET Core. e.g. ASP.net web forms, Visual Basic.
- Your app uses a platform that doesn’t support .NET Core.
Summary
The article gives an understanding of that .Net core is the modern and updated framework for building server-side applications. It has been redesigned from the ground up to be fast, flexible, stylish and work across different platforms. By using this new framework, developers can write C# code that will run on any platform, with performance rivalling or exceeding most other platforms. .NET Core is open-source, and the contributions of the community will help to improve its evolution. Hopefully, the points presented in this article may help you decide to upgrade to .Net Core in your projects.