天天看點

架構-.NET:.NET Core

ylbtech-架構-.NET:.NET Core

.NET Core是适用于 windows、linux 和 macos 作業系統的免費、開源托管的計算機軟體架構,是微軟開發的第一個官方版本,具有跨平台 ( Windows、Mac OSX、 Linux) 能力的應用程式開發架構 (Application Framework),未來也将會支援  FreeBSD 與 Alpine 平台,也是微軟在一開始發展時就開源的軟體平台 ,它經常也會拿來和現有的開源 .NET 平台 Mono 比較。 由于 .NET Core 的開發目标是跨平台的 .NET 平台,是以 .NET Core 會包含 .NET Framework 的類庫,但與 .NET Framework 不同的是 .NET Core 采用包化 (Packages) 的管理方式,應用程式隻需要擷取需要的元件即可,與 .NET Framework 大包式安裝的作法截然不同,同時各包亦有獨立的版本線 (Version line),不再硬性要求應用程式跟随主線版本。 .NET Core 項目的主要目标有 : 支援或可以移轉 (port) 到更多的作業系統平台與晶片架構 (也就是未來項目會跨出 x86 平台)。 具有引人注目的性能與高可靠度。 開發人員能快速與直接的擷取 .NET Core 開發環境。 在直覺與具生産力的情況下建造應用程式,使用檔案,示例與 NuGet 元件。

1.傳回頂部

1、

軟體名稱:.net core 開發商:微軟
軟體平台: Windows、Mac OSX、 Linux 軟體語言:英文 功    能:RyuJIT、Core CLR、Core RT等

目錄

  1. 1 核心功能
  2. 2 包管理
  3. 3 應用程式類型
  4. 4 關系
  5. 5 支援作業系統

2、

2.傳回頂部

1、

核心功能

.NET Core 是由許多項目所組成,除了基本的 類庫(Core FX) 之外,也包含采用 RyuJIT 編譯的運作平台 Core CLR、編譯器平台.NET Compiler Platform、采用 AOT 編譯技術運作最優化的包 Core RT (.NET Core Runtime),以及跨平台的 MSIL 編譯器 LLILC (LLVM-based MSIL Compiler) 等項目。 同時,微軟也發展了一個建置技術檔案的平台docfx, 并運用于 .NET Core 的檔案網站。 RyuJIT RyuJIT 是微軟發展的新式即地編譯器 (Just-in-Time Compiler),用以替換現有的 .NET Framework 的 JIT 以及 JIT64 即地編譯器,依據微軟公布的測試報告,RyuJIT 的性能較前一代的 JIT 提升約 25%,并支援 SIMD(Single Instruction, Multiple Data) 的技術。RyuJIT 同時應用于 .NET Framework 4.6 以及 .NET Core 。 Core CLR Core CLR 移植 .NET Framework 的 CLR 的功能,包含核心程式庫 mscorlib、JIT 編譯器、垃圾收集器 (GC) 以及其他運作 MSIL 所需要的運作期環境。 Core RT Core RT 是以AOT (Ahead-of-time) 編譯方式為主的核心功能,在 .NET Core 内稱為 Core RT,在 UWP 則是稱為 .NET Native。 Core RT 會在建造時期 (非運作期) 在編譯時将 MSIL 轉換成平台本地的機器碼,以擷取較短的引導時間 (JIT 采用的是運作時期編譯,使得引導時間拉長),以及記憶體用量減少的優點。Core RT 會在不同的平台使用不同的 AOT 技術:

  • Windows 上使用的是 .NET Native。
  • Mac OS 與 Linux 上使用的是 LLILC (同時支援 JIT 和 AOT)。

