What is . NET Core?

Asked

Viewed 16,758 times

68

2 answers

56


Much of what is here already makes less or no sense, the . NET Core has evolved and now does some things that I say it doesn’t, for example run normal Winforms, WPF, EF6, ASP.NET MVC and other things, and it replaces other implementations, including the . NET Framework now died.

It’s a variation of the well-known . NET Framework (and now the override in use begins). It started based on the new 4.6 version of framework "". Both are developed jointly by Microsoft, but Core has help from the community. There are no major differences between them in the most basic part. Although they used the same code base they will be two independent development lines. The . NET Core is not required for the . NET Framework work since it has everything it needs. And of course the opposite is also true.

Don’t confuse him like the .NET Native which is another technology. Nor with versions limited by other factors such as the .NET Compact Framework. It’s not just a low-level layer. It’s almost the same thing as . NET Framework that can be used in a custom way.

Some more specific libraries are missing in addition to all the basic infrastructure for operating the platform, libraries to perform all normal operations with the . NET and even other advanced tasks are there, but not everything, because some things not making sense in Core or were already considered obsolete. In 2019 Core will have almost everything that was important, although some of them, even for technical reasons only work in Windows.

The . NET Framework will continue to be developed exclusively by Microsoft largely taking advantage of what exists in the . NET Core, despite being totally open source (no limitations). The . NET Core is being developed by the community led by Microsoft and with participation of the Mono community since it aims to run on all platforms mainstream. He uses mit license to make it compatible with Mono. In fact, it is owned by .NET Foundation and not from Microsoft.

Its primary objective is to function as backend on servers, which is where most applications are developed today, containers. embarked, finally, anywhere where you don’t need the infrastructure of . NET "full". But now in 2019 it starts taking space even on other fronts.

The . NET Core can be used for UWP client, WPF or Winforms applications, but the code for these technologies is not open.

There are the libraries provided by Xamarin for iOS, Macos and Android, which have their codes open. And of course GTK# remains open. In this way . NET is the most ubiquitous platform (C++ is harder, especially on some platforms) client side and server side.

It consists of all the necessary technologies for the execution of applications Coreclr including the VM itself, the GC, the new Ryujit, the BCL (the library) and typical server technologies such as Entity Framework Core, ASP.NET Core and the new Kestrel (new multiplatform HTTP server dedicated to .NET and which in new versions has been completely rewritten) which in newer versions is the fastest real-use HTTP server on the market.

It uses a modular technology requiring only what is actually used by the application. Through Nuget it is possible to add parts to it. Microsoft provides some new libraries such as SIMD and Immutable Collections and other existing libraries that are not part of Core as XML, and this is expanding. Of course the .NET Compiler Platform (former Roslyn) which is the compiler and compilation services is included and fully open as well, receiving including pull requests on Github (preliminary data).

The distribution may occur with your application, it will not have dependency on the . NET installed on the machine for an application to work. The new ASP.NET uses it by default. A quote from Miguel de Icaza shows well this difference:

In Core, . NET is no longer going to be a system service. Instead it’s going to be a Piece of technology that is bundled with your application in the form of Nugets [Packages installed by Developers]. When you deploy an app with . NET core, the web site will contain a copy of the virtual machine and a copy of Every library that it needs.

In short, it is not an operating system service, something that gets impregnated in Windows carrying everything your application needs or not. It serves as support for your application and is not a platform as is the traditional . NET or the JRE (Java), which has also been changing its philosophy.

The Mono will certainly benefit from the new license and evolve in quality. In the near future it will be possible to run CLR applications without saying that some platforms are second class. Mono will still be needed in certain scenarios although in most cases . NET Core will be the best choice. A major reduction in the use of . NET Framework (the full version available on Windows today), although it will still remain quite relevant in much of the legacy scenarios. In fact Mono will be "abandoned".

In addition to being a simplified and flexible version, but with all the power needed for almost every type of application, it is a more open version and less tied to Microsoft, despite its full support.

.NET Ecosystem

With all this was created the . NET Standard to help compatibilize all versions. And is already practically dead.

More information can be obtained in this blog.

Source: Response in the OS :P More can be read on posting by Microsoft. And has a Very interesting FAQ here.

And yet Why . NET Core was created?.

  • 2

    So what happened was basically a split of . NET Framework in two parts, the first would be its "lower level" part (core) where would be the implementation of basic Framework functionalities, and the second the more specific part that would encompass libraries/Apis/Toolkit that make use of "core" and which are commercially important to Microsoft. I am correct?

  • 4

    @Zignd is not enough to be the lowest level (the parts that make the platform work, the parts in C++, for example). The two versions have their lower part essentially equal. But otherwise their understanding is correct. The difference is more in the available libraries. Another thing is that the . Net despite being a platform, the . Net Core works in a way closer to that of a native application. What, by the way, there is also now a . Net Native. I’m still researching some things and I’ll improve the answer.

  • . Net Core came to replace . Net Framework?

  • @cat no, it’s another CLR implementation with slightly different goals. Each project can fit one better than the other. I think the trend is the . Net Framework to be used only when the application is Winforms or WPF, or even if it needs something very Windows specific.

  • I believe that netcore came with the goal of improving performance on the web, because now with netcore, it comes out ahead in various benchmarks.

  • 1

    @GlaucoOliveira https://answall.com/q/225927/101

Show 1 more comment

0

A well summarized but well summarized summary is the following: .Netframework: - Use the "dlls" installed on the server. - Exclusive for Windows.

.Netcore: - "dlls" are already "packed" next to the executable. - Faster than the .NetFramework. - Cross-Platform. - Cheaper.

  • 1

    This answer is incorrect, the implementation of an application . NET Core can be done in two types and in only one of them the components of . NET Core are contained in the application itself: .NET Core application Deployment. It would also be interesting to quote some source that proves these claims, that . NET Core is faster and cheaper.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.