2009-10-20 10 views
8

Official Monoプロジェクトのウェブサイトによれば、MonoはWindows、Linux、Mac OS X上で正常に動作します。
少なくともWindowsとLinuxで動作するアプリケーションを構築したいと思います。モノでも可能ですか?

Monoは本当にクロスプラットフォームですか?

P.S.類似したトピックが既に存在することはわかっています(たとえばCross platform .Net?)が、古くなっている可能性があります。

+5

一般的なルールとして、プラットフォームに依存しないと思われるものは、悪くないほど*良くなるでしょう。古い情報が見つかったとしても、それでも* atleast *が良いと仮定できるはずですその情報はそれがそうであると言います。 –

+1

このリンクを参照してください..同様のトピックのいくつかの興味深い議論.. http://stackoverflow.com/questions/751648/whats-the-point-of-mono-on-windows .. – RameshVel

+1

我々は、私たちの製品... – pablo

答えて

9

はい可能です。

一般的にはうまくいきますが、Monoには大規模/中規模のアプリケーションはありません。 several other appsがあり、ブラウズスルーが必要な場合があります。

Monoは実物のサブセット(.NET)であり、最高の互換性を維持するために、Monoでサポートされているプラ​​ットフォーム(Linuxなど)で開発しなければならないかもしれません。 .NET上で動作することを確認します。私はこのことを言っています.Netとの互換性は高いですが、Monoは多くの人が考える通りではありません。は.NETスタック全体と互換性があり、other limitationsもあります。

私はそれについて開発を行い、それらのいくつかに遭遇しました。私はあなたのプロジェクトが私と同じくらい多くの.NET依存関係を持たないことを願っています。

+0

はい、モノを使用して書かれた重大なアプリケーションがあります。 GNOMEデスクトップで手に入るプログラムの多くは、Monoを使って書かれています。 – Jesper

+1

Monodevelop(IDE)はかなり大きく、Windows、Mac、Linux上で動作します。そして、わかっているように、彼らはBanshee(Media Player)をWindows上で動かすことに取り組んでいます。 – sgwill

+0

Second Lifeスクリプト言語やWikipedia検索の実装は、大規模アプリケーションではどうですか?はい、彼らはMonoで動作します。 – skolima

3

確かです。 Monoは3つのプラットフォームすべてで動作しますが、 "アプリケーションの構築"と言えば、すべての.net名前空間がMonoに移植されているわけではないことに注意する必要があります。彼らは、 "ウェブビット"を移植することに重点を置いてきたので、クロスプラットフォームで動作するWebアプリケーションを書くのはあまり問題にならないはずですが、クライアントアプリケーションを書く場合は、 Linux用のSilverlight実装である月光プロジェクトを出す。

+1

私はOPがSilverlight/Moonlight/Webアプリケーションについて話しているのかどうかは分かりませんが、デスクトップアプリケーションについてはわかりません。デスクトップアプリケーションは、クロスプラットフォームを簡単に行う必要があります。 「アプリケーションの構築」は必ずしもSilverlight/Moonlight/WPFを意味するのではなく、古典的なFormsでもかまいません。 –

+2

申し訳ありませんが、Silverlightはクライアントアプリケーションと何が関係していますか?私はこれがFlash-Cloneの何人かと思った?また、System.Windows.Forms名前空間は完全に移植されており、長い間、GTK#Bindingsもあります。 – Bobby

+0

私が完全に同意したことは、WPFアプリケーションがLinux上で動作することを期待できず、フォームスペース内でも、Win32APIバインディングとLinux上のGDK#バインディングの間にいくつかの違いがあることです一方、これらの問題はWebアプリケーションにはあまり存在しない傾向があります。 – lomaxx

2

私はまだモノではあまりやっていませんが、本当にうまく動作します。私はあなたがLinuxで開発することをお勧めします。そうすれば、Windows上でも(ハードコーディングパスなどのような愚かなことをしない限り)確実に動作することができます。

+0

