Sitecore 7.1 では ASP.NET MVC4 がサポートされています。ASP.NET MVC4 および ASP.NET MVC4を拡張した Sitecore MVC を使用した開発を行うための MVC プロジェクトをセットアップする手順の覚書を記載します。MVCの機能は使用せずに ASP.NET Web フォームを使用してレイアウトやサブレイアウトの開発をする場合のプロジェクトのセットアップ例は[Sitecore Rocks]Webアプリケーションプロジェクトをセットアップするを参照して下しさい。ASP.NET MVC4プロジェクトを使用する場合でも同じプロジェクト内でWeb フォーム (aspx, ascx)を作成・共存することはできます。

検証環境は次の通りです。

  • Sitecore 7.1 がローカルにインストールされた環境
  • Visual Studio 2012 Ultimate
  • Sitecore Rocks 1.1.0

本記事のセットアップ手順はあくまで一例ですのでご注意下さい。configファイルやdllををどこでマスタ管理するかというプロジェクト方針によってセットアップ手順は異なってきます。

1. ASP.NET MVC4 Web アプリケーションプロジェクトを作成する

Visual Studio を起動して ASP.NET MVC 4 Web アプリケーションを新規作成します。今回は下図のように SC.Mvc という名前でプロジェクトを作成することとします。ASP.NET MVC 4 Webアプリケーションプロジェクトテンプレート自体は Visual Studio 2012 をインストールすると自動的に追加されるプロジェクトテンプレートになります。OK ボタンをクリックします。

下図のようなウィザード画面が表示されます。テンプレートの選択で 空 を選択します。 ビューエンジンは既定値である Razor を選択しておきます。OKボタンをクリックします。

これで空の ASP.NET MVC 4 Web アプリケーションプロジェクトが作成されました。

2. フォルダおよびファイルの準備

下図のように SitecoreのWebsite フォルダにある Web.configおよび Web.Release.config, Web.Debug.config をコピーし、MVCプロジェクトの Web.config, Web.Debug.config, Web.Release.config に上書きコピーします。

同様に Website/App_Config 配下にある ConnectionStrings.config をコピーし、MVCプロジェクトの App_Config フォルダー配下に配置します。 App_Configフォルダーはソリューションエクスプローラーを使用して事前に作成しておいてください。

次のソリューションエクスプローラー上で ConnectionStrings.config をプロジェクトに追加します。下図のように ConnectionStrings.config を右クリック→プロジェクトに含める をクリックします。ConnectionStrings.config がソリューションエクスプローラーに表示されない場合は ソリューションエクスプローラー上のツールバーの すべてのファイルを表示するボタンを選択しておいてください。

プロジェクト内のConnectionStrings.config および Web.config をSitecoreインスタンスの Web.config, ConnectionStrings.config ファイルを上書きしないようにビルドアクションを コンテンツ から なし に変更しておきます。

下図のように ConnectionStrings.config をクリックして プロパティ画面で ビルド アクション を なし に設定します。Web.config も同様に ビルド アクションを なし に設定してください。

次に アセンブリの準備を行います。Sitecore インスタンスの Website\bin フォルダ配下から必要なファイルをコピーします。今回は最低限必要な Sitecore.Kernel.dll および Sitecore.Mvc.dll をコピーし、 MVC プロジェクトのbinフォルダ配下にコピーします。

ソリューションエクスプローラー上でプロジェクトの 参照設定を右クリック→参照の追加 をクリックします。

参照の追加ダイアログで、下図のようにブラウズを選択して、先ほどbinフォルダ配下にコピーした Sitecore.Kernel.dll , Sitecore.Mvc.dll をファイル参照として追加します。

同じプロジェクトの bin フォルダ配下のdllを参照設定しましたので、ビルド時に dll が削除されないようにします。参照設定のなかで Sitecore.Kernel を選択します。プロパティ画面でローカル コピー を False に設定します。どうように Sitecore.Mvc のローカルコピーも False に設定しておきます。

あとは不要なファイルを削除します。 Global.asax ファイルは SitecoreのWebsiteフォルダにも存在します。発行(publish)時に Global.asax が上書きされないようにプロジェクトから削除しておきます。下図のように Global.asax を右クリック→削除 をクリックします。

Sitecoreとは別に ASP.NET MVC 4のページを作成するために Global.asax に独自のルーティングの設定を記述場合があると思います。その場合は オリジナルのGlobal.asax もWebsiteフォルダ配下からコピーして MVC4 Web アプリケーションプロジェクト内で管理することになります。その場合は Sitecoreをアップグレードする際にコンフィルクとが発生しないように注意してください。Global.asaxを削除するという本記事の設定は一例になります。

以上で準備完了です。Web.configやdllの参照設定等はあくまで一例です。プロジェクトのdllやconfigファイルなどのマスタ管理方針やソリューション構造に従って適宜読み替えてプロジェクトをセットアップしてください。

3.まとめ

説明は以上となります。

ASP.NET MVC 4アプリケーションプロジェクトを使用することで ASP.NET Web フォーム、 ASP.NET MVC 4 、 Sitecore MVC の機能を使用するWebアプリケーションを開発することができるようになります。

あとはビルドを行いエラーが発生しないことを確認してください。

そのあと、発行(publish)の設定を行ってASP.NET MVC Webアプリケーションを Sitecore にデプロイできるようにします。発行の設定方法は[Sitecore Rocks]発行をセットアップする等を参照してください。