2008-09-29 102 views
3

我目前正在用C#開發一個桌面應用程序,在SuSE和Windows中使用mono和測試。這個概念並沒有多大意義,但它是一個「Web lint」程序,它將掃描一個網站並返回安全性和/或跨瀏覽器兼容性的可能問題。不過,我希望能夠爲多個平臺提供二進制文件。我應該和Mono呆在一起,還是有另一個平臺可以提供更好的平臺可用性,例如在Mac,Windows,Linux和其他平臺(可能是移動平臺)上,並且使其更容易移植?多平臺開發

回答

2

對於大多數桌面環境來說,C#和Mono可能是跨平臺的。訣竅將是「移動平臺」的要求。

移動操作系統是多種多樣的,並且你可以做很多事情來推廣。有些人擁有Java,就像黑莓手機一樣。 C#可能會讓你進入基於Windows Mobile的平臺。 iPhone會做自己的事情。你幾乎不得不選擇一個平臺並將其作爲目標。這可能最終會通知您的桌面平臺選擇。

1

Java將在Windows,Linux和Mac上運行。應該很容易從C#轉換 - 使用Apache HTTPClient抓取正在掃描的Web內容,並且掃描代碼應該差不多一樣。但缺點是要求用戶安裝Java運行時。

Python是另一種選擇 - 您可以爲Windows構建獨立的可執行文件,默認情況下,它隨大多數Linux發行版一起提供,還提供Mac OS X(需要引用)。這對於Windows用戶來說很少麻煩(語言被編譯到可執行文件中,不需要其他下載)。

如果mono在Mac OS X上運行,那麼肯定這是一個很好的平臺?

3

那麼,你最好的選擇總是使用一種實際存在於所有平臺上的語言。我認爲這通常意味着Java,但即使perl也適用於移動平臺(取決於所討論的移動平臺)。我在C和Perl中完成了大部分的跨平臺工作,但是有一些令人頭疼的問題(很多#ifdef),而且perl可能不在你關心的移動平臺上(但是)。您必須評估所有想要定位的平臺所共有的語言/編譯器/解釋器,然後從該列表中進行選擇。在不瞭解這些平臺的完整列表的情況下,我們很難告訴你要使用什麼,儘管Java有足夠的熱門詞彙可能成爲強有力的候選者。

0

這真的取決於你想要做什麼。對於Web開發,如果HTML/JavaScript足夠,那就堅持下去。如果你需要更高級的東西,我會使用ASP.NET和Mono(你可能做了什麼),因爲你已經知道了。 (您可以在這裏使用Visual Studio。)

另一種選擇可能是(因爲您是C#開發人員)使用Silverlight。這會讓你覆蓋Windows和Mac平臺,並希望Moonlight稍後將涵蓋Linxu平臺。 (您可以在這裏使用Visual Studio和Expression Blend。)

如果您需要桌面應用程序,那麼Java可能是最簡單的,因爲您已經知道C#。但是,如果您知道C/C++,請嘗試以wxWidgets爲例。

3

如果你知道C++,Qt將覆蓋很多平臺。

2

只要堅持單聲道,確保你有憲兵代碼檢查員(FxCop for Mono)檢查你的代碼的可移植性問題,你應該沒問題。

0

爲什麼限制自己到傳統的C#/ Java?看看Adobe AIR和Microsoft SilverLight