請問mono unity Xamarin 這三者之間是什麼關係?

1.請問mono unity Xamarin 這三者之間是什麼關係?2.聽說mono可以將.NET的程序移植到android和IOS,現在mono是否可以應用.NET所有的類,做出在WINDOWS平台一樣的產品?


謝邀。

1、Mono:

.net是微軟出的標準。如果站在Mono的角度來說,這套標準能規定編譯器產生一些符合一定條件的文件出來,這些中間文件最後在目標平台上被解析成跟機器相關的東西。問題是,開始只有Windows上才能運行.net標準的代碼。因為其他如Linux之類的機器上沒有相應的基礎庫和相關的執行文件來解析這種標準下的東西。所以,就產生了Mono。Mono的目標是在儘可能多的平台上使.net標準的東西能正常運行的一套工具,叫framework也好,叫庫也好,核心在於「跨平台的讓.net代碼能運行起來「。

目前來說,Mono支持這麼多的平台:

Operating Systems

  • Linux
  • Mac OS X, iPhone OS
  • Sun Solaris
  • BSD - OpenBSD, FreeBSD, NetBSD
  • Microsoft Windows
  • Nintendo Wii
  • Sony PlayStation 3

支持這麼多的語言:

  • 1.1 C#
  • 1.2 F#
  • 1.3 Java
  • 1.4 Scala
  • 1.5 Boo
  • 1.6 Nemerle
  • 1.7 Visual Basic.NET
  • 1.8 Python
  • 1.9 JavaScript
  • 1.10 Oberon
  • 1.11 PHP
  • 1.12 Object Pascal
  • 1.13 LUA
  • 1.14 Cobra
  • 1.15 Other languages

看到上面的Boo和C#和JavaScript了,就是Unity目前選用的三種語言。

其他參考:

Mono Project (由Novell公司主持)_中文C#技術站

2、Unity:

這是一個3D引擎,用來給行業(遊戲、教育、模擬等需要大量使用三維數字表現的地方)快速的製作互動式的3D數字產品(主要是3d遊戲)的工具。在用到編程的地方,Unity採用C#、JavaScript(官方可能叫UnityScript)、Boo,這些語言的編譯支持需要上面的Mono的支持。Unity默認的開發IDE,也是Mono提供的MonoDevelop。Unity的跨平台能力,主要是架構在Mono這個基礎上。

3、Xamarin

跟Mono有千絲萬縷的關係,Mono現在就應該是它贊助的。跟Mono之間的關係在我了解的資料上,是「Mono是開源的,商業化的Mono就是Xamarin」,但是這句話可能不對,僅供參考。


就像.net/XNA/Universal Apps的關係一樣,分別是framework+開發工具,遊戲引擎,還有跨平台的一套庫給你開發程序用


補一個, 目前 Unity3D 4.5 內置 mono 版本基本還只能確保覆蓋 .net 2.0 API


推薦閱讀:

初學者學編程,是看項目源碼學習,還是看著書一步步敲代碼見效?
詳細介紹一下python和matplotlib,ipython的安裝使用方法?
Python for 循環中 in 關鍵字含義是什麼?
如何學習遞歸呢?
有沒有程序或代碼可以直接破壞計算機的硬體?

TAG:編程語言 | 編程 | NET | Unity遊戲引擎 | Mono |