【发布时间】:2014-07-11 15:55:36
【问题描述】:
我知道有人就多站点 Sitecore 实例中的站点隔离提出了类似的问题,尤其是在提到 Tim's multi-site solution 的地方,但在尝试完全实现 Tim 的代码之前,我正在寻求进一步的澄清。
我们目前正在使用一个包含近十个站点的 Sitecore 实例。我们有一个单一的 Visual Studio 解决方案,它以一种或另一种方式将所有站点提供给一个代码库,这样所有 DLL 都是公用的,任何其他文件也可以是公用的。我们或多或少地开始通过将所有站点分解为他们自己的项目来处理这个问题,他们的每个项目结构都反映了单一的最终结构。这仅允许在修改 .csproj 文件等项目时减少“流失”,从而减少与其他并行工作的开发人员的冲突。虽然这绝对是一个不错的项目,但它比我们真正追求的更方便。
对于更多背景知识,我们在一个“流”中总共有五个 Sitecore 实例,它们是本地开发者的实例、开发实例、暂存实例,然后是两个生产实例。我们正在使用 Git 管理更改。
目前我们无法进行编译更改,比如对任何代码隐藏的更改,因为它适用于一个站点中的一个项目(这不会影响其他站点的功能),并且在部署该编译更改时无需其他必须依赖该 DLL 的站点。这成为问题的主要方式是,我们无法保证在推出任何代码时所有站点仍将运行;对单个站点的任何更改都可能同时破坏所有站点。在某些情况下,我所做的代码更改被错误地部署到破坏所有站点的开发中,因此这是一个完全实现的问题。我们也不想在每次代码更改时都测试每个站点,因为在不久的将来我们可能在 Sitecore 中拥有超过 30 个站点。
也许 Tim 的多站点解决方案可以做到这一点,但有没有办法真正隔离站点,使它们不依赖于相同的 DLL?那么我们是否可以为每个网站提供单独的 Visual Studio 解决方案(我觉得这很理想)?我已经看到其他答案提到蒂姆的解决方案是“孤立的”,但这对我来说太模棱两可了。 Tim 的解决方案在多大程度上“隔离”了站点?有没有更好的解决方案?
【问题讨论】: