位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# 跨平臺基礎知識以及必知的關鍵術語

提問人:劉團圓發(fā)布時間:2020-12-09

    跨平臺程序就是可運行在多個操作系統(tǒng)上的程序,這里的操作系統(tǒng)可以是Microsoft Windows、Android、macOS和Linux等。創(chuàng)建跨平臺程序的目標是,只編寫程序一次,然后在支持的操作系統(tǒng)上編譯,部署該程序后,代碼在每個目標操作系統(tǒng)上以相同的方式執(zhí)行,并表現(xiàn)出一致的行為。在過去,即使使用了開源庫(如Mono或Java)也很難實現(xiàn)這個目標,而且如前所述,如果使用完整的.NETFrameworic,并不能真正地創(chuàng)建跨平臺的程序。面臨的許多復雜問題源于跨平臺代碼在使用操作系統(tǒng)服務(如磁盤I/O、安全協(xié)議和網(wǎng)絡訪問)時,對不同操作系統(tǒng)的服務之間存在的細微差別進行處理的方式。

    隨著程序員開始將更多注意力放在編寫能夠輕松跨平臺運行的C#代碼上,考慮這些為數(shù)眾多的“必知”概念和術語,有助于打下堅實基礎。下表列舉并描述了這些關鍵術語。

關鍵術語

描述

硬件平臺

x86、64位、Itanium、ARM 

軟件平臺

操作系統(tǒng):Windows、LinuxAndroid、macOSiOS 

跨平臺

編寫代碼一次,當針對目標平臺編譯代碼后,就能在任何支持的硬件和軟件平臺上運行代碼

生態(tài)系統(tǒng)

社區(qū)資源、開發(fā)工具和運行時軟件的總稱

堆找(stack)

在一起使用的硬件、軟件和生態(tài)系統(tǒng),用來構建和運行程序,如Windows堆棧、Linux堆找等

API

應用程序編程接口(Application Programming Interface, API)公開了類、委托、枚舉、接口和結構,供其他 程序使用

程序集

—個.dll文件,公開了 API,供其他程序集或可執(zhí)行文件使用

標準

API的正式規(guī)范或協(xié)定

關鍵術語

描述

垂直模型(Verticals)

Windows Forms、ASP.NETWPF、UWP等:常稱為應用程序模型

框架/庫

API的豐富集合,用于創(chuàng)建專注于特定垂直模型的程序,以程序集的形式出現(xiàn)

開源

由軟件開發(fā)人員的開放社區(qū)編寫和支持的框架和代碼庫??筛鶕?jù)特定開源庫的許可使用對應的庫

GitHub

一個在線的開源代碼存儲庫,用于分享和更新公共可用的和社區(qū)支持的代碼,以及創(chuàng)建這種代碼的分支

分支(forking)

也稱為branch,但暗含著開發(fā)社區(qū)的一種分歧。分支就是用現(xiàn)有的源代碼存儲庫的副本,進行新的獨立

開發(fā)。例如,.NET Core就是.NET Framework的一個分支

版本

框架的每個版本包含新的或改進的API,還可能包含對bug的修復

語義版本

此概念采用以下格式來描述修改的規(guī)模和類型:[MAJOR].[MINOR].[PATCH]8如果MAJOR數(shù)字發(fā)生變 化,則該版本的影響比MINOR發(fā)生變化時更大

目標框架

程序依賴的 API 集合,如 dotnet-sdk-2.0.4-winl0-x64

TFM

目標框架名對象(Target Framework Moniker? TFM)是目標框架的精簡版本,如netstandard2.0netcoreapp2.0。TFM常用于讓程序面向特定的框架版本

依賴

編譯程序或完成某個任務必須用到的一組特定程序集

元數(shù)據(jù)

提供了關于其他數(shù)據(jù)的信息的數(shù)據(jù),如創(chuàng)建日期、創(chuàng)建者和文件大小

—組程序集和元數(shù)據(jù)

元包

—組相互依賴的包,但沒有自己的庫或程序集

NuGet

—個用于.NET的包管理器,可幫助開發(fā)人員創(chuàng)建和使用包

BCL

基類庫(Base Class Library, BCL)是常用類、接口和值類型的一個集合。例如,System.*指令中的類、接口、方法和值類型

PCL

可移植類庫(Portable Class Library, PCL)是一個類庫,不必重新編譯就可以運行在多個.NET垂直模型中

運行庫

公共語言運行庫(Common Language Runtime,CLR)。CLR管理內(nèi)存分配(垃圾回收)、編譯和執(zhí)行

CoreCLR

CLR相同,但可跨平臺運行。這是.NET Core的公共語言運行庫引擎

CoreFX

.NET Core System.*名稱空間,嚴重依賴于運行庫

CoreRT

類似于CoreCLR運行庫,但沒有JIT編譯器。程序將預先編譯(參見.NET Native),在這個過程中,將移除所有多余的代碼和元數(shù)據(jù)

.NET Native

創(chuàng)建的本機代碼將被預先編譯,常用于UWP開發(fā)


繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部