2016-02-25 18 views
18

私は、XAMLはBlendと組み合わせてUIを設計するために使用されることを知っています。私は、WPF、Store App、Phone App、UWAのXAMLがどのように機能するのか、さまざまな用語を混同しています。 Morever、WPF、Store App、Phone App、UWAの違いは何ですか?すべてのことは、古いDesktop ProjectがWPF、Store App、またはUWAのいずれによっても使用および置換されなくなることを意味しますか?XAML vs WPF vs Store App vs Phone App vs UWA

+4

歴史はこのようになります。 WPFは最初にXAMLを使用していました。それから、MSFTを宇宙に送り込んだWINRTが来て、Store AppsのXAMLだけを呼び出しました。ちょうどGoogle WPF DEAD? Phone APPSもXAMLを使うことができますが、それはSilverlightのような独自のプラットフォームです。これらの隙間を埋めるために、MSFTはWindows 8ですべてを覆い隠していたため、UWAが戻って来てくれています。あなたはまったくブレンドする必要はありません。 –

+1

私のWikiの記事が役に立ちます:[UWP vs. WPF](https://github.com/jbe2277/waf/wiki/UWP-vs.-WPF) – jbe

答えて

44

.NETが〜2000でリリースされたとき、WinFormsを使用してWindows用のデスクトップアプリケーションを作成できました。 Windows APIをマネージコードでラップすることにより、 'ネイティブ'コントロール(WinFormsで作成されたボタンは実際はuser32.dllのWindows Buttonコントロール)にアクセスできます。これらは、Windows 10まで含めて、適切な.NETフレームワークバージョンがインストールされているWindowsの任意のバージョンで実行できます。

2006年に、WPFがリリースされました。これはWinFormsの代替品です。 WPFは、XMLに基づく言語であるXAMLを使用して、ユーザーインターフェイス要素を宣言します。単純なWPFアプリケーションでは、.xamlファイルはGUIを記述し、コードビハインドファイルはロジックを記述します。 DirectXは.xamlに記述されているものをウィンドウに描画するために使用されます。

Winformsと同様に、WPFを使用して作成されたプログラムは、Windows 10まで含めて、適切な.NETフレームワークバージョンがインストールされているWindowsの任意のバージョンで実行できます.XAMLの使用は完全にオプションです。 XAMLを使用して記述するユーザーインターフェイス要素は、.NET言語C#またはVisualBasic.NETを使用して作成することもできます。しかし、通常はXAMLを使用する方が簡単です。 To XAML or not to XAML (MSDN Blogs)を参照してください。

XAML (Wikipedia)から:

XAMLは、単にXMLに基づいているため、開発者やデザイナーは、コンパイルを必要とせず、それ自体で自由にコンテンツを共有し、編集することができます。

〜2012からWindows 8まで、metro/modern/windows-8/windows-store-appsという新しい種類のアプリを作ることができます。これらのアプリケーションは、GUIを記述するためにXAMLを使用している点でWPFに似ています。これらのアプリは、Windows 8,8.1、およびWindows 10でのみ実行できます.Windows 8.1ではいくつかの機能が追加されましたが、ほとんど同じままです。同じ技術を使ってWindows Phone用のアプリを作成しました。

Windows 10のリリースでは、異なるコードを使用して異なる種類のデバイス(デスクトップ/モバイル/ Xbox/IoT /ホログラフィック)をターゲットとするUWP(Universal Windows Platform)を作成しました。 UWP用に作られたこれらのアプリは、以前のWindows 8/8.1アプリに似ています。これまでと同様に、XAMLはGUIを記述するために使用されます。

Windowsストアアプリの場合のみ、となります。との互換性はありません。タイムラインはWindows 8 - >Windows 8.1 - > となります。 UWPで作られたアプリはのみのWindows 10で実行し、Windows 8.1で作られたアプリは、Windows 8で

+1

ありがとうございました。つまり、Windows 8.1用のさまざまなデバイス(PC /タブレット/電話)でアプリケーションを実行したい場合は、Windows 8.1のUniversalプロジェクトテンプレートを使用する必要があります。そして、Windows 10では、UWPプロジェクトテンプレートを使用する必要があります。 –

+2

そうです。注意Windows 8.1デスクトップとWindows 8.1 Phone間のリソースの共有しかできないため、Windows 8.1はUWPと同様に普遍的ではありません。 UWPでは、すべてのフォームファクタに同じコードベースが使用されます。 –

+2

私が間違っている場合は私を修正しますが、私はWPRと同じようにXAMLはwinRTと同じではないと思います。 – mFeinstein

0

を実行することはできません、私は非常にstopbyteで、このディスカッションスレッドを参照推薦、それははるかに多くの詳細を持っているとexplanation of the concepts behind WPF, UWP And WinRT

WinFormsに関しては、私はそれが今の歴史だと信じています。ほとんどWPFに置き換えられました。 私はMicrosoftがWindowsフォームの開発をやめていると思うし、おそらくそれを維持することもやめてしまったでしょう。

+0

Winformsは間違いなく "履歴"ではありません。これは、多くのサードパーティベンダー(DevExpress、Syncfusion、Telerik、Infragistics、ComponentOne、Dartなど)とまだ活発なフォーラムから主流のサポートを受けています。そして、犯罪はありませんが、非正式な「私が信じている」タイプのファクトイドの回答は、回答を探している人にとってはあまり意味がありません。 – Jazimov