devlog

※当ブログでの発言は個人の見解であり、所属する組織の公式見解ではありません。

Sitecore の開発環境についての覚書

毎回、Sitecore の開発環境を作るのに色んな所のドキュメント見て〜とかするのが良い加減うんざりしてきたので覚書としてまとめておく。

Sitecore のインストール

Sitecore のインストールでいつも忘れちゃうものを書いておく。

SQL Server、 SSMS
  • そのまま入れれば OK
IIS
  • Windows 10 の場合は、"Windows の機能の有効かまたは無効化" の所から、IIS を入れる。
  • デフォルトだと入らない以下は個別に入れること (いつもこれを忘れるのでログイン時にエラーが出る)
    • アプリケーション開発機能 - .NET 拡張機能 4.7
    • アプリケーション開発機能 - ASP.NET 4.7
    • アプリケーション開発機能 - ISAPI フィルター
    • アプリケーション開発機能 - ISAPI 拡張
SIM
  • ローカル環境なら、これで Sitecore を入れておけば OK
    github.com
Sitecore Install 後
  • 日本語化
    • Sitecore Download ページ の 「Client translations」 に "Japanese (ja-JP)" なるものがあるので、DL
    • Sitecore の Launch Pad より、"Control Panel" -> "Localization" の "Import languages" から設定する
      • 普通に Upload して適用すれば良いが、適用先の Database は、"core" にすること
        (多分、他に当てると環境が壊れる; やったことないけど)
    • ユーザ毎に言語設定ができるので変更する
      • "Access Management" の "User Manager" から変更する
        • "Language Settings" -> "Sitecore Client" にある 「Client Language」、「Regional ISO Code」を日本に合わせる
        • "Content" にある 「Default Content Language」は、アイテムを作った時にデフォルトで作成される言語バージョンです
          設定する場合は、"Content Editor" を起動し、"sitecore" -> "System" -> "Languages" を右クリックし、日本語を追加すること
          この時、「英語入らねーや、ふふん」と英語の言語バージョンを消さないこと とりあえず動いたはずだけど、なんかやろうとするたびにエラーだったり何かが発生する

Visual Studio 周り

基本的には Sitecore Rocks の使い方がよくわからない (というより必要と思ったことがないので、使ったことがない) ので、自分は入れないで 開発環境を整える。

Project
  • プロジェクトは、"ASP.NET Web アプリケーション (.NET Framework)" で作る
  • とりあえず(2018/8 時点) Framework は、".NET Framework 4.7.2" で作った
  • テンプレートは、"空" を選択して、"MVC" を追加しておけばおk
  • Unit Test はとりあえず入れない
Sitecore の DLL
Unicorn
  • Sitecore 上のアイテムをシリアライズしてくれる素敵ツール
  • これを使わないと、ローカル開発、Staging、Production と手でポチポチ作っていかなきゃダメになって、大変面倒 & 絶対事故る (→ 最近もやらかしてます)
  • Nuget より、"Unicorn" を検索して入れてどーぞ (使い方は別途)
Glass.mapper
  • Sitecore のパーツを作る時に Sitecore で作成した Item のデータにアクセスすることがあると思うけど、Sitecore.なんちゃら みたいなのでアクセスせず提供された Mapper を使ってアクセスする
    これのおかげで単体テストが作成しやすくなる
  • これも Nuget から検索して入れてどーぞ (XX は Sitecore のバージョン)
    以下らへんを入れる (使い方は別途)
    • Glass.Mapper.Sc.XX
    • Glass.Mapper.Sc.XX.Core
    • Glass.Mapper.Sc.XX.Mvc
    • Glass.Mapper.Sc.XX.WebForms

多分このくらいを入れておけばなんとなく開発ができるはず?

Web Apps のログ監視について

覚書 (=カスみたいな文章)

Application Insight に出力したログでエラーとか Exception が発生した時にメール通知とかできるようにするやつ。 Application Insight の 「アラート」を使用する。

Trace ログとかは、Severity Level でログレベルが出ているので、以下のような感じで検索クエリを書いてあげれば良い。

union
 (traces),
 (requests),
 (customEvents), 
 (exceptions)
  | where ((itemType == 'trace' 
    or (itemType == 'request' 
    or (itemType == 'customEvent' 
    or (itemType == 'exception' 
    )))) and severityLevel == 2)

条件の書き方がわからない場合は、「メトリックスエクスプローラ」でログを検索して、 「分析」を押せばそれっぽい感じで確認できるので、あとは要らない部分を削除するなりなんなりする。

SeverityLevel については、 SeverityLevel Enum (Microsoft.ApplicationInsights.DataContracts) | Microsoft Docs を確認すれば、値がわかる。

Sitecore 8.2 Update 5 (rev. 170728) Release

しれっと、 Sitecore 8.2 Update 5 がリリースされていました。 Sitecore Developer Portal: Sitecore Experience Platform 82 Update5

Azure AppService

Update 4 までは、 AppServices 向けのイメージは一つの Zip ファイルになっており、 DL にも時間がかかっていましたが、 XP に関しては 2つに分けられているようです。 Deploy パターンは特に増えているわけではないです。

新機能・改善点

Configuration

Sitecore で、 FIPS に準拠した暗号化に対応したようです。 そもそも Sitecore 8.2 Update 5 よりも前のバージョンでは対応していなかったらしく、今回新たに対応したようです。 ただし、FIPS の対応は、 CMS Only Mode のみに対応しているようなので、 xDB を有効にする可能性がある場合は導入できないかと思います。

設定方法について、以下の Sitecore のドキュメントを参照のこと。
Sitecore Documentation: Enable FIPS

Marketing Foundation

Mongo .NET Driver が 2.4.4 にアップグレードされました。 2.4.x は、 Mongo DB 3.4 に対応しており、今回のアップグレードはマイナーバージョンアップということもあり細かい情報は見つけられませんでした。

とはいえ、 Cosmos DB には未だに対応せず… なので、 Sitecore からサポートされませんが、 Sitecore で Cosmos DB を使用する場合は、以下を使用してみましょう。 blogs.perficient.com Sitecore では、Cosmos DB をサポートしていません。
本番での利用はやめましょう。

Resolved Issues

以下を参照。

Sitecore Developer Portal: Release Notes