多少行っていませんが、実行した非常にわずかなことで本当にうまく機能しますか?それはどのように役立つのですか? –

+1

私はメガプロジェクトを開発していませんが、モノで即座に "家"を感じたことを示しています。私は "私はそれを見たことがないが、はい、それは100%互換性がある"のような何も言わなかった - それほど多くない場合は、少なくとも私の返信に価値があります。 –

1

これはクロスプラットフォームであり、Windowsでの開発とMonoで実装されていない.NETライブラリの使用を間違えないでください。たとえば、Monoは.NETの場合でもWebPartsをサポートしていません。

0

はい。

もちろん、それはあなたが開発しているもの、それをどのように開発してテストするかによって異なります。それは明白かもしれませんが、サポートする必要のある各プラットフォームでマルチプラットフォームアプリケーションをテストする必要があります。

FWIW MonoまたはMicrosoft.NETを互換性をもってLinuxおよびWindows上で動作するNAntベースのSubversion管理ツールを作成しました。主にWindows上で使用していますが、Linuxでも同様に動作します。

いつもEnvironment.NewLinePath.Combineを使用しているように細かい部分にもっと注意を払う必要がありますが、それは良いことです!

1

Monoは、WindowsとLinuxで動作するWinFormsアプリケーションを作成するのに非常に適しています。あなたが好きな場合はGTKを使うこともできます(WindowsではWinForm UIの外観が少し良くなりますが、GTKインターフェイスはLinux上では少し上手く見えますが、アプリによっては違いを知ることはほとんどありません)。

Webサービスの実装も優れており(実際にはIISのMicrosoftの実装よりも優れています)、Windows、Linux、Mac OSの両方でクロスプラットフォームで動作します。

しかし、これが下りたい道路であれば、Monoを念頭に置いてプロジェクトを構築する必要があります。 Visual Studioで作成された.NETプロジェクトは、すべての.NETライブラリが実装されているわけではないため、おそらく重要な変更なしにMonoで実行されない可能性があります(Mono固有のライブラリを呼び出さないと仮定した場合、 Mono。*名前空間にいるときと同じことをするときは明らかです。)

MonoコマンドラインアプリケーションはMac OSでもうまく動作しますが、Mac OSでのWinForms実装は制限されていますので、Mac OSを考慮すると、XcodeでネイティブGUIを作成してC#バックエンド(WindowsやLinuxと異なり)MonoのMac OSでのWinFormsの実装は、プロダクション品質ではありません。

Visual Studioでクロスプラットフォーム(Win/Linux/Mac OS)アプリケーションを作成する場合は、Delphi Prismをチェックアウトすることを強くお勧めします。他のオプション(MonoDevelop IDE、Eclipse、TextMate)がありますが、フリーではありませんが、グリップを取得するのは簡単です。

注:名前が示唆するものとは逆にDelphi Prismは、Delphiを使用するだけでなく、C#でMonoアプリケーションを記述することができます。また、Mac OSのGUIへのMonoアプリケーションの配線も簡単になりますが、Mac OSへの移植にはかなりの労力が必要です(ただし、ObjCへの移植ほどではありません)。

最後に、これはあなたが尋ねたものではなく、あなたに興味があるかもしれません:REALBasicのようなものを使ってGUIを作成し、バックグラウンドでMonoでバンドルされたアプリケーションを起動することも考えられますあなたが作業しているアプリ、RBでBasicを使用して胃ができない場合)。

0

一種ですが、それほど多くはありません。モノプロジェクトサイトによると、 "その他の" Linuxプラットフォームは "サポートされていません" http://www.mono-project.com/Other_Downloadsです。

JavaScriptとHTML5は、他のどのプラットフォームよりもクロスプラットフォームです。はい、JavaScriptを使用してゲーム(Unity3D)とWebサーバーアプリケーション(Node.js)とモバイルアプリケーション(Appcelerator、その他)を開発することができます

私の最高のアドバイスは、銀色の弾丸を探してください。あなたがそれを見つけたら、それは別のものになるでしょう。

関連する問題