Соображения относительно архитектуры Sitecore 6.4 для многоязыкового открытого решения? - PullRequest
3 голосов
/ 17 января 2011

Я рассчитываю на использование новой функциональности клонирования Sitecore 6.4, чтобы помочь с повторным использованием компонентов и контента для многоязычного, многоязычного решения.

Основная идея состоит в том, чтобы создать центральное хранилище контента в Sitecore (возможно, на нескольких языках), которое затем можно клонировать для предоставления региональных сайтов, каждый со своим собственным выбором поддерживаемых языков.Мысль, стоящая за этим, состоит в том, чтобы позволить регионам легко копировать контент, который им требуется, и стать владельцем этого ресурса.С помощью клонирования они смогут редактировать данные там, где они нужны, не затрагивая исходные данные, предпочитая исключать не относящиеся к ним элементы (например, если продукт не был доступен в их стране), добавлять новый контент, который был совершенно специфичнымв свою страну и перевести на любые региональные диалекты, которые они хотели бы поддержать (например, швейцарский французский: fr-CH) и т. д.

Основной набор сайтов будет иметь большую долю исходных данных, хотя и с большинством языковых версийпроисходит локально.

Кто-нибудь имел опыт такого развертывания Sitecore?Каковы подводные камни?

Как только эта структура была создана, сценарий открытости вступает в игру.К экземпляру Sitecore могут быть добавлены новые сайты, например, сайт-заставка для запуска продукта, и мы ожидаем, что они будут обмениваться контентом, шаблонами, презентациями и т. Д., Где это уместно (хотя и в гораздо меньшей степени, чем основные сайты).

Хотя клонирование позволяет реплицировать контент с возможностью модификации этого контента в его локальном экземпляре, я пытаюсь найти способ разрешить аналогичную процедуру для шаблонов.Можно ли использовать функцию базового шаблона наследования шаблонов для создания слоя «абстрактных» шаблонов, который будет создаваться в конкретных шаблонах, используемых для создания элементов?Опять же, идея здесь заключается в том, чтобы обеспечить локальную гибкость при совместном использовании основных функций.Нашей целью было бы сохранить чистый набор абстрактных шаблонов и вносить изменения только в их экземпляры, созданные на локальном уровне.Если для всех шаблонов, производных от абстрактного шаблона, требуется новое поле, это можно добавить на абстрактном уровне.

Мы надеемся, насколько это возможно, продолжать использовать Sitecore из коробки.

Этот подход вообще выполним, или я перепутал свои парадигмы?Какие соображения я должен иметь, пока мы все еще находимся на стадии предпроектной подготовки?Какие правила дизайна мне нужно установить для разработчиков?

Ответы [ 2 ]

2 голосов
/ 07 февраля 2011

Отвечая на мой собственный вопрос, с благодарностью Джону за некоторые советы.

После некоторых исследований и оставленных полезных комментариев на форуме SDN кажется, что этот подход в значительной степени осуществим.

С помощью клонов можно создать центральное хранилище данных, а не физически реплицировать данные на сайты, которые будут обмениваться ими. Также возможно перезаписать данные в клоне, чтобы обеспечить локальный специфический контент. Это можно сделать для поля по уровню поля, чтобы одно поле клонированного элемента оставалось унаследованным от его родителя, а другое - для сайта, на котором появляется клон.

Это позволит локальным сайтам копировать структуру и макет сайта по умолчанию, сохраняя при этом гибкость в соответствии с собственными требованиями к контенту. Это также может быть достигнуто на нескольких языках.

ОБНОВЛЕНИЕ: Одна из основных нерешенных проблем заключается в том, как обрабатывать внутренние ссылки, которые будут отформатированы в URL-адреса. Например, если ссылка включена в поле расширенного текста, она будет ссылаться на GUID элемента. При клонировании этот GUID будет таким же, даже если он указывает на родительскую структуру, а не на структуру клона. Редактирование ссылки нарушит ссылку на клон для этого поля, поэтому обновления родительского элемента не будут переданы клону. Простого обходного пути для этой проблемы не существует, хотя можно было бы расширить LinkManager для поиска ссылки на клон, а не просто для создания URL-адреса. Это существенный недостаток, возможно, даже шоу-стоппер.

Похоже, не существует простого способа реализации истинных абстрактных шаблонов (т.е. нет метода клонирования, как для элементов), но можно было бы обеспечить промежуточное решение на основе чистого набора базовых шаблонов, которые могут наследоваться локальные версии. Основная проблема заключается в том, что клонированные элементы будут автоматически ассоциироваться с шаблонами, из которых были созданы их родители, а не с локальной версией. Изменение шаблонов клонированных элементов на локальную версию было бы возможно (даже автоматически, если мы были довольны настройкой процедуры клонирования Sitecore). Без автоматизации это неизбежно приведет к увеличению обслуживания сайтов и возможности ошибки пользователя. Поскольку локальные шаблоны будут по-прежнему наследоваться от базовых «абстрактных» шаблонов, мы сможем внести изменения во все сайты, изменив абстрактный шаблон.

Еще одной проблемой для такой архитектуры является обеспечение того, чтобы все ссылки на элементы были относительными, чтобы ссылка на Продукты на каждом сайте приводила к этим сайтам, а не к данным о Продуктах в центральном хранилище. Рекомендации по разработке для разработчиков будут включать требование, чтобы все пути к источникам данных были непосредственно настраиваемыми изнутри Sitecore (например, используя поле источника данных рендеринга).

Поскольку функция клонирования все еще относительно нова, похоже, что у нее пока нет большого опыта. Однако этот тип повторного использования данных является причиной клонирования, добавленного в Sitecore.

Основным недостатком такого подхода, по-видимому, является необходимость полной оценки воздействия дизайна на различные локальные сайты, что приводит к усложнению разработки и обслуживания кода.

1 голос
/ 21 января 2011

Некоторые ответы в Sitecore Developer Network (SDN) ветка форума .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...