- ASP.NET Core項(xiàng)目開發(fā)實(shí)戰(zhàn)入門
- 張劍橋編著
- 1423字
- 2020-09-25 13:00:55
第2章 .NET Core
2.1 .NET Core特性
.NET Core具有以下特性:
●跨平臺:可以在Windows、macOS和Linux系統(tǒng)上運(yùn)行。
●跨體系結(jié)構(gòu)保持一致:在多個體系結(jié)構(gòu)(包括x64、x86和ARM)上以相同的方式運(yùn)行代碼。
●命令行工具:包括可用于本地開發(fā)和持續(xù)集成方案中的易于使用的命令行工具。
●部署靈活:可以包含在應(yīng)用或已安裝的并行用戶或計(jì)算機(jī)程序中。可搭配Docker容器使用。
●兼容性:.NET Core通過.NET Standard與.NET Framework、Xamarin和Mono兼容。
●開放源代碼:.NET Core平臺是開放源代碼的,使用MIT和Apache 2許可證。.NET Core是一個.NET Foundation項(xiàng)目。
●由Microsoft支持。
1.語言
可以使用C#、Visual Basic和F#語言編寫適用于.NET Core的應(yīng)用程序和庫。這些語言已集成或可以集成到文本編輯器和IDE中,如Visual Studio、Visual Studio Code、Sublime Text和Vi m。
2.API
.NET Core公開了多種方案的API,常見的有以下幾種:
●基元類型,例如bool和int。
●集合,例如System.Collections.Generic.List<T>和System.Collections.Generic.Dictionary<TKey,TValue>。
●實(shí)用程序類型,例如System.Net.Http.HttpClient和System.IO.FileStream。
●數(shù)據(jù)類型,例如System.Data.DataSet和DbSet。
●高性能類型,例如System.Numerics.Vector和Pipelines。
.NET Core通過實(shí)現(xiàn).NET Standard規(guī)范提供對.NET Framework和Mono API的兼容性。
3.框架
在.NET Core之上建立了多個框架:
●ASP.NET Core.
●Windows 10通用的Windows平臺(UWP)。
●Tizen.
4.結(jié)構(gòu)
.NET Core包括以下幾部分。
●.NET Core運(yùn)行時:提供類型系統(tǒng)、程序集加載、垃圾回收器、本機(jī)互操作和其他基本服務(wù)。.NET Core框架庫提供基元類型、應(yīng)用編寫類型和基本實(shí)用程序。
●ASP.NET運(yùn)行時:提供框架以生成基于新式云的Internet連接的應(yīng)用程序,例如Web應(yīng)用、IoT應(yīng)用及移動后端。
●.NET Core CLI工具和語言編譯器(Roslyn和F#):提供.NET Core開發(fā)人員體驗(yàn)。
●dotnet工具:用于啟動.NET Core應(yīng)用和CLI工具。它選擇運(yùn)行時并托管運(yùn)行時,提供程序集加載策略并啟動應(yīng)用和工具。
這些組件按以下方式分布:
●.NET Core運(yùn)行時,包括.NET Core運(yùn)行時和框架庫。
●ASP.NET Core運(yùn)行時,包括ASP.NET Core和.NET Core運(yùn)行時及框架庫。
●.NET Core SDK,包括.NET CLI工具、ASP.NET Core運(yùn)行時,以及.NET Core運(yùn)行時和框架。
5.開源
.NET Core是開源的(MIT許可證),由Microsoft于2014年提供給.NET Foundation。目前它是最活躍的.NET Foundation項(xiàng)目之一,可由個人和企業(yè)自由采用,包括用于個人、學(xué)術(shù)或商業(yè)目的。許多公司已使用.NET Core作為應(yīng)用、工具、新平臺和托管服務(wù)的一部分。其中某些公司對GitHub上的.NET Core做出了巨大貢獻(xiàn),并已成為.NET Foundation Technical Steering Group(.NET Foundation技術(shù)控制組)的成員,指導(dǎo)產(chǎn)品方向。
6.針對適應(yīng)性而設(shè)計(jì)
與其他.NET產(chǎn)品相比,生成的.NET Core與它們十分類似,但具有唯一性,其目的是能夠廣泛適應(yīng)新的平臺和工作負(fù)載。它提供多個OS和CPU端口,并可以移植到更多端口。
該產(chǎn)品分為幾個部件,各個部件能夠在不同的時間適應(yīng)新的平臺。必須將運(yùn)行時和特定于平臺的基礎(chǔ)庫作為一個單元進(jìn)行移植。與平臺無關(guān)的庫應(yīng)在所有平臺上按照構(gòu)建的原樣運(yùn)行。對于通過減少特定于平臺的實(shí)現(xiàn)以提高開發(fā)人員效率方面,項(xiàng)目存在偏差,但每當(dāng)可以以此方式全部或部分實(shí)現(xiàn)算法或API時,都應(yīng)首選與平臺無關(guān)的C#代碼。
人們經(jīng)常會問,為支持多個操作系統(tǒng)應(yīng)如何實(shí)現(xiàn).NET Core?他們還會問是否存在單獨(dú)的實(shí)現(xiàn),或是否使用conditional compilation(條件編譯)。這兩者都在用,但強(qiáng)烈偏向條件編譯。
大多數(shù)CoreFX代碼都是與平臺無關(guān)的代碼,這些代碼可在所有平臺共享,如圖2-1所示。不限平臺的代碼可實(shí)現(xiàn)為在所有平臺上使用的單個可移植程序集。

圖2-1
Windows和UNIX的實(shí)現(xiàn)相似。Windows具有較大的實(shí)現(xiàn),因?yàn)镃oreFX實(shí)現(xiàn)了某些僅適用Windows的功能,如Microsoft.Win32.Registry,但尚未實(shí)現(xiàn)多個僅適用UNIX的功能。大多數(shù)Linux和macOS實(shí)現(xiàn)都是在UNIX實(shí)現(xiàn)中實(shí)現(xiàn)的,而特定于Linux和macOS的實(shí)現(xiàn)大致相同。
.NET Core中存在特定于平臺和與平臺無關(guān)的庫:
●CoreCLR是特定于平臺的。它建立在內(nèi)存管理器和線程計(jì)劃程序等操作系統(tǒng)子系統(tǒng)的基礎(chǔ)上。
●考慮到每個OS上的存儲和加密API都有所不同,System.IO和System.Security.Cryptography.Algorithms是特定于平臺的。
●考慮到它們通過數(shù)據(jù)結(jié)構(gòu)創(chuàng)建和操作,System.Collections和System.Linq是與平臺無關(guān)的。
- CSS3網(wǎng)頁設(shè)計(jì)從入門到精通(微課精編版)
- 混合云架構(gòu)
- 云計(jì)算基礎(chǔ)教程(第2版)
- 網(wǎng)絡(luò)基礎(chǔ)
- 網(wǎng)絡(luò)設(shè)備配置與管理
- 劍指Vue3:從入門到實(shí)踐
- 掌控你的工作!:巧用Outlook極速提升工作效率
- 全球網(wǎng)絡(luò)空間治理體系與中國方案
- Dreamweaver+ASP動態(tài)網(wǎng)頁設(shè)計(jì)從新手到高手
- 網(wǎng)站說服力
- Bootstrap響應(yīng)式Web前端開發(fā)
- Mastering SaltStack
- 網(wǎng)頁制作案例教程(第2版)
- Axure RP 8.0中文版原型設(shè)計(jì)從入門到精通
- 廣州亞運(yùn)會亞殘運(yùn)會信息技術(shù)及通信系統(tǒng)建設(shè)與運(yùn)行