Sitecore Rocks を使用して Sitecore 7.X の開発を行うために Webアプリケーションプロジェクトをセットアップする手順を記載します。ASP.NET MVC および Sitecore MVCを使用するMVCアプリケーションプロジェクトのセットアップ手順については別の記事にて記載します。

検証環境は次の通りです

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

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

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

Visual Studio を起動して プロジェクトを新しく作成します。新しいプロジェクトのテンプレートを作成するダイアログが表示されます。下図のように ASP.NET 空のWebアプリケーションプロジェクト テンプレートを使用してプロジェクトを作成します。本記事では SC.Sample という名前でソリューションとWebアプリケーションプロジェクトを作成することにします。OKボタンをクリックします。

2. フォルダやファイルの準備

空のWebアプリケーションプロジェクトを作成した後、必要なフォルダーやファイルの準備を行います。ソリューションエクスプローラーを使用して プロジェクト配下に必要なフォルダーを作成します。まず、App_Config というフォルダーを作成します。必要であればApp_Config配下に Include フォルダーも作成します。サブレイアウトやレイアウトの作成を行う場合は layouts フォルダーも作成します。下図ではSC.Sample Web アプリケーションプロジェクトの直下に App_Config と layouts フォルダーを作成しています。

Sitecoreを拡張するプログラムを作成するので、Sitecoreから提供されるdllをプロジェクトから参照する必要があります。Sitecore の Website/bin フォルダ配下にある Sitecore.Kernel.dll と Sitecore.Kernel.xml をコピーし、Webアプリケーションプロジェクトの bin フォルダーに配置します。

同じく、 Sitecoreの Website フォルダ配下にある Web.config, Release, Debug ファイルをコピー(下図参照) し、 SC.Web Webアプリケーションプロジェクトの Web.config(およびWeb.Debug.config, Web.Release.config)に上書きします。

最後に ConnectionStrings.config もコピーします。SItecoreのWebsite/App_Config/ConnectionStrings.config をコピーしSC.Web Webアプリケーションプロジェクトの App_Config フォルダ配下にコピーします(下図参照)。

必要なファイルの配置が終わったのでプロジェクト内で参照の設定をしていきます。Web.configは上書きしたので特に何かをする必要はありません。

ConnectionStrings.config をプロジェクトに含めます。ソリューションエクスプローラー上で App_Config 配下の ConnectionStrings.config を右クリック→プロジェクトに含める をクリックします。これにより、 ConnectionStrings.config がプロジェクトに含まれるようになります。

もし、ConnectionStrings.config が表示されていない場合は、下図のようにソリューションエクスプローラのツールバーで "すべてのファイルを表示" が選択されていることを確認してください。

今回 ConnectionStrings.config はプロジェクトでマスタ管理しないこととします。そのため、ConnectionStrings.config を選択してプロパティ画面で ビルドアクション を コンテンツからなし に設定します。本設定によりWebアプリケーションプロジェクトを発行したときに ConnectionStrings.config が パッケージに含まれなくなるので Sitecoreの ConnectionStrings.config を上書きしないようにできます。

同じく Web.config もビルドアクションを コンテンツ から なし に設定します。本設定をすることで Webアプリケーションを発行したときに Web.configがパッケージに含まれなくなり、SitecoreのWeb.configを上書きすることを防ぐことができます。

本設定は 既存のサイトコアインスタンスのconfigファイルをプロジェクトのconfigファイルで上書きをしないための設定です。各configのマスターをVisual Studioのプロジェクトで管理する方針の場合はビルドアクションは既定の コンテンツを使用できます。

つづいて Sitecoreの開発を行うための dll 参照の設定を行います。下図のように ソリューションエクスプローラーからWebアプリケーションプロジェクトの参照設定を右クリック→参照の追加 をクリックします。

Sitecore.Kernel.dll への参照を追加します。先ほど Sitecore.Kernel.dll を SC.Web Webアプリケーションプロジェクトのbinフォルダーにコピーしました。表示される参照マネージャーダイアログでブラウズを選択し、binフォルダーにコピーした Sitecore.Kernel.dll ファイルを選択して参照に追加します。

必要であれば、それ以外のdllも同じようにbinフォルダーにコピーして参照の追加をしてください。

参照に追加した Sitecore.Kernel を選択し、プロパティ画面で ローカルコピー を False にします。本設定によって binフォルダーに配置した Sitecore.Kenel.dll がビルド時に削除されることを防ぐと同時に、プロジェクトを発行したときに Sitecore.Kernel.dll がパッケージに含まれないようにします。パッケージに含まれないようにすることで既存のSitecore インスタンスの binフォルダに配置されている Sitecore.Kernel.dll が上書きされることを防ぐこともできるようになります。

Web.config や ConnectionStrings.config を発行(publish)したパッケージに含まれないようにするのと同じく、 ファイル参照しているdllのローカルコピーを False にすることでSitecoreから提供される dll がパッケージに含まれないようにしています。本設定によって既存のSitecoreのbinフォルダに格納されたdllが上書きされないようにできます。ただし、Sitecoreのdllの管理もプロジェクトの特定のフォルダでマスタ管理する(上書きしてもいいこととする)場合は本設定は不要です。プロジェクトの方針に依存します。

この状態でソリューションをビルドし、エラーが発生しないことを確認してください。

3.Sitecoreと接続

ここまでで Webアプリケーションのプロジェクトをほぼ設定できました。あとは Sitecoreとプロジェクトを連携できるように Sitecoreとの接続を行います。

Webアプリケーションプロジェクトを Sitecore インスタンスに接続します。本設定をすることで、 ユーザーコントロール(ascxファイル)から サブレイアウトを作成したりといったプロジェクトとSitecoreの統合を行えるようになります。

Webアプリケーションプロジェクトを右クリック→Sitecore→Connect to Sitecore Explorer Connection... をクリックします。

Select Connection ダイアログが表示されるので、連携する Sitecoreのインスタンスを選択します。

Select ConnectionにSitecoreのインスタンスが表示されるようにするには 事前に Sitecoreとの接続を作成しておきます。詳細は[Sitecore Rocks]サイトコアインスタンスに接続するを参照してください。

4.まとめ

説明は以上となります。今回は一例としてASP.NET Web Form を使用して開発を行うためのプロジェクトのセットアップ手順を記載しました。

Sitecore Rocks を使用して開発を行うことで Sitecoreとシームレスに統合することができるようになります。SitecoreのWebsiteとは独立した場所に Webアプリケーションプロジェクトを作成して開発を行い、発行(publish)によってファイルをデプロイする開発を行えるようになります。Website配下ではなく独立したプロジェクトとして開発するのでサイトコアの既存のファイルとの混在を防ぐことができます。