如何建立具有多个网站的Sitecore 8.1 MVC项目

如何建立具有多个网站的Sitecore 8.1 MVC项目,sitecore,glass-mapper,sitecore-mvc,tds,sitecore8.1,Sitecore,Glass Mapper,Sitecore Mvc,Tds,Sitecore8.1,我计划在一个visual studio解决方案中为2个网站设置Sitecore 8.1 MVC项目,因此我应该采用哪种方法: 方法1: 我应该在一个解决方案中创建两个MVC项目吗 Sample.SC.Model(C#类库) Sample.SC.Utility(C#类库) Sample.SC.Web.Website1(MVC项目)(该项目将包含布局、子布局以及特定于Website1的所有内容) Sample.SC.Web.Website2(MVC项目)(该项目将包含布局、子布局以及特定于Websi

我计划在一个visual studio解决方案中为2个网站设置Sitecore 8.1 MVC项目,因此我应该采用哪种方法:

方法1:

我应该在一个解决方案中创建两个MVC项目吗

Sample.SC.Model(C#类库)

Sample.SC.Utility(C#类库)

Sample.SC.Web.Website1(MVC项目)(该项目将包含布局、子布局以及特定于Website1的所有内容)

Sample.SC.Web.Website2(MVC项目)(该项目将包含布局、子布局以及特定于Website2的所有内容)

Aproach 2:

我应该只创建一个MVC项目,并将Website1布局和Website1子布局放在Website1文件夹中,将Website2布局和Website2子布局放在Website2文件夹中吗

Sample.SC.Model(C#类库)

Sample.SC.Utility(C#类库)

Sample.SC.Web.Website(MVC项目)

****Sample.SC.Web.Website节点下的文件夹结构****

布局

网站1(将包含特定于网站1的布局)

网站2(将包含特定于网站2的布局)

次级布局

网站1(将包含特定于网站1的子布局)

网站2(将包含特定于网站1的子布局)

我还计划在这个项目中使用GlassMapper和TDS


谢谢

我认为您正在寻找一个令人信服的技术理由来选择一种方法而不是另一种方法,但我不认为有这样的理由

最终,这两种方法一旦部署,将形成一个单一的网站。虽然人们有不同的偏好,但两者都会起作用

其中很大一部分将归结为两个站点之间的相似性和差异性。它们是完全独立和不相关的吗?如果是这样的话,您可能会发现选项1更可取,因为每个项目的混乱会更少

但是,如果这两个站点将共享元素,那么使用选项2进行管理可能会更简单


我不认为TDS/Glass的使用真的会影响您的决策。

我认为您正在寻找一个令人信服的技术理由来选择一种方法而不是另一种方法,但我认为没有任何理由

最终,这两种方法一旦部署,将形成一个单一的网站。虽然人们有不同的偏好,但两者都会起作用

其中很大一部分将归结为两个站点之间的相似性和差异性。它们是完全独立和不相关的吗?如果是这样的话,您可能会发现选项1更可取,因为每个项目的混乱会更少

但是,如果这两个站点将共享元素,那么使用选项2进行管理可能会更简单


我不认为TDS/玻璃的使用会真正影响您的决定。

我建议您在这种情况下使用Sitecore区域。 您将拥有如下图所示的结构:

有关Sitecore 8.1领域的更多信息,您可以找到

在“视图”文件夹下,您将有2个子文件夹:布局和子布局。 我建议不要命名文件夹子布局,因为如果是MVC解决方案,您不使用子布局,您将使用视图。 这是网站项目的结构(Sample.SC.Web.Website)
您可以在解决方案上创建多少个项目,但我不建议仅为模型创建项目。可以将模型添加到“区域”文件夹下

我建议您在这种情况下使用Sitecore区域。 您将拥有如下图所示的结构:

有关Sitecore 8.1领域的更多信息,您可以找到

在“视图”文件夹下,您将有2个子文件夹:布局和子布局。 我建议不要命名文件夹子布局,因为如果是MVC解决方案,您不使用子布局,您将使用视图。 这是网站项目的结构(Sample.SC.Web.Website)
您可以在解决方案上创建多少个项目,但我不建议仅为模型创建项目。可以将模型添加到“区域”文件夹下

我同意第二种方法,我认为第一种方法需要更多的努力来实施,原因如下:

  • 您必须单独发布每个站点

  • 可能每个站点都有DLL,这需要注意

  • 您必须处理这两个网站的文件,这样一旦部署,它们就不会被合并或替换。 例如:
    Website1>Css>site.Css
    Website2>Css>site.Css

  • 一旦部署,这些文件将相互覆盖

    因此,我认为在每个mvc项目中,您都必须这样做:

    Website1>WebsiteOneName>Css>site.Css
    Website2>WebsiteTwoName>Css>Site.Css

  • 每个站点都有web.config文件,这是您需要处理的。(两个都有一个配置文件)

  • 我同意第二种方法,我认为第一种方法需要更多的努力来实施,原因如下:

  • 您必须单独发布每个站点

  • 可能每个站点都有DLL,这需要注意

  • 您必须处理这两个网站的文件,这样一旦部署,它们就不会被合并或替换。 例如:
    Website1>Css>site.Css
    Website2>Css>site.Css

  • 一旦部署,这些文件将相互覆盖

    因此,我认为在每个mvc项目中,您都必须这样做:

    Website1>WebsiteOneName>Css>site.Css
    Website2>WebsiteTwoName>Css>Site.Css

  • 每个站点都有web.config文件,这是您需要处理的。(两个都有一个配置文件)

  • 我会选择方案1,原因如下:

    • 将来您将无法将一个站点迁移到另一个Sitecore安装,因为源文件绑定在一起。机智