LLILC LLILC (LLVM-based MSILCompiler,英文發音為 "lilac") 是 .NET Core 在非 Windows 平台的 MSIL 編譯器  [5]  ,基于 ECMA-335 (Common Language Infrastructure) 的标準将 MSIL 編譯成原生碼運作,适用于可運作 LLVM 的作業系統,例如 Mac OSX 與 Linux 作業系統。 LLILC 同時支援 JIT (内含 RyuJIT 的實作) 以及 AOT (未來将開始支援) 的編譯方式。 Roslyn .NET Compiler Platform (項目代碼為 Roslyn) 是将 .NET 平台的編譯架構标準化的平台,它可提供程式管理工具 (如內建開發環境) 相當多的情報,用以發展有助于編寫程式與管理程式結構所需要的功能,例如類型資訊、文法結構、參考連結、語義、編譯器、自動化、錯誤回報等等功能,隻要是遵循 CLI 标準的程式設計語言,都可以利用 .NET Compiler Platform 實作出編譯器,讓程式管理工具能實作如文法提示、文法自動完成、關鍵字高亮等可視化能力。 .NET Compiler Platform 可同時支援 .NET Framework 4.6 以上版本,.NET Core 也原生支援。  

包管理

主條目:ASP.NET Core §項目系統 .NET Core 的類庫采用 NuGet 包化的架構,應用程式隻需要使用 project.json 的 dependencies 區塊加入指定包版本的參考,就能獲得該包的功能,與以往 .NET Framework 大包式的提供方法完全不同。.NET Core 團隊宣布己經有 98% 的 .NET Framework 主要類庫移轉到 .NET Core 平台 。 例如下列 project.json 内容,可直接加入 .NET Standard Library (v1.0.0-rc2-23901) 的參考。    

{
    "version": "1.0.0-*",
    "compilationOptions": {
        "emitEntryPoint": true
    },
    "dependencies": {
        "NETStandard.Library": "1.0.0-rc2-23901"
     },
    "frameworks": {
        "netstandardapp1.5": {
            "imports": "dnxcore50"
        }
    }
}      

.NET Standard Library 是一個總括型的 NuGet Package,其内包含了這些類庫包:

  • Microsoft.DotNet.CoreHost
  • NETStandard.Platform
  • System.Collections.Concurrent
  • System.Linq
  • System.Runtime.Numerics
  • System.Text.RegularExpressions

其中的 NETStandard.Platform 也是一個總括型包,包含了下列類庫包:

  • Microsoft.NETCore.Platforms
  • Microsoft.NETCore.Runtime
  • Microsoft.Win32.Primitives
  • System.AppContext
  • System.Collections
  • System.Diagnostics.Debug
  • System.Diagnostics.Tools
  • System.Diagnostics.Tracing
  • System.Globalization
  • System.Globalization.Calendars
  • System.IO
  • System.IO.FileSystem
  • System.IO.FileSystem.Primitives
  • System.Net.Primitives
  • System.Net.Sockets
  • System.Reflection
  • System.Reflection.Extensions
  • System.Reflection.Primitives
  • System.Reflection.TypeExtensions
  • System.Runtime
  • System.Runtime.Extensions
  • System.Runtime.Handles
  • System.Runtime.InteropServices
  • System.Runtime.InteropServices.RuntimeInformation
  • System.Text.Encoding
  • System.Text.Encoding.Extensions
  • System.Threading
  • System.Threading.Tasks
  • System.Threading.Timer

開發人員隻需要使用 NETStandard.Library 就能加入所有必要的 .NET Core 類庫參考,但若不需要這麼多元件,也可以隻加入特定的包即可,不一定都要加入 NETStandard.Library。  

應用程式類型

.NET Core 基于跨平台能力,并沒有将與 GUI 高度相關的 API 移植到 .NET Core 内,是以像是 Windows Forms或是Windows Presentation Foundation(WPF) 并未移植到 .NET Core。.NET Core 支援控制台應用程式 (Console Application) 以及類庫 (Class Library) 類型的項目。 不過微軟在其Universal Windows Platform(UWP) 開發平台使用了 .NET Core ,并且利用 .NET Native 技術将其性能提升至十分接近原生碼的速度。 ASP.NET Core 則以控制台應用程式驅動其托管環境 Kestrel Server 以支援 ASP.NET Core 程式的運作。 .NET CLI .NET CLI (Command-Line Interface) 指令列工具是 .NET Core 處理建造、運作與編輯工作的主要工具  [8]  ,有幾個主要的動作:

