2012-02-26 55 views
4
.NET應用程序

我需要開發C#應用程序,但我使用Linux(Ubuntu的),我發現MonoDevelop的,但我不明白,如果我能在Linux編寫.NET應用程序在Windows上使用,所以Linux上的開發和Windows上的執行。它們是兼​​容的嗎?MonoDevelop的Linux上

在單聲道的網站,我發現:

Mono是一個軟件平臺,旨在讓開發人員輕鬆創建 跨平臺的應用程序。

這是什麼意思?我可以在Linux上編寫可以在.NET框架安裝位置運行的c#應用程序嗎?

謝謝你的澄清

回答

6

您從MonoDevelop或其他任何位置編譯的任何C#代碼都可以在具有Mono或.NET Framework的任何平臺上運行。只要linux系統安裝了Mono,它就可以運行任何已編譯的C#應用​​程序,包括從Windows機器上覆制的.exe文件。

這樣做的原因是,當你編譯一個C#應用程序,它沒有被編譯爲本地系統的代碼,它被編譯成CIL。當你運行該程序時,它會自動JIT編譯你的代碼,使它運行的系統完好無損。 Windows上的.NET Framework和其他一切的Mono都可以讀取和編譯CIL字節碼。

有一點需要記住,Mono沒有提供整個.NET Framework堆棧。幾乎所有的BCL都是完整的,但像Mono這樣的類似WPF的圖書館是不可用的。 Mono建議您使用GTK#作爲您的GUI。

4

是的,你可以使用單創建可以在Linux,Windows和Mac電腦上運行.NET應用程序。

Mono is

它是基於ECMA標準的C#和公共語言運行庫的開源實現微軟.NET框架。

這意味着只要您不編寫特定於平臺的代碼,就可以在.NET可以運行的所有平臺上運行它。 (所以,而是採用\/您使用的Path.Combine,而是硬編碼換行作爲\n串聯路徑的使用Environment.NewLine和這樣)。

0

你可以只要你小心,不要假設有關,如文件系統佈局和利用圖書館的事情是可以移植的東西。特別是圖形界面是有問題的:Windows.Forms在Linux上看起來很陌生,而且Gtk在Windows上可能感覺不太合適。

+0

嗯,所以如果我使用Gtk並創建.exe文件,我將有問題移植到Windows? – Dail 2012-02-26 22:35:58

+0

Gtk#被移植到Windows,因此您不會遇到問題,但在100%的情況下,組件的行爲不像本機Windows組件。這是否是一個問題取決於用戶界面的複雜性和用戶的期望。 – Joni 2012-02-26 22:42:33

+0

你說的外觀和感覺正確嗎? – Dail 2012-02-26 22:45:50

相關問題