幅広い関係者に向けて共有される予定のSitecore CMSのモジュールを開発する場合や、Sitecoreの機能をカスタマイズする場合、以下のような実装特有の疑問が生じるかもしれません:
- モジュール実装の一般的なルールは何か?
- よくある典型的なアーキテクチャの誤りを回避する方法は?
- モジュールのパーツを他のSitecoreコンポーネントと混同しないようにするにはどうすればよいか?
この記事では、Sitecore開発者が抱く可能性のある、上記のような質問やその他の質問に応える、一般的に推奨されているいくつかの基本的なプラクティスを提供します。
アーキテクチャ
- インスタンス間の通信にWebサービスを使用することは避けてください。これは、インスタンスがインバウンドまたはアウトバウンド接続を許可しないファイアウォールによって保護されている可能性があるためです。代わりにEventQueueメカニズムを使用してください。
- モジュールのパフォーマンスに留意し、高負荷の場合は負荷テストを実行します。これにより、本番インスタンスでのモジュールの安定性が保証されます。
- 異なるカルチャーのコンテキストで実行される可能性が常にあるため、モジュール カルチャーを独立させます。
コード
アイテム
- モジュール固有のレイアウト アイテム、ビュー、レンダリングおよびサブレイアウトを/sitecore/layout/Layouts/Modules/<モジュール名>に配置します。
- モジュール固有のテンプレートを/sitecore/templates/Modules/<モジュール名>アイテム フォルダーに保存します。
- どうしても必要な場合を除いて、デフォルトのSitecoreアイテムとテンプレートの変更は避けてください。
- カスタム フィールドを使用して標準テンプレートを拡張する必要がある場合、以下の手順に従ってください:
- /sitecore/templates/System/Templates/Sectionsアイテムの下にセクション テンプレートを作成し、ベース テンプレートとして{00000000-0000-0000-0000-000000000000}を設定します。
- セクション テンプレートに必要なフィールドを追加します。
- セクション テンプレートを/sitecore/templates/System/Templates/Standard templateのベース テンプレートのリストに追加します。
設定
- 比較的変更されず、開発者または管理者のみが変更すると考えられる設定は、構成ファイルに保存してください。
- モジュール固有の設定を保存する場合、またはSitecore構成にパッチを適用する場合、/App_Config/Include/Sitecore.<モジュール名>.configファイルを使用してください。
- 頻繁に変更される設定やSitecoreアイテムへのリンクを含む設定は、Linksデータベースとリンク切れレポートを利用するためにアイテムに保存する必要があります。
- 設定アイテムは、/sitecore/system/modules/<モジュール名>アイテム フォルダーに配置する必要があります。
- マルチサイト ソリューションのサイト固有の設定は、<site name="website" ... />構成要素または<site name="website" <モジュール名>Settings="/sitecore/content/website/<モジュール名>Settings" />要素によって参照される/sitecore/content/website/<モジュール名>Settingsアイテムのいずれかに保存する必要があります。
パッケージ
- モジュールがスクリプトで自動的にインストールされなくなるため、ユーザーと対話するポストステップのインストール アクションの使用は避けてください。
- 競合状況の制御を妨げるため、ネストされた、または依存するSitecoreパッケージのインストールに、ポストステップのインストール アクションの使用は避けてください。