The .NET environment has been around since 2002. For many, these technologies are closely related to Windows and allow the development of solutions ranging from the classic application to the server components. .NET uses Common Language Infrastructure (CLI) - based execution environment, implemented as a common language runtime (CLR).
Initially, .NET was created to progressively erase the border between classic applications and web, but the environment was invariably linked to Windows. Although products like Xamarin (since acquired by Microsoft) have sought to make .NET and C# multiplatform development solutions, the vision really began to materialize with the arrival of .NET Core. .NET Core is a cross-platform module solution that primarily aims at preserving classic .NET functions.
Let’s take a look at the prospects regarding the service and its outstanding features.
Having emerged in 2002 .NET creators made sure the fruit of their determined work has evolved into multi (but not cross-) platform framework to suit demanding environment of corporate solutions . It allowed development of desktop, mobile and server cloud-based applications, but exclusively within Windows OS.
The name ".NET Core" is actually an umbrella term. .Net Core is presented by a set of technologies for Linux, macOS, Windows and others, whose code is protected by an Apache 2.0 or MIT license as appropriate, with associated GitHub repositories.
If you happened to hear anything about .NET Core it probably included the fact the it’s working with Mac OS X and Linux which was largely considered to be a subject of debate at the time, even despite existence of DotGNU and Mono project. In the meanwhile the latter became an open source project that turns .NET components into cross-platform realization. .NET Core platform is primarily built for work with various OS and therefore its non platform-specific part of the code is dominant.
As .NET Core platform is meant for server and cloud based solutions it provoked total .NET Framework stack reload with exclusion of certain technologies like ASP .NET WebForms, WCF, WPF and Windows Forms, out of it. This, respectfully boosted development of console and web tools. To reduce overall number of redundant dependencies and a product size, most part of required components can be loaded as separate modules through NuGet (former NuPack package manager).
.NET Core code is open and uses mostly MIT and Apache2 licenses. Similarly to classic .NET, .NET Core projects are easily cloud-transferred, especially with the support of Windows Azure Storage Services or by using cloud providers, like Digital Ocean virtual servers by using SSD.
Project Rider – works on Windows, Linux and Mac OS X and allows both Mono and .NET Core development. It’s basically a hybrid of IntelliJ IDEA and the latest technologies used in ReSharper, which now is probably the most popular Visual Studio plug-in. Even at the stage of early access preview, which does not presuppose its involvement in production process, Project Rider clearly shows its huge potential.
Visual Studio Community Edition - is a leading product of the company, positioned as an ideal IDE with the only drawback – there’s only Windows version publicly available. However it doesn’t stop eager professionals from project development for Linux and Mac OS X using Visual Studio Community Edition as it is the most functionally saturated product for Mono and .NET/.NET Core platforms.
ReSharper – one of the most used Visual Studio plug-ins for analysis and code refactoring with full support of .NET Core based projects.
Typically .NET is associated with complex corporate projects with high scalability standards and expensive infrastructure. Luckily .NET Core isn’t the case.
Let’s make a few real examples: one has to pay 13$ a month for ASP .NET hosting using the cheapest Microsoft Azure virtual machine; choosing in Azure App Service will save you 4$ monthly, while Digital Ocean virtual service will not only cost you only 5$ a month, but also has better source options comparing to Shared service.
Certainly, it’s not a big of a problem of the corporate scale of expenses. And considering quite a conservative attitude of big corporations in its current form, the new platform will function in the same segment where now are technologies like Node.js and Ruby. These are small projects with a limited budget and low architectural complexity. Thus, the target audience of .NET are start-ups and the market of small and medium-sized businesses.
Version 1.0 released in 2016 had the merit of drawing a clean line in the sand, telling developers that this was now the future of .NET development. The functional parity was however far from being reached. The 1.1 version improved the situation a few months later, but it is especially .NET Core 2.0, released last month, that really changes the situation.
Although important elements of the set, ASP .NET Core and Entity Framework Core are no longer part of the common core. As mentioned before, the environment is modular, and these elements will only be called if the developer needs them. Compared to the rest, ASP .NET Core 2.0 offers fewer new features, but some are important. To simplify the work of those who need it, Microsoft offers a Microsoft.AspNetCore. All metapackage to retrieve all the packages needed by ASP .NET projects in one go. The modularization led to a multiplication of the packets, causing the annoyance of some users.
Most significantly, ASP .NET Core 2.0 introduces Razor Pages, an alternative to the classic Model-View-Controller (MVC) architecture when the developer is working on a project that focuses on the pages themselves. It then focuses on their design and user interface. By default, there is only one .cshtml file containing the entire page. Solution for small and medium projects, or for beginners, it allows in an empty project to add a Pages folder and create as many PageModel elements as you want.
Based on all of the mentioned above, we can conclude that. NET Core allows small projects and start-ups to get all the benefits of an enterprise-class platform, while providing convenient and development tools, as well as an inexpensive infrastructure. In the future, however, the arrival of the platform is also inevitable for a large corporate market.