ホーム > Silverlight > VB.NETにMVVM LightToolkitのテンプレートを追加しよう

VB.NETにMVVM LightToolkitのテンプレートを追加しよう


MVVM LightToolkitのVB用テンプレートがないと聞いたので、とりあえずViewModelのテンプレートを作ってみました。

Visual Studioのテンプレートを作るのは簡単です。

  1. もともとになるプロジェクトやファイルを作って、
  2. 置き換えようのパラメーターをソースに適用して、
  3. ウィザードからテンプレート化して、
  4. UserTemplateフォルダーに置く
  5. だけ。

ということで、やってみます。

1.テンプレートのもととなるプロジェクトを作る。

まずは、テンプレートのもととなるプロジェクトを作ります。

本来のMVVM LightToolkitのプロジェクトテンプレートから作られるプロジェクトは、アセンブリの参照以外にも、MVVM LocatorやMVVM Viewなどが最初からプロジェクトに追加されていますが、今回は単にMVVM LightToolkitのアセンブリが追加され、ViewModelが一つ追加されたものを作ります。

MVVM LightToolkitに必要なアセンブリは、次の3つです。

  • GalaSoft.MvvmLight.Extras.SL4.dll
  • GalaSoft.MvvmLight.SL4.dll
  • System.Windows.Interactivity.dll
  • Select the file to reference

テンプレートにする、ViewModelクラスを作成します。ViewModelBaseクラスを継承する以外は、特に記述するものもないのですが、C#のテンプレートにならってこんなクラスを追加してみました。C#ではクラスファイルには名前空間を含めますが、VBではアプリケーションレベルでは既定の名前空間を使うのが習わし?になっているので名前空間は定義していません。

Option Explicit On
Option Strict On
Option Infer On

Imports GalaSoft.MvvmLight

Public Class Class1
    Inherits ViewModelBase

    Public Sub New()
        'if (IsInDesignMode)
        '    ' Code runs in Blend --> create design time data.
        'Else
        '    ' Code runs "for real": Connect to service, etc...
        'End If
    End Sub

    'Public Overrides Sub Cleanup()
    '    ' Clean own resources if needed
    '    'MyBase.Cleanup()
    'End Sub
End Class

とりあえず、この状態でビルドが通ることを確認したら、テンプレートのもととなるプロジェクトの作成は終了です。

2.換えようのパラメーターをソースに適用する。

テンプレート化するアイテムは、アイテムの追加ダイアログで指定したファイル名をクラス名につけたいので、次のように修正します。

Option Explicit On
Option Strict On
Option Infer On

Imports GalaSoft.MvvmLight

Public Class $safeitemname$
    Inherits ViewModelBase

    Public Sub New()
        'if (IsInDesignMode)
        '    ' Code runs in Blend --> create design time data.
        'Else
        '    ' Code runs "for real": Connect to service, etc...
        'End If
    End Sub

    'Public Overrides Sub Cleanup()
    '    ' Clean own resources if needed
    '    'MyBase.Cleanup()
    'End Sub
End Class

クラス名をClass1から、定義済みテンプレート名である、$safeitemname$に変更しています。このほかのテンプレート名は、MSDNを参照してください。また、カスタムテンプレートを定義することもできます。

3.ウィザードでテンプレート化する。

テンプレートウィザードを開始するには、Visual Studioのファイル⇒テンプレートのエクスポートを実行します。

image

今回は、アイテムテンプレートを追加するので、ラジオボタンで項目テンプレートを選択します。

テンプレートのエクスポート ウィザード

アイテムテンプレートに含むファイルを指定します。今回は先ほど修正したMVVMViewModel.vbを選択します。

テンプレートのエクスポート ウィザード (2)

このファイルが参照するアセンブリを選択します。ここでは上記の3アセンブリを参照します。

テンプレートのエクスポート ウィザード (4)

テンプレートの情報を定義してテンプレートの作成は完了です。

テンプレートのエクスポート ウィザード (5)

4.UserTemplateフォルダーに置く

テンプレートを自動的にVisual Studioにインポートを選択すると、今回作成された項目テンプレートが、下記の場所に作成され、Visual Studioに自動登録されます。

%UserProfile%\Documents\Visual Studio 2010\My Exported Templates

 

テンプレートを適用する。

アイテムの追加ダイアログに作成したテンプレートが表示されます。

新しい項目の追加 - SilverlightApplication2

プロジェクトのテンプレートを作る。

プロジェクトテンプレートの作り方は、基本的に項目テンプレートと同じです。

テンプレートのウィザードの最初で、プロジェクトテンプレートを選択するだけです。

テンプレートの構成

Visual Studioのテンプレートファイルは単なるZipファイルです。解凍するとテンプレートの構成を書いたvstemplateファイルと、テンプレートに含まれるファイルやアイコンが解凍されます。

image

このvstemplateファイルはを修正することで、アイテム追加時のカスタム動作を追加することができます。

詳細はこちら⇒プロジェクトと項目テンプレートのカスタマイズ

広告
カテゴリー:Silverlight タグ: ,
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。