我们正在设置首次迁移到Sitecore。我们有多个多语言网站,其内容存储在具有LCID的数据库字段中。用户控件使数据库调用显示不同的语言内容。我们正在将我们的内容迁移到Sitecore项目,并希望利用Sitecore API从我们的用户控件中获取内容以构建数据结构。
我想知道如何为Sitecore开发构建Visual Studio项目,以便使用现有的VS解决方案。我们是否将Sitecore .dll和配置复制到所有解决方案,或共享一个Sitecore安装?
另外,如何在生产中安装所需的文件以支持在IIS中作为单独的网站存在的多个站点?我们是否必须在每个网站的单独/sitecore
文件夹中包含所有必需的.dll和配置文件的副本,或者我们共享一个文件夹,每个站点中的虚拟文件夹指向相同的物理{{1}文件夹?
答案 0 :(得分:6)
根据我的经验,只有在您没有以下内容的情况下,使用Sitecore的多个网站的“1个IIS网站下的所有内容”才有效:
如果您有这些要求中的任何一个,它们必须是IIS中的不同网站(或者必须在IIS之外处理要求)。
至于你如何设置它,要记住的一件事是我们被告知在服务器上多次安装Sitecore需要不同的/多个许可证。
因此,对于我们来说,我们必须与IIS中的多个站点共享相同的安装,因为我们有这两个要求(并且只有一个许可证)。我们让所有网站共享相同的Sitecore安装(共享所有文件,包括DLL和web.config)。对此的回顾是:
答案 1 :(得分:4)
一般情况下,我们建议在1个IIS网站下运行所有内容。这样可以节省大量配置和部署问题。除此之外,使用多个网站并不是必要的表现。
设置项目可以非常直接地完成。只需确保将构建目标设置为Sitecore安装的/ Website / bin-folder。如果是这样,您就可以重复使用任何东西。 您可以将Sitecore.Kernel链接为Visual Studio中的解决方案项。
总体而言,我认为您应该咨询当地的Sitecore办公室,与您一起考虑设置此解决方案。由于我们对这类迁移有经验,我们很乐意为您提供正确的建议并讨论所有选择。
答案 2 :(得分:2)
我的试金石是,如果我可以用Sim工具创建一个网站并部署我的项目代码和项目,我的网站是否有效?在某些情况下,我们从Sitecore using PowerShell提取生产/阶段内容,将包复制到Nuget服务器并使用PowerShell将其部署到开发/ CI。
要创建网站,我使用了Sim工具和命令行或Powershell script。
你并不孤单沮丧。我遇到过几个客户,他们的解决方案中包含了Sitecore网站。部署和升级总是非常困难。但是,如果您设计的解决方案不包含实际的Sitecore文件,并且可以通过CI部署到空白站点。那你就会很好。
答案 3 :(得分:1)
问题2:
我们使用Helix guidelines / Habitat,它似乎是Sitecore最佳实践的来源。 sitecore的所有培训都表示要在Sitecore之外创建一个项目,并且只根据需要导入项目。 对于配置,我建议您快速阅读this
SSL确实如此,应用程序池可能成为一个问题。部署到一个客户的站点将降低所有,取决于设置。
如果您使用多实例,则需要查看您的sitecore许可。
答案 4 :(得分:1)
根据我的理解,我可以看到你有两个问题:
<强> 1。如何构建Sitecore项目
我是Sitecore开发人员超过3年,根据我的经验,最好的实践是创建一个Sitecore项目,这是您解决方案的最高层 您不需要将sitecore dll安装到所有项目,只需保留旧代码并将其转换为基本代码即可。例如,我刚刚完成了一个客户希望使用Sitecore转移到的项目, 解决方案已经存在,它有4个项目:
我们创建了一个应该安装Sitecore dll的新项目,它实际上取代了包含所有Sitecore MVC代码的ABC.Web(最高层),并且没有将任何内容更改为旧代码。 从那时起,我们可以处理来自旧系统的数据(通过引用ABC.Services dll)和Sitecore的数据。
<强> 2。如何在生产中安装所需的文件以支持多个站点?
Sitecore通过结构化Sitecore内容树和litte配置来支持多站点。你不需要在IIS中创建separeate网站, 它们实际上是一个具有不同域名的网站。在名为SiteDefinition.config的配置文件中(或者您可以添加自己的配置文件),您基本上设置了一个带有开始项目的域。 Sitecore识别与配置文件中的域匹配的域,并将重定向到 相应的开始项目。例如。在图像中,我创建了2个站点(基本上,它们是sitecore内容树的2个分支),其中的起始项是(MySite1和MySite2)
这是我的配置
<sites>
<site name="MySite1" patch:before="site[@name='website']"
virtualFolder="/"
physicalFolder="/"
rootPath="/sitecore/content"
startItem="/content/MySite1/home"
database="web"
domain="extranet"
allowDebug="true"
cacheHtml="true"
htmlCacheSize="50MB"
enablePreview="true"
enableWebEdit="true"
enableDebugger="true"
disableClientData="false"/>
<site name="MySite2" patch:before="site[@name='website']"
virtualFolder="/"
physicalFolder="/"
rootPath="/sitecore/content"
startItem="/content/MySite2/home"
database="web"
domain="extranet"
allowDebug="true"
cacheHtml="true"
htmlCacheSize="50MB"
enablePreview="true"
enableWebEdit="true"
enableDebugger="true"
disableClientData="false"/>
</sites>
您可以参考本教程了解更多详情
https://briancaos.wordpress.com/2010/03/01/working-with-multiple-sites-in-sitecore/