web-dev-qa-db-ja.com

Linux上のWPFは(すでに)可能ですか?

.NET、特にC#3.0、.NET 3.5、WPFを使用したプログラミングが大好きです。しかし、私が特に気に入っているのは、Mono .NETがプラットフォームに依存しないことです。

今、私はMonoのオリーブプロジェクトについて聞いた。なんらかのベータ版が見つかりませんでした。

すでに機能していますか?何か経験したことがありますか?

編集:月明かりについて知っています。しかし、スタンドアロンのWPFアプリケーションが必要です。そしてbecause of Moonlight Linux上のWPFが真実になることを願っています。

43
Hades32

完全なWPFのサブセットであるSilverlight APIを対象とするMoonlightを使用すると、より良い運が得られます。

編集:もちろん、Silverlightはデスクトップ用に「意図された」ものではありませんが、アプリケーションにSilverlightエンジンを組み込むことができない理由はありません。 Mac NY Times Reader などのように、以前に行われました。

その他の編集: Standalone Silverlight Applications に関するMiguelの投稿を参照

23
Jimmy

Update:人々はこれを支持し続けているので、私はそれが古くなっているのでlongであることを指摘したい。 Monoは数年前にMSに買収され、オープンソースに関する姿勢が変わったため、この記事は時代遅れになっています。 (WPFフレームワーク自体として廃止されたように)。

Monoは、WinformsやWPFなどのMicrosoft APIに関しては、少し不快な立場にあります。 .NetテクノロジーのサブセットはECMA標準ですが、これらのAPIの無料実装はおそらくより法的根拠に基づいています。これは、ノベルとマイクロソフトの間の契約の大きな要因であり、ノベルの顧客にとって良いことだと思います。しかし、Novellの顧客ではないMonoを使用している人々は保護されていません。このため、F/OSSコミュニティの多くの人々は、その技術的なメリットにもかかわらず、Monoに疑問を抱いています。

このため、Gtk#は本当に無料であるため、常に優先されます。とにかく、多くの人がWinformsよりも優れていると考えています。 WPFに関しては、ほぼ確実にNovellにとって低い優先度になります。彼らは最終的にそれを実装するかもしれませんが、私はあなたが予見可能な未来のために得ることができる最も近いものになると私は期待します。


これを投稿してから、Microsoftは契約を ECMA 334および335標準を実装するすべての人 に拡大しました。

13
Adam Lassek

mono website から

この時点で、Monoプロジェクトには、Windows Presentation Foundation APIをプロジェクトの一部として実装する計画はありません。

Moonlightは、silverlightの実装です。これは、WPFのサブセットに基づくブラウザーベースのフラッシュのようなテクノロジーです。

私の意見では、WPFを実装しないという選択は、モノの最大の間違いです。 WPFは、新しい.Netユーザーインターフェイスのデフォルトの選択肢になりつつあります。 詳細はこのブログをご覧ください

7
trampster

this link (Ubuntuに.NETをインストールするために必要な手順も含まれます)または this の既知のバグを確認すると、WPFの一部のバージョン(バグがある可能性があります)が動作することがあります今のところWineで。今のところ明確なテストは行われていませんが、WPF「Hello world」を実行してみる価値はあります。

更新2:

IlSpy 16.04の最新のWineで最新のUbuntuを実行しました。 32ビットバージョンのdotnet45およびcorefontsは、Windows 7との互換性を持つwinetricksを介してインストールされます。

この時間はクラッシュせず、すべてが正常に機能します。フォントは本当に見栄えがいい。

IlSpyはWPF経由で、loves programming with .NETは不可欠なツールであり、逆コンパイラです。

最新のポータブルSharpDevelop(WPFを使用したビルド)を追加なしでダウンロードしました。始まった。 WPFプロジェクトの作成に失敗しました。 WinFormsを作成しました。いくつかのcsファイルを開いていくつかの不具合を証明した後、入力しようとしましたが、クラッシュしました。

IlSpy via Wine on Ubuntu

更新

手順に従って、Ubuntu 14.4で最新のILSpy.exeを実行しました。

enter image description here

注意すべき次の項目:

  1. wineは、dotnet40は64構成ではサポートされていないと述べ、32ビットに変更しました

  2. フォントは見苦しいが、読みやすい

  3. 基本的な機能はうまく動作します-逆コンパイルされたコードを見ることができます-これはいくつかの開発には十分ですが、表示->検索と表示->オプション->表示クラッシュ.

結論:

LinuxではWPFが可能です。しかし、問題に取り組むための何らかの方法が必要です。

4
Dzmitry Lahoda

Silverform SDK というライブラリがあり、クロスプラットフォームのWPFとSilverlightの実装を提供することを目的としています。

ライブラリはマネージコードで実装されており、現在OpenTKおよびUnity3Dでレンダーバックエンドとして機能しています。バインディング、レイアウト、メインコントロール、プリミティブなどの主要な機能は既に実装されています(Unity Webプレーヤーのデモを確認してください here )。当初はUnity3dレンダリングに焦点を合わせていましたが、スタンドアロンのMonoアプリケーションのサポートは将来的に別のビルドとして追加される予定です。

免責事項:私は図書館の開発者の一人です。

3
Sergii Volchkov

オリーブから ホームページ

Oliveはサポートされていないため、実験的なソフトウェアと見なされる必要があります。また、シフトAPIを実装しているため、APIの安定性についていかなる保証もありません。

私は誰もが実際のプロジェクトでそれを使用していたとは思わない。

2
Kent Boogaart

はい、 NoesisGUI リアルタイムマルチプラットフォームXAML実装を使用して可能です。 VoidExpanse のように、Linuxでこのテクノロジーを使用してすでにリリースされているゲームがいくつかあります

開示:私はこの製品の開発者の一人です。

2
jsantos

おそらく数週間前にミゲル・デ・イカザ(モノのリード)にインタビューするポッドキャストを聞いたので、それはおそらく2008年12月中旬だったでしょう。

0
Orion Edwards