こんにちは。青木です。
Sitecoreの開発においては、テンプレートやサブレイアウトなどのアイテム管理が必要になります。
そのアイテム管理作業を支援するツールにUnicornというOSSがありますので、このエントリではSitecore Unicornについてご紹介します。
こちらの記事はSitecore Advent Calender 2014の12月14日の記事です。
Unicornは、GitHubで公開しているOSSです。
似たようなコンセプトを持つツールには、TDS、Courier、Shipなどがありますが、今回は比較的更新されていて無料のUnicornを試してみました。
Unicornは、シリアライズの手間を省いてくれるツールといえます。
通常の開発では、自分が触ったアイテムを覚えておき、ソースコード管理ツールにコミットする前に、手動でシリアライズします。しかし、この手順ではシリアライズするアイテムが漏れてしまうといった問題があります。
Unicornを使うと、Sitecoreのアイテムとシリアライズフォルダの状態を自動的に同期してくれるメリットがあります。
インストール方法
NuGetを使用してインストールを行います。「Install-Package Unicorn」コマンドを実行します。
PM> Install-Package Unicorn
依存関係 'Kamsar.WebConsole (≥ 1.2.2.0)' の解決を試みています。
依存関係 'Ninject (≥ 3.0.1.10)' の解決を試みています。
'Kamsar.WebConsole 1.2.2.0' をインストールしています。
'Kamsar.WebConsole 1.2.2.0' が正常にインストールされました。
'Ninject 3.0.1.10' をインストールしています。
'Ninject 3.0.1.10' が正常にインストールされました。
'Unicorn 2.0.4' をインストールしています。
'Unicorn 2.0.4' が正常にインストールされました。
'Kamsar.WebConsole 1.2.2.0' を Website に追加しています。
'Kamsar.WebConsole 1.2.2.0' が Website に正常に追加されました。
'Ninject 3.0.1.10' を Website に追加しています。
'Ninject 3.0.1.10' が Website に正常に追加されました。
'Unicorn 2.0.4' を Website に追加しています。
'Unicorn 2.0.4' が Website に正常に追加されました。
インストールが完了すると、上記のアセンブリに加え、App_Config\IncludeにSerialization.configという設定ファイルが配置されます。このファイルが設定ファイルとなります。
起動
Unicornの起動は「http://<ドメイン名>/unicorn.aspx」となります。
起動すると、以下のページが表示されます。
ログインが必要というメッセージが表示されるため、Adminでログインします。
コントロールパネルでの初期設定
これによって、Unicornのコントロールパネルが表示されます。
現在の設定内容が表示されるので、一番下にある「Perform Initial Serialization of Default Configuration」ボタンをクリックします。
Unicornの実行
ボタンをクリックすると、Unicornの初期化が行われます。
次のURLに遷移し、「http://<ドメイン名>/unicorn.aspx?verb=Reserialize&configuration=Default+Configuration」にて、プログレスバーが表示されます。
100%になると、Configファイルに設定されている内容にて、自動的にシリアライズファイルが出力されていることが確認できます。
再度、「http://<ドメイン名>/unicorn.aspx」に戻ると、同期を実施できる画面に代わっています。
■動作確認
それでは、テンプレートを作成してみます。
テンプレートを保存すると、自動的にテンプレートがシリアライズされてディスクに保存されていることがわかります。
ホームアイテムの下でも試してみます。
これは、デフォルトの設定ファイルに登録されていないので、そのままではファイルは出力されません。
そのため、Serialization.configに<include database="master" path="/sitecore/content/Home" />と追記してみてから、アイテムを保存すると、Home配下でも出力されることがわかりました。
ただ、ドキュメントでも説明されていますが、ワークフローやバージョン追加管理を行うようなHome配下のアイテムはコンフリクトが多すぎるので管理に適してないということでした。
あくまで、テンプレート、レイアウトなどといった開発ツールに絞ったほうが良いのではないかとのことです。開発者同士の競合は、SVNやGITなどに任せてマージさせることがよさそうです。
GitHubのドキュメントでは、デプロイ、CIの仕方、手動セットアップ、細かい仕様などが記載されているので、詳細はそちらをご覧ください。
簡単ですが、Unicornを試してみた概要をご紹介してみました。12/25に向けて、続きが楽しみですね。