漫坊亭

社会の底辺プログラマ

結局、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に決~めた!