結局、WPFは何と組み合わせて使う?
業務でライブラリを使う場合、まずライセンスをチェックする。 有料なのか無料なのか、有料の場合は開発ライセンスか、出荷ベースなのか、 無料の場合はどのようなライセンスなのか、などなど。
生業はWindowsデスクトップ(やや制御系)なのだが、 今度こそWPFで作りたいので調査した。
対象ライブラリを4つに絞り、1ヶ月ほどいじってみた。
- Livet
なんとなく好きなのは日本発だから?XAMLで色々できる。
ViewModelBase, Messanger,など
XAMLだけでButton.Click > OpenFileDialog > ファイルが選択されたらコマンド実行、ができる! - Prism
マイクロソフトの安心感。
BindableBase, InteractionRequest, ViewModelLocator, CompositeCommand, EventAggregaterなど
サンプルプログラムが読みきれない(むずい)。Prism.MVVMだけでは、Prismを使う理由にならない。 - MVVM Light Toolkit
歴史と安定感。あまり機能はない。
ViewModelBase, Messangerなど
Vでメッセージを受けるとき、コードビハインドが必要なのがイマイチ感 - Caliburn.Micro
後発なので工夫されている。
PropertyChangedBase, EventAggregator, WindowManager
コントロールと名前を合わせるだけでバインドできる。
どれも、狭いスコープでは同じようなことができるが、 目指しているものが大きく異るようだ。
最後は、世の中がどうなっているのか、調べてみた。
NuGetのDL数 | Google hit | |
---|---|---|
MVVM Light Toolkit | 215,000 | 339,000 |
Prism | 157,000 | (*1)336,000 |
Caliburn.Micro | 154,000 | (*2)118,000 |
Livet | 7,000 | (*3) 10,700 |
(*1): 検索キーワード "prism wpf"
(*2): 検索キーワード "caliburn micro"
(*3): 検索キーワード "livet wpf"
参考: "wpf mvvm"で検索すると589,000件
やっぱ、MVVM Lightが強いね。しかし、プラグインで既存機能の置き換え、みたいなことがやりたいので、Caliburn.Microに決~めた!