5/1にCodePlexのWPFのサイトでリリースされたWPF Futures、様々なサンプルやテンプレートが含まれていて興味深いのですが、この中には、WPF Model-View-ViewModel Toolkitというものも含まれていました。
内容は、
- Visual Studio 2008用のテンプレート (Visual C# Express 2008もサポート)
- 文書
- M-V-VMの概略紹介
- VSテンプレート利用の手引き
- MVVMパターンの適用されたWPFアプリケーションのデモ
となっています。
Visual Studioテンプレート
規約というほどのものではありませんが、M-V-VMパターンもRuby on RailsやASP.NET MVC、CakePHPなどのMVCパターンのフレームワークのように命名規則やディレクトリ構造の作法が存在します。Model、View、ViewModel毎にディレクトリを作成し、その中にModelやViewといった接尾辞をつけたクラスを配置するといったものです。この作法に則ったプロジェクトを簡単に作成するために、WPF Model-View-ViewModel ToolkitにはVisual Studioのテンプレートが含まれています。
テンプレートのインストール
ダウンロードしてきたToolkitのzipファイルの中には、WPFModelViewTemplate.msiが含まれています。まずはこれを実行してインストールを行います。
ただし、Visual Studioの日本語環境では、これだけでは利用可能になりません。ASP.NET MVCのPreview版がそうであったように、Visual Studio のテンプレート が英語環境用(1033)にしかセットアップされませんので、英語環境用にインストールされたファイルを日本語環境用(1041)にコピーしてやる必要があります。
以下の位置に存在するファイルを、
<Visual Studioのインストールディレクトリ>\Common7\IDE\ProjectTemplates\CSharp\Windows\1033\WpfModelViewApplicationProjectTemplateV0.1.cs.zip
こちらのディレクトリにコピーします。
<Visual Studioのインストールディレクトリ>\Common7\IDE\ProjectTemplates\CSharp\Windows\1041\
その上で、管理者として実行したVisual Studioコマンドプロンプトから
devenv /InstallVSTemplates
を実行し、VisualStudioに変更を反映させます。
これで、テンプレートが追加されました。
CommandやViewModelの基本クラスも用意されています。CommandやViewModelの基本クラスは様々な人が公開しているものの中からどれを選択すべきか迷うところがありましたが、これからWPF Model-View-ViewModel Toolkitが標準として育っていけば、迷うことも少なくなりそうですね。
DelegateCommandやViewModelBaseについては、追って解説エントリをあげられればと思います。
【翻訳】ViewとViewModel間でアニメーション化された遷移を仕立てる~ 原題”Orchestrating Animated Transitions between View and ViewModel”