Sitecore 7.2 から Sitecore でサポートする ASP.NET MVC のバージョンが ASP.NET MVC 5.1 になっています。 Sitecore CMS and DMS 7.2 rev. 140526 (7.2 Update-2) が公開された記念に Sitecore 7.2 ように Sitecore Rocks を使用して Sitecore MVC を使用した開発を行うための Web アプリケーションプロジェクトのセットアップ方法の覚書を記載します。

検証環境

  • Sitecore CMS 7.2 rev. 140526 (7.2 Update-2)
  • Sitecore Rocks 1.2.6
  • Visual Studio 2013 Ultimate Edition

本手順で説明するのはあくまで一例ですのでご注意ください。Web.config や dll の管理方法などはプロジェクトの方針によって変わってくると思います。また、Visual Studio 2012を使ったセットアップ手順も時間があったら記載します。

今回は Sitecore MVC (ASP.NET MVC) と 従来の ASP.NET  Form を開発できるようにプロジェクトをセットアップしてみます。

1. Webアプリケーションプロジェクトのセットアップ

Visual Studio を起動して Web アプリケーションプロジェクトを作成します。下図のように プロジェクトテンプレートから Web の ASP.NET Web アプリケーションを選択してプロジェクトを作成します。今回は  sc.mvc という名前でプロジェクトを作成しました。OK ボタンをクリックします。

ASP.NET プロジェクトのテンプレートを選択する画面が表示されます。テンプレートの選択で Empty を選択します。 以下にフォルダーおよびコア参照を追加で Web Forms と MVC にチェックをします。OK をクリックします。

ソリューションエクスプローラーを確認すると下図のようにファイルやフォルダーが作成されます。Sitcore の Webサイトを拡張するためのプロジェクトですのでスクラッチの開発で使用する ASP.NET MVC の初期化に使用されるファイルは削除します。Global.asax, APP_Start フォルダーを削除します。

初期化処理が必要な場合は 初期化用のパイプラインで処理します。独自のルーティング処理やWeb API と統合する例は [Sitecore Integration] MVCコントローラーを使用する などを参照してください。

ファイルやフォルダーを削除すると下図のようなプロジェクト構成になります。

Sitecore の開発を行いますので当然 SitecoreのWebサイトから提供される dll を使用します。Sitecore MVCの開発をするのであれば、 Sitecore.Kernel.dll, Sitecore.Analytics.dll, Sitecore.Mvc.dll, Sitecore.Mvc.Analytics.dll をプロジェクトの参照に追加します。そのほか使用する機能に応じて必要な dll の参照を追加してください。

Sitecore の Web サイトを開発する場合、dllの参照を追加したら場合に、 Sitecoreのdll の プロパティで ローカルにコピーを false に設定していましたが、今回は プロジェクトとWebサイトが別々であることと、ビルド時に関連する dll が多いことからSitecore の Web サイトで使用しているアセンブリ (dll) のバージョンと一致させる方針でプロジェクトをセットアップしていきます。
これは dll が Sitecore のバージョンと一致するように管理されていることを前提としますが、自身が作成したdll以外のdllはどのバージョンを使用するか管理されているはずなので難しくない前提でしょう。

Sitecore の Web サイトで使用されている ASP.NET MVC のバージョンは 5.1 です。 サイトコアの Web サイトの bin フォルダの System.Web.Mvc.dll のプロパティ画面の詳細を参照すると 製品バージョンやファイルバージョンから アセンブリバージョンの詳細を確認すると ASP.NET MVC のバージョンは 5.1.1 であることが分かります。

Visual Studio のプロジェクトで使用する ASP.NET MVC のバージョンを 5.0 から 5.1.1 に変更します。 NuGet パッケージマネージャーコンソールを起動して、次のコマンドを実行します。

Install-Package Microsoft.AspNet.Mvc -Version 5.1.1

もしエラーが発生する場合は Visual Studio 2013 のバージョンを最新バージョンにアップデートしてから MVCのバージョンを 5.1.1 に更新してみてください。

最後に  Web.config のプロパティ画面を表示して、ビルドアクションを"なし" にします。 この設定を忘れると Webアプリケーションプロジェクトを Sitecore の開発用のサイトに発行したときに  SitecoreのWeb.config を上書きしてしまいサイトコアが起動しなくなります。SitecoreのWebサイト用に Web.config も ASP.NET Web アプリケーションプロジェクトで管理する場合は SitecoreのWebsite フォルダから Web.config をコピーしてプロジェクトに含めてもいいかもしれません。

2. プロジェクトのSitecoreへの接続と発行の設定

プロジェクトの準備ができました、プロジェクトを保存しておきます。Sitecoreへの接続と発行の設定を行っていきましょう。

ソリューションエクスプローラーで作成したプロジェクト(本例では sc.mvc) を右クリック ->  Sitecore -> Connect to Sitecore をクリックします。Select  Connection ダイアログで接続先を選択します。接続先がなければ作成してください。接続先の作成にかんていは [Sitecore Rocks]サイトコアインスタンスに接続する をご参照ください。

次に発行をセットアップします。発行のセットアップに関しては [Sitecore Rocks]発行をセットアップする を参照して下さい。

以上でセットアップ完了です。

3.まとめ

とりえず説明はここまでとします。セットアップしたプロジェクトを使用した Sitecore MVC の作成に関しては [Sitecore Rocks] Sitecore MVC 用の Webアプリケーションプロジェクトをセットアップする Sitecore 7.2 版 その2 MVCページを作成してみるなどを参照してください。ASP.NET Forms を使用するレイアウトの作成方法に鑑定は[Sitecore Rocks] Sitecore MVC 用の Webアプリケーションプロジェクトをセットアップする Sitecore 7.2 版 その3 ASP.NET Forms を作成してみる等を参照してください。

Sitecoreのサイト(既存のサイト)を拡張するようにプロジェクトをセットアップすることからスクラッチの開発と比べてひと手間かかりますが、セットアップ手順自身はそんなに難しくないことが分かっていただけると思います。

Visual Studio 2012 で Sitecore MVC 用のプロジェクトをセットアップするにはどうすればいいでしょうか?

実は大きな手順の違いはありません。プロジェクトを作成するときに ASP.NET MVC 4 Web アプリケーションプロジェクトを使用して空の MVC プロジェクトを作成するだけで、それ以外の手順は全く同じでOKです。 NuGet パッケージマネージャーコンソールで Install-Package(もしくは Update-Package) コマンドで MVC のバージョンを5.1.1 にアップデートするときに"バージョン 'Microsoft.AspNet.WebPages' は NuGet のバージョン 2.0.30625.9003 と互換性がありません。http://go.microsoft.com/fwlink/?LinkId=213942 から NuGet の最新バージョンを取得してアップグレードしてください"といったエラーが発生する場合は Visual Studio 2012 が Update4 以上になっていることを確認してください。