日本語版
最新ニュース
企業

CMS 13 プレビュー 4 — プレビュー 3 からのアップグレード

これは、Alloy テンプレートを参考として CMS 13 の各プレビューを段階的に説明するシリーズの 3 回目の投稿です。の 最初の投稿 CMS 12 から Preview 2 へのアップグレードについて説明しました。 2番 プレビュー 3 の主な変更点を確認しました。このまま進めている場合は、中断したところから始めてください。 プレビュー4が公開されました。パッケージの変更は非常に簡単ですが、スタート ページの解決方法に関する API の変更がコード全体に波及します。何を変更する必要があるのか、また知っておく価値があることは次のとおりです。 ステップ 1: パッケージを更新する パッケージ参照をプレビュー 3 からプレビュー 4 に移動します。 既知の問題: 古い CMS 12 バージョンからのデータベース スキーマのアップグレード プレビュー 3…

CMS 13 プレビュー 4 — プレビュー 3 からのアップグレード

1774315076
2026-03-20 12:08:00

これは、Alloy テンプレートを参考として CMS 13 の各プレビューを段階的に説明するシリーズの 3 回目の投稿です。の 最初の投稿 CMS 12 から Preview 2 へのアップグレードについて説明しました。 2番 プレビュー 3 の主な変更点を確認しました。このまま進めている場合は、中断したところから始めてください。

プレビュー4が公開されました。パッケージの変更は非常に簡単ですが、スタート ページの解決方法に関する API の変更がコード全体に波及します。何を変更する必要があるのか、また知っておく価値があることは次のとおりです。

ステップ 1: パッケージを更新する

パッケージ参照をプレビュー 3 からプレビュー 4 に移動します。



既知の問題: 古い CMS 12 バージョンからのデータベース スキーマのアップグレード

プレビュー 3 (この記事ではこれを想定しています) からではなく、古い CMS 12 バージョン (12.34.1 以前など) から CMS 13 プレビューに直接アップグレードしている場合、データベース スキーマの移行が次のようなエラーで失敗する可能性があります。

Column names in each table must be unique. Column name 'Failed' in table 'dbo.tblNotificationMessage' is specified more than once.

これは、特定の列が後の CMS 12 リリースで追加され、CMS 13 移行スクリプトが追加する前に列がすでに存在するかどうかを確認しないために発生します。

回避策: まず、データベース スキーマが完全に最新になるように最新の CMS 12 バージョンにアップグレードしてから、そこから CMS 13 プレビューにアップグレードします。これにより、CMS 13 の移行が実行される前に、すべての中間スキーマ変更が確実に適用されます。

ステップ 2: スタート ページを解決する

プレビュー 3 では、Alloy テンプレートは、Web サイトにキャストし、RoutingEntryPoint にアクセスすることでスタート ページを解決しました。 Preview 4 では、最も簡単なアプローチは ContentReference.StartPage を直接使用することです。ほとんどの場合、IApplicationResolver を経由する必要はありません。

前 (プレビュー 3)

var website = _applicationResolver.GetByContext() as Website;
var startPageContentLink = website?.RoutingEntryPoint;

後 (プレビュー 4)

var startPageContentLink = ContentReference.StartPage;

Alloy テンプレートでは、ContentReference.StartPage を使用することで、複数のファイルにわたる作業が簡素化されました。
PageViewContextFactory.cs — レイアウトモデルの作成
ContentLocator.cs — GetContactPages
プレビューコントローラー.cs — インデックスアクション
StartPageController.cs — インデックスアクション
ブレッドクラム.cshtml そして ヘッダー.cshtml — 同じ変化

さらに詳細な制御が必要な場合は、EntryPoint プロパティを備えた IRoutableApplication を代替手段として使用できます。

SiteDefinition の移行は改良され続けています。以前のプレビューからのデフォルトのアプリケーション プロビジョニングとプレビュー モードと表示モードの間のホスト名解決の問題が解決されました。

ステップ 3: DAM の統合 (オプション)

プレビュー 4 では、Optimizely DAM 統合用の新しいパッケージが追加されています。 DAM は CMS 13 の基本的な部分ですが、DAM なしでも実行できることを認識しておくことが重要です。 CMS は依然として従来の意味で資産を保存できます。

CMS 12 と同様に、DAM 設定は、CMP でアプリケーションを作成することを直接要求するオプションを使用して処理され、そこから CMS で設定するための資格情報を取得できます。次の場所にある SSO ID も必要です。 設定 組織 一般 CMPで。

