オープンソースの .NET フレームワークでは、組み込みの Windows プログラムとの互換性が可能になりますか?

オープンソースの .NET フレームワークでは、組み込みの Windows プログラムとの互換性が可能になりますか?

おそらく数人は知っていると思いますが、Microsoft は .NET アプリケーション フレームワークをオープン ソース化しました。

これは、Linux 上でより多くの Windows プログラムを実行できるようになり、API を直接統合することで wine を高速化できることを意味しますか? それとも、bash を使用するように記述されたプログラムのようにスムーズに実行できるようにネイティブに統合することができない、単なる開発システムなのでしょうか?

私は Wine を使ったことがありますが、ネイティブにインストールされているディストリビューションでも、最も基本的なプログラムでも実行速度が遅くなり、仮想ディスクなどでは使いにくくなることがわかりました。コア/カーネル レベルで API を統合し、スラッシュが異なる方法で表現されるようにいくつかの変更を加え、報告された Windows バージョンを投入してネイティブと同じように実行できるようにすることは可能でしょうか。豚が自力で空を飛べるようになったら可能になると考えている人がいたら、絶対にうまくいかないと言ってください。ただし、一言で答えるのではなく、なぜうまくいくのか、またはうまくいかないのかを具体的に知りたいです。

答え1

ワインと何の関係があるのでしょうか? ちょっとそのことは無視しましょう。

Microsoft は、.NET のコア部分をオープンソース化するとともに、ASP.NET をこれまで以上にオープンソース化しています。これら 2 つの部分だけでも、コマンド ライン アプリケーションと ASP.NET Web サイトを作成できます。このような既存のアプリケーションがある場合は、最終的には Linux ターゲット (必要な場合) を作成して、Ubuntu でネイティブに実行できるようになります。

そうは言っても、GUI アプリケーションのようなものを作成するには、大量の .NET コンポーネントが必要です。Windows では、開発者は Windows Presentation Foundation などを使用して画面に描画します。Mono では、GTK# や Qt# などを使用できます。クロスプラットフォーム アプリケーションが必要な場合は、クロスプラットフォーム ツールキットが必要です。

これは、当初はあまり変化がないことを長々と説明したものです。開発者は、クロスプラットフォーム アプリが必要な場合、これまでも Mono を使用できましたし、今でも使用できます。将来的には、Mono のツールキットを VS.NET プロジェクトに取り込むのがより簡単になるか、MS が WPF をクロスプラットフォーム ツールキットに置き換える可能性があります。

Wineの話に戻ります。Wineで動作する.NETアプリケーションは、プレゼンテーションライブラリを提供するものが必要であり、(ネイティブWindowsライブラリの場合)を通してWine なので、適切な環境が提供されます。Wine は依然として、.NET が動作するアプリケーションとハードウェア (Linux 経由の仮想ハードウェア) 間のリンクです。この配置がすぐに変わるとは思えません。

関連情報