2012-10-27 24 views
1

我正在使用WPF。我剛剛發現了這個MONO項目,所以我對MONO很新鮮。我想知道在單聲道上編寫的程序如同快速 & 高效與在.net framework 4.0上編寫的程序一樣。它是否使用像編譯一樣的JIT?如果不是,那麼還有任何研究正在進行。在MONO中編寫的程序效率與.net框架上的程序效率相當

+0

是否會滿足開發.NET的目的。 對不起,如果我問初學者的問題。 – deathrace

+0

單聲道有兩個具有不同性能特徵的JIT後端。如果你想要更快的代碼,你需要LLVM後端。 – CodesInChaos

+0

什麼是LLVM後端? – deathrace

回答

5

軟件編寫一般會在Mono具有類似性能運行(它確實實現虛擬機和JIT編譯器就像.NET一樣),如果你只即在單聲道還實施,並在其中使用的組件就是問題所在:

Mono does not implement WPF!

一般來說,你會看到,單缺少了很多新的任何支持喜歡WPF,WCF和EntityFramework等微軟API。此外,如果您只想爲Windows開發,則.NET框架即將推出,它更加精緻,專門針對Windows設計。如果您是一位拼命想爲Mac OS或Linux開發的C#/ VB開發人員,那麼值得關注Mono - 否則您可以放心地忽略它。

Mono API Compatibility

+1

WCF部分受支持,Microsoft開源EntityFramework也如此Mono也有這個功能(http://tirania.org/blog/archive/2012/Aug-13.html)。 –

+0

雖然WCF支持非常非常糟糕。只有HTTP,而不是所有類型,當我使用它。 EntityFramework是相對較新的版本,現在只能在SVN副本上使用,因此不適合生產使用。 – Gant

1

Mono使用自己的JIT,虛擬機等實現。使用Mono的主要原因是如果您想開發或移植一個託管的程序到Linux或OS X。如果您正在開發Windows,請使用Visual Studio和.net框架。 Mono不太可能會更快,但可能會變得更加緩慢,特別是對於GUI設計。

使用MS .net的另一個原因是它已經被很多人編寫.Net程序測試過,所以你應該在平臺上減少麻煩。

我在這裏推測了一下,但可能是在Mono中開發的唯一理由是如果您想將程序或程序移植到Linux或OS X中。最有可能您仍然需要做一些工作,但這是一個開始。儘管如此,我還是會考慮將.net代碼移植到Java上,因爲Java在其他操作系統上有更好的支持,並且有些工具和公司可以進行這種轉換。

退房這個問題還有:

Differences in development between .NET and Mono