DAM 統合は、CMP REST API と直接通信しなくなりました。代わりに、外部ソースに基づいて構築されているため、CMS に接続されている Optimizely Graph インスタンスに DAM アセットのインデックスを作成する必要があります。したがって、以下のコードを接続する前に、Optimizely Graph がセットアップされていることを確認し、Optimizely サポートに連絡して DAM を Graph インスタンスに接続してください。オンボーディング手順 (DAM インスタンスの選択、アセット タイプのアクティブ化) は、CMS SaaS と同じプロセスに従い、次のドキュメントに記載されています。 DAM から CMS へのオンボード ガイド。 CMS 13 に固有の更新されたドキュメントは、リリース時に利用可能になります。それが完了すると、コンテンツ マネージャーを使用して、編集 UI から直接 DAM アセットを検出して選択できるようになります。

パッケージを追加します。

DAM UI を Startup.cs に登録します。

services.AddDamUI();

DAM HTML ヘルパーの名前空間を Views/_ViewImports.cshtml に追加します。

@using EPiServer.Cms.DamIntegration.UI.Helpers

これにより、DAM アセットをレンダリングするための RenderTagWithMetadata(…) などのヘルパーにアクセスできるようになります。すでに使用しているエピ プロパティ タグ ヘルパーは EPiServer.Cms.AspNetCore.TagHelpers からのものであることに注意してください。これは @addTagHelper 経由で _ViewImports.cshtml にすでに登録されているはずです。

次に、appsettings.json で CMP 資格情報を構成します (これらにはデフォルト値があることに注意してください。透明性のためにここに含めています)。

"Optimizely": {
  "Cms": {
    "DamUI": {
      "Endpoint": "https://cmp.optimizely.com",
      "SsoId": "",
      "NavigationUrl": "https://cmp.optimizely.com/cloud/library"
    }
  },
  "Cmp": {
    "Client": {
      "TokenUrl": "https://accounts.cmp.optimizely.com/o/oauth2/v1/token",
      "ApiUrl": "https://api.cmp.optimizely.com/v3/",
      "ClientId": "",
      "ClientSecret": ""
    }
  }
}

DAM ピッカーは複数選択もサポートするようになりました。これは、多数のメディアを扱う編集者にとって素晴らしい改善です。

CMS 12 DAM 統合からの移行

CMS 13 の GA リリースでは、CMS 12 スタイルの DAM 統合を新しいものに変換するスタンドアロン移行パッケージが利用可能になります。このパッケージは、既存の DAM アセット参照の移行を処理して、新しい EPiServer.Cms.DamIntegration.UI パッケージと連携できるようにします。

移行パッケージの最初のバージョンは以下をサポートします。
– ContentReference プロパティ
– アイリスト プロパティ

追加のプロパティ タイプのサポートは、将来のリリースで追加される予定です。

コンテンツ内での DAM アセットの使用

ページで DAM アセットを使用するには、UIHint.Image ヒントを含む ContentReference プロパティを追加します。

using EPiServer.Web;
using System.ComponentModel.DataAnnotations;

public class DamExamplePage : StandardPage
{
    [Display(GroupName = Globals.GroupNames.Content)]
    [UIHint(UIHint.Image)]
    public virtual ContentReference Image { get; set; }
}

ビューでは、他の CMS プロパティと同じパターンで、epi-property タグ ヘルパーを使用してレンダリングします。

ステップ 4: 対象者 (オプション)

オーディエンスは CMS 13 の別のパッケージです。プレビュー 3 で services.AddVisitorGroups() を使用していた場合は、新しい NuGet パッケージを追加してサービス登録を更新する必要があります。

パッケージを追加します。

次に、Startup.cs を更新します。古い AddVisitorGroups() 呼び出しは 2 つの個別の登録に置き換えられます。

using EPiServer.Cms.UI.VisitorGroups;
services.AddVisitorGroupsMvc().AddVisitorGroupsUI();

視聴者関連のバグもいくつか修正されています。ポリシーが見つからないエラーがなくなり、地理的位置基準が機能し、パーソナライズされたグループのコンテキスト メニューの位置が修正されました。

プレビュー 4 のその他の新機能

アップグレード手順以外にも知っておく価値のあることがいくつかあります。

グラフ.NET SDK

Optimizely Graph 用の新しい .NET SDK には、ファセット、キャッシュ、認証、追跡、オブジェクトからグラフへのフィールド マッピングをカバーする流暢な API が含まれています。拡張ポイントも ContentGraph.CMS に追加されているため、インデックス作成パイプラインに接続できるようになります。

SiteDefinition からの移行の改善

SiteDefinition からアプリケーション モデルへの移行が改善されました。設定 UI を使用したインプロセス Web サイトの作成が再び機能し、アプリケーションのスタート ページを選択するときに、入力されたコンテンツ タイプが正しく表示されるようになりました。

変更点の完全なリストについては、公式リリース ノートを確認してください。

2026 年 3 月 20 日

#CMS #プレビュー #プレビュー #からのアップグレード

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。