2012-02-26 6 views
4

私はC#アプリケーションを開発する必要がありますが、私はLinux(ubuntu)を使用していますが、MonoDevelopを見つけましたが、Linuxで.NETアプリケーションを書くことができますか? Linux上での開発とWindows上での実行。それらは互換性がありますか?モノのウェブサイトにMonoDevelop for Linux on application on

私が見つかりました:

モノは、開発者が簡単に クロスプラットフォームアプリケーションを作成できるように設計されたソフトウェアプラットフォームです。

これはどういう意味ですか? .NETフレームワークがインストールされている場所で実行できるLinuxのC#アプリケーションで記述できますか?

は、Linux、WindowsとMac上で実行されます.NETアプリケーションを作成するために、モノを使用することができ、明確

答えて

6

MonoDevelopなどからコンパイルしたC#コードは、Monoまたは.NET Frameworkのいずれのプラットフォームでも実行できます。 LinuxシステムにMonoがインストールされている限り、Windowsマシンからコピーされた.exeを含む、コンパイルされたC#アプリケーションを実行できます。

これは、C#アプリケーションをコンパイルするときにネイティブシステムコードにコンパイルされていないため、にコンパイルされているためです。プログラムを実行すると、実行中のシステムのコードが自動的にJITコンパイルされ、元の実行ファイルはそのまま残されます。 Windows上の.NET Frameworkと他のすべてのMonoは、CILバイトコードを読み込んでコンパイルできます。

Monoには、.NET Frameworkのスタック全体が利用できないことに注意してください。ほとんどすべてのBCLはそのままですが、WPFのようなライブラリはMonoでは利用できません。 MonoはあなたのGUIにGTK#を使うことを勧めます。

4

はいいただき、誠にありがとうございます。

Mono is

それは、C#と共通言語ランタイムのためのECMA標準に基づいて、Microsoftの.NETフレームワークのオープンソース実装です。

これは、プラットフォーム固有のコードを記述しない限り、.NETが実行できるすべてのプラットフォームで実行できることを意味します。 (したがって、\または/を使用してパスを連結する代わりにPath.Combineを使用し、改行コードを\nとしてハードコードするのではなく、Environment.NewLineなどを使用します)。

0

Linuxの場合はwrite .NET code in Monoとなり、Windows、Mac OS X、Linuxではアプリケーションを実行できます。
ただし、完全な.NETスタックは利用できません。最も顕著なのはcomplete lack of WPF supportです。

0

ファイルシステムのレイアウトや移植可能なライブラリを使用する場合は、何も想定しないでください。特にグラフィカルインターフェイスは問題があります.Windows.FormsはLinux上で外見上のように見え、GtkはWindows上で少し外れているかもしれません。

+0

hmmm Gtkを使用して.exeファイルを作成すると、Windowsに移植する際に問題が発生しますか? – Dail

+0

Gtk#はWindowsに移植されているので問題はありませんが、コンポーネントは100%の状況でネイティブWindowsコンポーネントのように動作しません。これが問題かどうかは、ユーザーインターフェイスの複雑さとユーザーの期待に左右されます。 – Joni

+0

あなたはルックアンドフィールについて話していますか? – Dail