NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

Sitecore向け開発ユーティリティUnicornを試してみる

こんにちは。青木です。

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」コマンドを実行します。

 

f:id:nextscape_blog:20210909155412j:plain

 

 

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という設定ファイルが配置されます。このファイルが設定ファイルとなります。

f:id:nextscape_blog:20210909155434j:plain

 

起動

Unicornの起動は「http://<ドメイン名>/unicorn.aspx」となります。

起動すると、以下のページが表示されます。

f:id:nextscape_blog:20210909155452j:plain

ログインが必要というメッセージが表示されるため、Adminでログインします。

 

コントロールパネルでの初期設定

これによって、Unicornのコントロールパネルが表示されます。

f:id:nextscape_blog:20210909155511j:plain

f:id:nextscape_blog:20210909155531j:plain

現在の設定内容が表示されるので、一番下にある「Perform Initial Serialization of Default Configuration」ボタンをクリックします。

 

Unicornの実行

ボタンをクリックすると、Unicornの初期化が行われます。

次のURLに遷移し、「http://<ドメイン名>/unicorn.aspx?verb=Reserialize&configuration=Default+Configuration」にて、プログレスバーが表示されます。

f:id:nextscape_blog:20210909155554j:plain

 

100%になると、Configファイルに設定されている内容にて、自動的にシリアライズファイルが出力されていることが確認できます。

f:id:nextscape_blog:20210909155613j:plain

再度、「http://<ドメイン名>/unicorn.aspx」に戻ると、同期を実施できる画面に代わっています。

f:id:nextscape_blog:20210909155827j:plain

 

■動作確認

それでは、テンプレートを作成してみます。

f:id:nextscape_blog:20210909155652j:plain

 

テンプレートを保存すると、自動的にテンプレートがシリアライズされてディスクに保存されていることがわかります。

f:id:nextscape_blog:20210909155908j:plain

 

ホームアイテムの下でも試してみます。

f:id:nextscape_blog:20210909155929j:plain

これは、デフォルトの設定ファイルに登録されていないので、そのままではファイルは出力されません。

そのため、Serialization.configに<include database="master" path="/sitecore/content/Home" />と追記してみてから、アイテムを保存すると、Home配下でも出力されることがわかりました。

f:id:nextscape_blog:20210909155947j:plain

ただ、ドキュメントでも説明されていますが、ワークフローやバージョン追加管理を行うようなHome配下のアイテムはコンフリクトが多すぎるので管理に適してないということでした。

あくまで、テンプレート、レイアウトなどといった開発ツールに絞ったほうが良いのではないかとのことです。開発者同士の競合は、SVNやGITなどに任せてマージさせることがよさそうです。

 

GitHubのドキュメントでは、デプロイ、CIの仕方、手動セットアップ、細かい仕様などが記載されているので、詳細はそちらをご覧ください。

 

簡単ですが、Unicornを試してみた概要をご紹介してみました。12/25に向けて、続きが楽しみですね。