ASP. VNext or. NET vNext?

Source: Internet
Author: User
Tags dotnet hosting

ASP. VNext or. NET vNext? Start with the concept and foundation

VNext most of the words that have been exposed since the exposure of ASP. NET VNext, why do you refer to this side, "VNext"? The reason is that I think that ASP. NET is just one of the development frameworks, the real core of which is the underlying support layer, and what's underneath is an analysis.

What are the. NET Framework, Mono,. NET core?

It is believed that many people have a lot of doubts about the new birth of this vnext, what exactly do they do? Responsible for what? What kind of role does the player play?

. NET Framework

This I believe everyone will not feel strange, do the. NET platform related developers should be familiar with at least the understanding of the approximate (although this is still a minority), the. NET Framework overall architecture diagram is very large, but for today's topic is subdivided into two chunks: the CLR (Common language runtime), FCL (Framework class Library).

The CLR is responsible for executing IL (intermediate language) and the FCL is a fast-developing class library that Microsoft provides to developers, which can be written by developers themselves without much difference in nature from the code we normally write.

Mono

Mono, like the. NET Framework, is a cross-platform migration of the. NET Framework, and Xamarin is based on it and Fengfenghuohuo.

. NET Core

One of the protagonists of today, the two chunks of the CLR in. NET fremework, the FCL it also has, but has been renamed and refactored.

The CLR is named:CoreCLR(. NET core Common language runtime)

The FCL is named:Corefx(. NET core Library)

In front of the two large blocks before everyone is good.

CoreCLR

CORECLR Outward Exposed: Roslyn, LLILC (Lilac).

Roslyn

This is familiar to everyone, it provides rich code analysis APIs and compilers to C # and Visual Basic. At first I thought C #, VB code to the binary code compiled completely by it to complete, later found it behind there is a silent pay hero: LLILC, and its most important role is the code analysis compiled by the action is transferred to LLILC.

Llilc

A true compiler worker. The official will provide the following: JIT (Just in Time Runtime Compilation), AOT (Ahead of Time Pre-run compilation) two ways to compile. But currently only JIT, and AOT is currently the Universal Windows Platform (UWP) privilege, I believe in the near future we will usher in the full platform of the AOT.

the JIT compiler implementation is now called: RyuJIT.

JIT-Compiled schemas

AOT Compilation schema

Modularity compared to previous features

Before we can imagine that the CLR, the FCL can be automatically based on the set version number to get it? The. NET core is based on modularity, and this is done in the future, so you don't need to install the. NET Framework version in advance to use the features of different versions directly. This brings a perfect solution to the running server installation of the new. NET Framework or the update. NET Framework, which is used later. NET platform, there is no need to worry about whether the server needs to be restarted after the update is complete because it is modular and can be loaded selectively.

Cross-platform

Vnext released at the beginning of the biggest feature is the Linux, OSX and other operating systems to run, which is what we feel the most need to be drunk excited. But individuals just feel that cross-platform is. NET This revolution has brought about a result, but it does not make me feel incredible.

Of course it has developed for many years. NET now cross-platform is not without cost, if you want to cross-platform means that the existing small, medium and large projects are almost non-portable, specific we look at the back.

Open

This is a feature that is farthest from us but most meaningful (essentially, it's not about the platform, it's about Microsoft). This means that we can contribute to CoreCLR (CLR), Corefx (FCL) to help make. NET more complete.

Why is it that we are farthest from us? The author also has open source some projects know how difficult it is to contribute to an open source project, and it is particularly difficult to get a contribution from it. That's why most developers don't use this feature.

Why is it most meaningful? This is hard to say, it takes time to prove that if Microsoft can create a good community environment then this will be reflected.

DNVM, DNX, DNU, KVM, KPM, Kre what the hell?

Let's look at the full and Chinese names of each abbreviation first.

Dnvm:.net version Manager (. NET versioning)

Due to the need to implement a cross-platform directory, Microsoft provides DNVM functionality, DNVM is the bottom-level content of ASP., a set of PowerShell scripts that launches the specified version of the ASP. NET runtime environment, and can be used to manage various versions of the ASP. NET runtime Environment (DNX) at the same point in the same machine, and to perform appropriate upgrade operations.

Before we mentioned the modularity of the features we said now we don't need to go around looking for. NET Framework installation packages to install different versions of the. NET Framework separately, but by a single tool for unified management (install, uninstall, upgrade, etc.), it can be understood as a "software steward" However, it currently has only one software:. NET Core (different versions, CPU architectures). If you use the. NET Core v2 version when you open the project later, we need to use the tool on the server to install. NET Core v2. (The installation process is very fast and each different version contains the content mentioned in the complete. NET Core)

