かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Prism 6.0がリリースされました

MSのP&PのチームからMS MVPが主体となったチームに移管されてから初のWPF版PrismであるPrism 6.0がリリースされました。今までNuGetでPrismをインストールすればよかったのが、Prism.Coreをインストールするようになっている点に注意です。

www.nuget.org

リリースノートは以下にまとまっています。

github.com

気になったところ

個人的にインパクトが大きいなと思ったところをピックアップ。

名前空間の変更

Microsoft.Practicesみたいな名前空間がついてたのが、ごっそり消えました。Prismというシンプルな名前空間になってます。

InteractionRequestに非同期版が追加

VとVMで対話するためのInteractionRequestにRaiseAsyncというメソッドが追加されています。これでコールバック地獄から解放されます。

xmlnsが変わった

http://www.codeplex.com/prismからhttp://prismlibrary.com/になったみたいです。

IViewインターフェースの削除

ViewModelLocator使うためにViewにIViewを実装しないといけなかった縛りが消えました。すっきり。

DelegateCommandの強化

DelegateCommandってRaiseCanExecuteChangedを自力で呼ばないといけなかったというめんどくさい感じだったのですが、これがObservePropertyメソッドでプロパティに変更があったときに自動でやってくれるようになりました。ただし、ObservePropertyイベント購読を内部でやってるのですが、解除する方法がなさそうなので、ライフサイクルの異なるオブジェクトのプロパティなんかを、ここに投げ込むのは危険そう。

まとめ

何か知らんが変わってるので、Prism 6.0入門でも書いてみますか?