1. 程式人生 > 程式設計 >C# .NET及Mono跨平臺實現原理解析

C# .NET及Mono跨平臺實現原理解析

一、.NET是什麼

.NET是微軟搭建的開發者平臺,主要包括:

1.支援(面向)該平臺的程式語言(如C#、Visual Basic、C++/CLI、F#、IronPython、IronRuby...),

2.用於該平臺下開發人員的技術框架體系(.NET Framework、.NET Core、Mono、UWP等),

  • 1.定義了通用型別系統,龐大的CTS體系
  • 2.用於支撐.NET下的語言執行時的環境:CLR
  • 3..NET體系技術的框架庫FCL
  • 3.用於支援開發人員開發的軟體工具(即SDK,如VS2017、VS Code等)

二、Mono是什麼

微軟的.NET框架本身只能在windows上執行,對於跨平臺的需求,Mono就產生了。

  • Mono是.NET的一個開源跨平臺工具,可以實現跨平臺執行。
  • Mono作為.NET框架在不同平臺上的重要補充,Mono也被Unity所引用。

三、Unity是如何實現跨平臺的

因為Unity使用了叫CIL(通用中間語言)的程式碼指令集。CIL可以在任何支援CLI(通用語言基礎結構)的環境中執行。

Unity程式碼的編譯分為兩部分:

  • 從程式碼到CIL的編譯
  • 執行時從CIL到本地指令的即時編譯(不包括IOS,因為IOS無法使用JIT引擎)

Unity打包時會將mono一同打包進來,同時Unity將指令碼編譯為CIL程式碼打包,這樣只要是Mono支援的平臺,都可以在Mono中編譯成平臺原生代碼。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。