Dnx:.net execution Environment (. NET Execution Environment)

DNX is the operating environment of the ASP. NET program to start and run the ASP. The runtime environment includes the compilation system, the SDK toolset, and the Native CLR hosting environment. You can use DNVM to manage various versions of DNX, such as the DNVM List command to list all available DNX environments, while DNVM install 1.0.0-BETA4 installs the specified version of DNX into the. Dnx folder, which you can%userprofile%\ in. Find all versions of DNX installed under the Dnx\runtimes directory. Different operating systems have different versions of DNX.

Dnx.exe:d nx.exe is a command-line tool for starting a self-hosted environment (self-hosting), and DNX is responsible for locating and invoking the CLR Native host when using command-line code to initiate a self-hosted environment. The DNX command is the entry point for the entire operating environment, and you can use DNX run to start the program.

Our code (C #, VB) is performed by. NET core and. NET core is performed by DNX.

Dnu:dnx Utility (. NET Execution Environment utility)

is a command-line package Manager that is included in the DNX, so as long as DNX is installed, you can use the DNU command, which can be used to recover packages, install packages, deploy packages, and so on, such as automatically download custom assemblies from Project.json for use.

It should be clear that we used nuget. We typically do a package restore in VisualStudio, In fact, NuGet provides NuGet.exe, Microsoft should consider the integration of NuGet.exe included in the DNX, his role is very simple, for the project to restore the package.

the development environment is restored and then released, so why does the formal environment still need it?

Vnext has always stressed that the cloud, we generally develop under windows (the strongest IDE in the universe), but the online environment is actually Linux at this time need to be different from the operating environment to restore the different package to run properly.

Kvm:k version Manager (k version Management) Kre:k runtime enviroment (K-run environment) KPM:K Package Manager (K-Pack management)

Can be found in the beginning of the 3 things with a K beginning with the three things the name is very similar, to here you think is right, Microsoft's renaming brigade again, before the Microsoft named the Project K Project, after this must have a professional name, the Microsoft development team on some of the content of the responsibility and name division.

Architecture diagram

The Content section of this section is referenced from: Understanding the ASP. NET 5 Runtime command: DNVM, DNX, and Dnu, thank Zhang Shanyu Seniors for our early exploration of the road.

. NET Framework 4.6 and. NET Core 5

As described above, the. NET Framework is what we now use. NET Frameworks, and. NET core is the next generation of the. NET Framework, so what are their two relationships? Let's look at a picture.

can find

. NET Framework 4.6

Support for WPF, Windows Forms, ASP. NET (4&5)

. NET Core 5

Only ASP. NET 5, Universal Windows Apps (UWP)

There's a very interesting thing going on here, Universal. The most important part of the unified strategy for the Windows Apps (UWP) Microsoft platform (PC, tablet, mobile) is the. NET core, and it's not hard to see the importance of. NET core for Microsoft. Microsoft has been the result of several years of preparation.

Written in the last reference

Http://www.cnblogs.com/shanyou/p/4589930.html
Http://www.cnblogs.com/shanyou/p/3764070.html
Http://www.cnblogs.com/dudu/p/4257106.html
Http://www.cnblogs.com/dudu/p/aspnet5-xre-cross-platform-secret.html
Http://www.cnblogs.com/dudu/p/4245809.html
Http://www.cnblogs.com/dudu/p/dotnet-core-framework-mono.html
Http://www.cnblogs.com/dudu/p/what-is-dotnet-core.html
Http://www.cnblogs.com/shanyou/p/4295163.html
Http://www.cnblogs.com/dudu/p/what-is-dotnet-core.html

Http://dotnet.github.io/core/
Https://docs.asp.net/en/latest/conceptual-overview/aspnet.html
Https://docs.asp.net/en/latest/conceptual-overview/dotnetcore.html
Https://docs.asp.net/en/latest/dnx/overview.html

Https://github.com/dotnet/coreclr
Https://github.com/dotnet/corefx
Https://github.com/dotnet/core

Http://dotnet.github.io/core/about/overview.html
Http://www.dotnetfoundation.org/netcore

Thanks here: Zhang Shanyu and Dudu, thank them for the way we've been exploring before.

Mode of communication

QQ Group: 384413261 (Rabbithub)

Email: [email protected]

ASP. VNext or. NET vNext?

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.