Windows Presentation Foundation
SilverlightはマイクロソフトによってAdobe Flashの競合技術として開発された。Silverlightは主にブラウザ上での実行を想定しているのに対し、WPFはよりクライアントPC環境に密着したスタンドアローン向け技術である。また、Silverlightで使用される.NET Frameworkは基本的に.NET Compact Frameworkのような機能制限付きサブセットであるが、WPFで使用される.NET FrameworkはWindows PC環境向けのフルセットである点も異なる。
WPFは次に示す3種類のデータバインディングをサポートする。
one time: クライアントはサーバ上のアップデートを無視する。
one way: クライアントはデータに対して書込み禁止の権限をもつ。
two way: クライアントは読み込みと書き込み両方の権限をもつ。
WPFはWin32(ネイティブコード)との相互運用機能を提供する。Win32のコード内からWPFを利用する(例:HwndHostクラスの合成、アセンブリのCOM公開など)ことも、WPFからWin32のコードを利用する(例:HwndHostクラスの継承、D3DImageクラスなど)ことも可能である。
Windows Formsとの相互運用も可能である(ElementHost、WindowsFormsHostクラス)。
なお、WPFのUI上に配置されたWin32あるいはWindows FormsによるレガシーなUIコントロールの描画に対しては、GPUアクセラレーションが効かない(GDI/GDI+によって描画される)ので注意が必要である。
WPFは通常のスタンドアローンアプリケーションだけでなく、XAMLブラウザアプリケーション(英語版) (XBAP) として配置することもできる。
スタンドアローンアプリケーションはClickOnceやMicrosoft Windows Installer (MSI) などのインストーラによってローカルコンピュータ上に配置されるアプリケーションである。
XAMLブラウザーアプリケーション (XBAP) はInternet Explorerなどのウェブブラウザによってホストされるアプリケーションである。コンピュータリソースへのアクセスやWPFの機能は一部制限される。