指令 幫助
dotnet new 産生新的基本 .NET 項目内容 (包含 project.json、Program.cs 以及 NuGet.config)
dotnet restore 還原所參考的 NuGet 包
dotnet build 建造 .NET 項目
dotnet publish 産生可發行的 .NET 項目 (包含所屬的 Runtime)
dotnet run 編譯與立即運作 .NET 項目 (較适用于 exe 型項目)
dotnet repl 引導互動式的對話
dotnet pack 将項目的産出封裝成 NuGet 包

關系

.NET Core 經常會拿來與其他平台做類比,尤其是它的源頭 .NET Framework 以及另一個相似性質的開源平台 Mono。 .NET Framework 據微軟的幫助,.NET Core 和 .NET Framework 是子集 (Subset) 與超集 (Superset) 的關系,.NET Core 将會實作出部分的 .NET Framework 功能 (基本上是不含使用者界面的部分),例如 JIT (.NET Core 采用 RyuJIT)、垃圾收集器 (GC) 以及類型 (包含基本類型以及泛型類型等) 。未來 .NET Framework 和 .NET Core 也将會是各自發展,但它們也會同時使用彼此的功能,例如 .NET Compiler Platform 與 RyuJIT 等技術。 Mono Mono 是另一個已發展許久的 .NET Framework 跨平台開源版本,基本上并不隸屬微軟官方,而是由社群的力量所主導,自成一個生态系統,也開發出了像 Xamarin這樣的跨平台.NET移動應用,.NET Core 與 Mono 未來會是合作的關系,Mono 仍會維持社群力量的維護與發展,而 .NET Core 則會以官方角度來進行發展,兩邊也會一起進行彼此功能上的增進  。 與 ASP.NET Core 的關系 .NET Core 與 ASP.NET Core 的關系其實一開始并不是主從關系 ,ASP.NET Core 的開發初期 (ASP.NET 5) .NET Core 還沒有開始起跑,是以 ASP.NET Core 當時有自己的運作期與工具,一開始稱為 Project K,後來改為 DNX (.NET Execution Environment),DNX 本身就具有可獨立運作的運作能力,不需要依賴 .NET Core 運作,但是這樣會變成 .NET Core 和 ASP.NET Core 雙頭馬車的現象,在 .NET Core 逐漸成熟之後,微軟也決定要将這兩個各自獨立發展的産品線內建在一起,DNX 也将因改用 .NET Core 運作期而終止開發,DNX 的功能将由 .NET Core 以及旗下的 .NET CLI 接替提供,內建後的版本将在 1.0 RC2 時釋出。  

支援作業系統

.NET Core 的 1.0 版本将支援下列作業系統:

Windows 用戶端 7 SP1~10 x64, x86
Windows 伺服器 R2 SP1~Windows Server 2016 x64, x86 全功能版、Server Core 與 Nano Server (Windows Server 2016 Only)
Debian 8.2 x64
Red Hat Enterprise Linux 7.2 x64
Fedora 23 x64
Ubuntu 14.04 LTS, 16.04 LTS x64
Linux Mint 17 x64
OpenSUSE 13.2 x64
Oracle Linux 7.1 x64
CentOS 7.1 x64
Mac OSX 10.11 (EI Capitan) x64

2、

3.傳回頂部
4.傳回頂部
5.傳回頂部

1、 https://baike.baidu.com/item/.net%20core/20130686 2、  

6.傳回頂部
架構-.NET:.NET Core

作者:ylbtech

出處:http://ylbtech.cnblogs.com/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

轉載于:https://www.cnblogs.com/storebook/p/11127119.html

繼續閱讀