.net core is a free, open source hosted computer software framework for Windows, Linux and macOS. It is the first official version of an application development framework developed by Microsoft with cross-platform capabilities.
Recommended: "Programming Video"
.net core
.NET Core is a free, open source hosted computer software framework for Windows, Linux and macOS. It is the first official version developed by Microsoft and has cross-platform capabilities. ), will also support FreeBSD and Alpine platforms in the future. It is also an open source software platform that Microsoft started developing at the beginning. It is often compared with the existing open source .NET platform Mono.
Since the development goal of .NET Core is the cross-platform .NET platform, .NET Core will include the class library of the .NET Framework. However, unlike the .NET Framework, .NET Core adopts packages. ) management method, the application only needs to obtain the required components, which is completely different from the .NET Framework packaged installation method. At the same time, each package also has an independent version line (Version line), and the application is no longer required to follow the main line. Version.
The main goals of the .NET Core project are:
Support or can be ported to more operating system platforms and chip architectures (that is, future projects will cross the x86 platform).
With compelling performance and high reliability.
Developers can quickly and directly obtain the .NET Core development environment.
Build applications intuitively and productively using files, samples, and NuGet components.
Core Function
.NET Core is composed of many projects. In addition to the basic class library (Core FX), it also includes a running platform compiled with RyuJIT Projects such as Core CLR, compiler platform .NET Compiler Platform, Core RT (.NET Core Runtime), a package optimized to run using AOT compilation technology, and cross-platform MSIL compiler LLILC (LLVM-based MSIL Compiler).
At the same time, Microsoft has also developed a platform for building technical documents, docfx, [3] and applied it to the .NET Core document website.
RyuJIT
RyuJIT is a new just-in-time compiler developed by Microsoft to replace the existing .NET Framework JIT and JIT64 just-in-time compiler. According to a test report published by Microsoft, the performance of RyuJIT is about 25% higher than that of the previous generation JIT, and it supports SIMD (Single Instruction, Multiple Data) technology. RyuJIT is used in both .NET Framework 4.6 and .NET Core [4] .
Core CLR
Core CLR transplants the functions of the .NET Framework's CLR, including the core library mscorlib, JIT compiler, garbage collector (GC) and other runtimes required to run MSIL environment.
Core RT
Core RT is a core function based on AOT (Ahead-of-time) compilation method. It is called Core RT in .NET Core and UWP. .NET Native.
Core RT will convert MSIL into platform-native machine code during compilation during the build period (non-runtime) to obtain a shorter boot time (JIT uses runtime compilation, which shortens the boot time) long), as well as the advantage of reduced memory usage. Core RT will use different AOT technologies on different platforms:
Windows uses .NET Native.
LLILC is used on macOS and Linux (supports both JIT and AOT).
LLILC
LLILC (LLVM-based MSILCompiler, pronounced "lilac" in English) is .NET Core's MSIL compiler for non-Windows platforms [5], based on The ECMA-335 (Common Language Infrastructure) standard compiles MSIL into native code and is suitable for operating systems that can run LLVM, such as macOS and Linux operating systems.
LLILC supports both JIT (including the implementation of RyuJIT) and AOT (will be supported in the future) compilation methods.
Roslyn
.NET Compiler Platform (project code: Roslyn) is a platform that standardizes the compilation architecture of the .NET platform. It can provide quite a few program management tools (such as integrated development environments) Intelligence, used to develop functions needed to help write programs and manage program structure, such as type information, syntax structures, reference links, semantics, compilers, automation, error reporting, etc., as long as it is a programming language that follows the CLI standard , you can use the .NET Compiler Platform to implement a compiler, allowing program management tools to implement visualization capabilities such as syntax prompts, syntax auto-completion, and keyword highlighting.
.NET Compiler Platform can support .NET Framework 4.6 and above at the same time, and .NET Core also supports it natively.
The above is the detailed content of What is .net core. For more information, please follow other related articles on the PHP Chinese website!