Tuesday, November 29, 2016

.NET Core to the forefront

Introduction
.NET is Microsoft’s open source cross platform development framework which helps developers create mobile, desktop and web applications that run on Windows devices and servers. First started in late 2000, as beta versions of .NET 1.0 it has quickly become one of most popular frameworks for developers.
Latest Trends
NET Core 1.0 was released 27 June 2016. This is a cross-platform free and open-source managed software framework similar to .NET Framework. It consists of CoreCLR, a complete cross-platform runtime implementation of CLR, the virtual machine that manages the execution of .NET programs. CoreCLR comes with an improved just-in-time (JIT) compiler called RyuJIT. While .NET Core shares a subset of .NET Framework APIs, it comes with its own API that is not part of .NET Framework. Further, .NET Core contains CoreRT, the .NET Native runtime optimized to be integrated into AOT compiled native binaries. The command-line interface (CLI) of this framework offers an execution entry point for operating systems and provides developer services like compilation and package management.
Innovation using .NET
The .NET framework has been in the forefront of innovation from the beginning. Some of the innovative features of the .NET framework include LINQ (Language Integrated Query), ASP.NET Web framework, Asynchronous programming using Async/ Await, .NET Portable Class Libraries and Mobile services. Ability for the .NET core framework to be used in Docker containers is also an innovation this framework can boast of.
.NET in Mobility
Xamarin provides the following summarized features:
Native User Interfaces–Xamarin apps are built with standard, native user interface controls. Apps exactly look and behave the way the end user intended.
Native API Access–Xamarin apps have access to the full spectrum of functionality exposed by the underlying platform and device, including platform-specific capabilities like iBeacons and Android Fragments.
Native Performance–Xamarin apps leverage platform-specific hardware acceleration, and are compiled for native performance. This can’t be achieved with solutions that interpret code at runtime.
Productivity–With Xamarin.Forms developers can use the same logic and UI targeting iOS, Android and Windows 10 UWP.
.NET Core Advances
Unlike the traditional .NET Framework, which is a single package installation which is system-wide, and Windows-only runtime environment, .NET Core is about decoupling .NET from Windows, allowing it to run in non-Windows environments without having to install a bulky framework. This also helps to run this platform on Linux based Docker containers.    
Basically, the .NET Core Platform is packaged and installed in a different way. Instead of being part of the operating system .NET Core is composed of NuGet packages and is either compiled directly into an application or put into a folder inside the application. This means applications can carry .NET Core with and thus are completely side by side on the machine.
.NET Core consists of a common language runtime, which in .NET Core is named CoreCLR. .NET Core also features an extensive class library. Rather than a single .NET Framework Class Library, however, .NET Core features CoreFX, a modular collection of libraries. This allows you to include just the libraries that your app needs without the overhead of including those that you don’t need.
Value Proposition for .NET Core
The following topics are the main value-propositions of .NET Core:
Cross-platform and Open Source–.NET Core currently 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 across supported OSes and need the applications to be recompiled per environment, given that apps use a native host. The .NET Core 1.0 framework is available on GitHub, licensed with the MIT and Apache 2 licenses. It also makes use of a significant set of open source industry.
Modular Framework –.NET Core is built with a modular design and distributed as a set of Nuget packages enabling applications to include only the .NET Core libraries and dependencies that are needed in line with the latest docker contained based development. Each application makes its .NET Core version choice, avoiding conflicts with shared components. You can then choose a .NET image from Docker hub.
Smaller Deployment Footprint: Even when in v1.0 the size of .NET Core is a lot smaller than .NET Framework, note that the overall size of .NET Core doesn’t intend to be smaller than the .NET Framework over time, but since it is pay-for-play, most applications that utilize only parts of CoreFX will have a smaller deployment footprint.
Fast Release Cycles of .NET Core–.NET Core modular architecture provide a modern and much faster release cycles compared to slow release cycles from larger monolithic frameworks. This approach allows a much faster innovation pace from Microsoft and the OSS .NET community than what was traditionally possible with the .NET Framework. 

No comments: