22

この特定のケースでは、Linux 用の .comlicated NET アプリケーションを実行する必要があります。複雑なことに、そのプロジェクトは 3 年間開発されたものであり、Java などで再度作成し、後で .NET と Java の両方のバージョンを開発およびサポートしたくありません。

アプリケーションは (winapi/dll インポートによって) マウスとキーボードのイベントを生成しており、シリアル ポートを使用しています。遅延用のタイマーもほとんどありません-シリアルポート通信用(10〜20ミリ秒、ここでは大きな精度は必要ありません)。

残りは単純なコードだけで、特別なものはなく、変なコントロールも、directx などもありません。

私は何を期待すべきですか?これは機能しますか?

コードの一部が失敗する場合は、少し変更して、マウスとキーボードのイベント、または RS232 通信を送信するために記述できる Linux 上の .net アプリとミニ アプリケーション間のネットワーク接続を作成します。

さらに、Wine と .NET 全般についてお聞きしたいです。

Linux/Wine/Mono で実行する必要がある .NET アプリケーションを作成する方法は?

  • フレームワークのどのバージョン?(1.x、2.0、または 3.5 を使用できますか?)
  • 何を避けるべきですか (windows dll からのインポート? タイマー?)

コメントから編集/移動:

数年前にモノを見たけどひどかった。今では、LINQ、Threading、その他の複雑な機能をサポートしていることがわかりました。また、今のヘルプは本当に真剣に見えます。人々がまだ非常に役立つリンクを投稿していることがわかったので、まだ回答を受け付けていません。この質問が多くの+1を獲得した場合、私はそれを書き直し、おそらくこれは他の人を助けるでしょう.

ここにいる誰かが、ここで Linux 上の .NET を実際に使用した経験があることを願っています...

4

5 に答える 5

21

http://www.mono-project.comで Mono.NET について読んだことがありますか?

これにより、Linux 用の .NET アプリを作成できますが、Microsoft の実装とは多少異なります。私は、wine が .NET コンポーネントのいずれにも対応しないと思います。

前にドキュメントを読むだけで、すぐに始められます。

PS: これは mono と .NET の間の互換性リストも提供します。http://www.mono-project.com/CompatibilityMoMA (モノ マイグレーション アナライザー)は、作成済みの .NET アプリをスキャンして、Linux に展開するための互換性があるかどうかを確認するツールです。

于 2012-10-27T19:25:13.737 に答える
6

この投稿では、このスレッドで他の人から学んだすべての情報を短縮してまとめました。

  1. Linux 用の .NET のオープン ソース実装はMonoと呼ばれます。

  2. 互換性は十分に文書化されています (以下のリンクを参照)。Mono は、LINQ、スレッド、その他の複雑な機能をサポートしています。

  3. InteropServices もサポートしています。たとえば、Linux ライブラリ(!) でDllImportを使用することは可能libc.soです。

  4. Mono はAndroid と iOSをサポートできます(これらは Linux ベースですよね?)

  5. MoMA (Mono Migration Analyzer) というMono 互換性分析ツールがあります。

Mono Migration Analyzer (MoMA) ツールは、.Net アプリケーションを Mono に移植する際に発生する可能性のある問題を特定するのに役立ちます。プラットフォーム固有の呼び出し (P/Invoke) と、Mono プロジェクトでまだサポートされていない領域を特定するのに役立ちます。

便利なリンク:

Mono - ホームページ

Mono - ドキュメントのあるページ

Mono - 互換性ページ

MoMA - モノ移行分析ページ

于 2012-10-28T03:43:30.200 に答える
3

Mono を使用して Windows または Linux で実行される .net アプリケーションがいくつかあります。

必要に応じて VisualStudio で開発できます。Mono 開発環境を使用する必要はありません。Linux で .net アプリケーションを実行するには、ランタイム モノ ライブラリのみが必要です。

mono は .net 2.0 とほぼ 100% 互換性があるため、net 2.0 ターゲットを使用してこれらのアプリを VisualStudio でコンパイルします。Mono は、後の .net バージョンの API も実装していますが、すべてではなく、完全でもありません。2.0 よりも新しいバージョンの機能を使用する場合は、これらがサポートされているかどうかを確認するか、Mono 互換性分析ツールを使用する必要があります。Visual Studio の代わりに Mono 開発を使用することもできます。私の前任者はそうしていました。結果はほとんど同じで、代わりに Visual Studio を使用することを好みます。

大きな問題は見つかりませんでした。アプリは比較的複雑で、高度にマルチスレッド化されており、非同期 I/O、WinForms、ソケット、シリアル ポートなどを使用しています。

一部のアプリは、MS .net では利用できない .net ライブラリを使用していましたが、これらはすべて Windows にもインストールできるため、これらのアプリを Windows で実行しても問題はありません。

それが役立つことを願って、

于 2014-04-21T14:48:29.327 に答える