architecture - 多站点、多语言开放式解决方案的 Sitecore 6.4 架构的注意事项?

标签 architecture sitecore sitecore6

我正在考虑使用 Sitecore 6.4 的新克隆功能来帮助为多站点、多语言解决方案重用组件和内容。

基本思想是在 Sitecore 中创建一个中央内容存储库(可能以多种语言),然后可以将其克隆以提供区域站点,每个站点都有自己选择的支持语言。这背后的想法是允许区域轻松复制他们需要的内容并拥有它。通过克隆,他们将能够在不影响源数据的情况下在需要的地方编辑数据,选择省略与他们无关的项目(例如,在他们的国家/地区没有产品),添加完全特定的新内容到他们的国家并翻译成他们希望支持的任何区域方言(例如瑞士法语:fr-CH)等。

核心网站集将共享大部分源数据,尽管大多数语言版本控制发生在本地。

有没有人有过这种 Sitecore 部署的经验?有哪些陷阱?

然而,一旦建立了这种结构,开放性场景就会发挥作用。新网站,例如一个产品发布启动网站,可能会被添加到 Sitecore 实例中,我们希望它们在适当的地方共享内容、模板、演示文稿等(尽管程度远低于核心网站)。

虽然克隆允许复制内容并有可能在其本地实例中修改该内容,但我正在尝试找到一种方法来允许对模板进行类似的过程。是否可以使用模板继承的基本模板功能来创建一层“抽象”模板,这些模板将在用于创建项目的具体模板中实例化?同样,这里的想法是在共享核心功能的同时允许本地灵 active 。我们的目标是保持一组干净的抽象模板,并且只在它们的本地实例化版本中引入修改。如果从抽象模板派生的所有模板都需要一个新字段,那么可以在抽象级别添加它。

我们希望尽可能保留 Sitecore 开箱即用的功能。

这种方法是否可行,或者我混合了我的范例?当我们仍处于预设计阶段时,我应该考虑什么?我需要为开发人员建立什么样的设计规则?

最佳答案

回答我自己的问题,感谢 John 的一些指点。

经过一些研究,并在 SDN 论坛上留下了有用的评论,看来这种方法在很大程度上是可行的。

使用克隆可以创建一个中央数据存储库,而不是将数据物理复制到将共享它的站点。也可以覆盖克隆中的数据以提供本地特定内容。这可以按字段级别在字段上完成,这样克隆项目的一个字段仍然继承自其父项,而另一个特定于出现克隆的站点。

这将允许本地站点复制默认站点的结构和布局,同时保持其自身内容要求的灵 active 。这也可以跨多种语言实现。

更新: Unresolved 一个主要问题是如何处理将格式化为 URL 的内部链接。例如,如果链接包含在富文本字段中,它将引用项目的 GUID。克隆时,此 GUID 将相同,即使它指向父结构,而不是克隆结构。编辑链接将破坏该字段的克隆引用,因此不会将对父项的更新推送到克隆。这个问题没有简单的解决方法,尽管可以扩展 LinkManager 以查找克隆引用而不是仅仅生成 URL。这是一个重大的缺点,甚至可能是一个阻碍。

似乎没有任何简单的方法来实现真正的抽象模板(即没有关于项目的克隆方法)但是有可能提供一个基于一组干净的基本模板的半途解决方案,这些模板可以被继承本地版本。这样做的主要问题是克隆的项目会自动与创建其父项目的模板相关联,而不是与本地版本相关联。将克隆的项目模板更改为本地版本是可能的(如果我们对自定义 Sitecore 克隆过程感到满意,甚至可以自动执行)。如果没有自动化,这将不可避免地导致站点维护增加和用户错误的可能性。由于本地模板仍将继承自基本“抽象”模板,我们将能够通过更改抽象模板来实现对所有站点的更改。

此类架构的另一个挑战是确保所有项目引用都是相关的,以便每个站点上的产品链接都将指向该站点的产品,而不是中央存储库中的产品数据集。开发人员的设计指南将包括一项要求,即所有数据源路径都可以在 Sitecore 中直接配置(例如通过使用渲染的数据源字段)。

由于克隆功能仍然相对较新,因此似乎还没有太多的经验。然而,这种类型的数据重用是将克隆添加到 Sitecore 的原因。

这种方法的主要缺陷似乎是需要全面评估设计对不同本地站点的影响,从而导致开发和代码维护的复杂性增加。

关于architecture - 多站点、多语言开放式解决方案的 Sitecore 6.4 架构的注意事项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4714838/

相关文章:

javascript - 带有 Sitecore 页面编辑器的 Jquery

sitecore - 无法访问 Sitecore 中的自定义模板字段数据

sitecore - 模板标准值的布局详细信息的继承

asp.net - 带有 MVC 的 Sitecore 'dynamic placeholders'

continuous-integration - 如何保持 Sitecore 数据库一致?

iphone - 如何最好地存储 SNMP 消息并将其发送到 ios?

performance - Parallela FPGA-与 GPU 和昂贵的 FPGA 相比,64 核的性能如何?

c# - 3 层架构 - 将 sql 查询放在业务层是否可以

安卓架构模式

azure - SitecoreContext 和 Azure 索引