9

私の会社には、WinXP で動作する既存の確立された WinForm アプリケーションがあります。このアプリケーションは、DirectSound を使用して多くのサウンド処理を行います。

私の会社は、Vista/Win Server 2008 のワークステーションあたりのコストの代替として、Mono を評価したいと考えています。

「Mono で簡単に動作する」から「Linux で Mono を使用して WinForm アプリを実行するには、特定のケースでは数か月の再コーディングが必要になる可能性がある」まで、さまざまな見積もりがあると聞いています。

誰もこれについて実世界で良い経験をしていますか? 良いリンク参照ですか?テストに取り組む前に、より良いアイデアを得たいと思います。

ありがとう!

4

2 に答える 2

12

WinForms の部分は簡単です。Mono は Winforms を 100% サポートすると主張しているため、ほとんど何もする必要はありませんが、Linux で利用可能な API を使用するには、すべての DirectSound 呼び出しを書き直す必要があります。ALSA は当然の選択です。

私は VS 2005 で小さなアプリを作成し、Mono に簡単に移植しました。多くの P/Invokes を行う場合、それらを完全に書き直すか再考する必要がある可能性があるため、それを考慮する必要があります。

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

于 2008-10-16T03:33:24.947 に答える
6

Mono はマネージ コードの移動には役立ちますが、オーディオ レイヤーの移動には役立ちません。

残念ながら、.NET フレームワークはオーディオ処理用の包括的な API を提供していません。これは、小さなサウンド サンプルを再生する方法を提供するだけであり、あまり得意ではありません (IKVM で C64 エミュレーターを実行する場合のオーディオ ギャップに関する Jeroen の投稿を参照してください)。

どの Linux API がオーディオ アプリケーションの動作に最も適しているかを調査する必要があります。

オーディオに関する Lennart Poettering のブログ エントリは、優れた出発点です。

http://0pointer.de/blog/projects/guide-to-sound-apis.html

API を決定したら、Windows と同様に、適切な API を P/Invoke する必要があります。

于 2008-10-19T16:08:26.403 に答える