Member Article
.NET Core For Cross-Platform App Development
.NET Core is the relatively new cross-platform version of the .NET framework that is designed for the cloud, and runs on Windows, Linux and Mac. It is both free and open-source and considered the next generation of .NET technology. It is supported by Microsoft and the development community. .Net Core is modular and runs on both the full .NET Framework, on Windows, and the cross-platform .NET Core.
It shares the same APIs as the .NET framework and the core features in terms of runtime and libraries and popularly used to build cross platform apps. Since most programmers prefer to write the business logic code once and reuse it everywhere, most applications are now veering towards a single code multi-platform approach .NET Core’s modularity is because of its release through Microsoft’s NuGet package manager. .NET Core is made available as small, focused packages rather than a single large assembly of core attributes. This allows programmers more flexibility to customize and include only those NuGet packages that they require. Therefore, the app size is smaller and provides better security and performance.
Deployment Choice and Cross Platform Applications .NET Core has a deployment freedom allowing developers to deploy their apps in two ways:
1. FDD: The first and default one is framework-dependent deployment (FDD). FDD relies on a shared system-wide version of .NET Core to be present on the target system. Since .NET Core is already present, your app is also portable between installations of .NET Core.
The app contains only its own code and any third-party dependencies that are outside of the .NET Core libraries. When this method is used, the resultant package is small but the app is only able to use the .NET Core version that exists on the desired system. This may be different from the version that it was originally built in.
2. SCD: The second way is self-contained deployment. A self-contained deployment (SCD) doesn’t depend on any shared components to be present on the target system unlike FDD. All components - .NET Core libraries and the .NET Core runtime - are part of the app and isolated from other .NET Core applications. SCDs include an executable (such as app.exe on Windows platforms for an application named app), which is a renamed version of the platform-specific .NET Core host, and a .dll file (such as app.dll), which is the actual application.
However, many developers don’t find .NET Core to be mature enough for use yet. Its cross platform capabilities for apps are compatible but not always well-suited to each platform due the uniqueness of each OS.
Here are some of the value propositions for .NET Core:
1. Cross-platform and Open Source: .NET Core supports three main operating systems: Linux, Windows and OS X with other OS ports in progress such as FreeBSD and Alpine. .NET Core libraries can run unmodified on supported platforms and require that the applications be recompiled per environment, given that the apps use a native host. The .NET Core 1.0 framework is accessible on GiHub licensed with MIT and Apache 2 licenses.
2. Modular Framework: .NET Core has a modular design and is distributed as a set of NuGet packages allowing apps to include only those .NET Core libraries and dependencies that are needed in line with the latest Docker contained development. To avoid conflicts with shared components each app makes its .NET Core version choice.
3. Smaller Deployment Footprint: .NET Core has a significantly smaller footprint than .NET Framework.
4. Fast Release Cycles of .NET Core: Its modular architecture provides an agile release cycle compared to the slow release cycles from monolithic frameworks.
The current versions of .NET Core have earned positive reviews. Thanks to its modular and lean design, flexible deployment models and cross platform possibilities..NET Core is more seen as a tool for building new applications intended to run as part of cloud workloads, or as part of a microservice refactoring of your enterprise monoliths.
.NET Core has become the heart of the .NET Foundation’s open source work. For instance, Samsung is adding it to its Tizen OS, and a recent .Net Core release brought on support for code running on the Raspberry Pi. .NET Core is also the foundation of Universal Windows Platform (UWP) applications built using the .NET development services. Meanwhile, .NET Core 2.0 preview version is slated for release in Q2 2017 and promises many improvements. Have you deployed .NET Core in your applications? What has been your experience?
Please share in the comments area below.
This was posted in Bdaily's Members' News section by Technoblogger .