C# .NET及Mono跨平臺實現原理解析
阿新 • • 發佈:2020-05-21
一、.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中編譯成平臺原生代碼。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。