SharePoint网站模板的效率是否真的低于网站定义?

Jim*_*Jim 5 performance sharepoint site-definition sitetemplate

因此,在SharePoint博客圈中似乎每个人都只是从其他博客复制并粘贴相同的项目符号.我看到的一个要点是,SharePoint网站模板的效率低于网站定义,因为网站定义存储在文件系统中.真的吗?

网站模板效率较低似乎很奇怪.我的理解是,无论您使用网站模板还是网站定义,所有网站内容都存在于数据库中.站点模板一次应用于数据库,从那时起,站点不应该关心内容是否是使用站点模板创建的.

那么,网站模板效率低于网站定义的架构原因是什么?


编辑:链接到博客,说有性能差异:

  • 来自MSDN:由于将模板存储在数据库中并从数据库中检索模板很慢,因此网站模板可能会导致性能降低.
  • 来自DevX:但是,SharePoint中的用户模板可能会导致性能问题,如果您尝试为整个组织创建一组可重用模板,则可能不是最佳方法.
  • 来自IT足迹:由于将模板存储在数据库中并从数据库中检索模板很慢,因此网站模板可能会导致性能降低.每次呈现页面时都会编译和执行数据库中的模板.
  • 品牌SharePoint:自定义网站定义比自定义模板具有以下优势:
    • 数据直接存储在Web服务器上,因此性能通常更好.

至少,我认为上面的文章是不完整的,我认为根据我对SharePoint架构的了解,有些文章会产生误导.

我读了另一篇反对性能差异的博客文章,但我找不到链接.

Dan*_*son 4

使用网站模板与网站定义的性能影响通常被夸大了。

为什么?

好吧,让我们举个例子:

  1. 您采用团队网站站点定义。
  2. 您将其另存为新的站点模板
  3. 然后,您可以基于此新网站模板创建一个新的子网站。

你有什么?好吧,要记住的重要一点是“重影”发生在页面级别,而不是站点级别。由于您没有自定义任何页面,因此您访问的任何页面仍然直接来自站点定义,直接来自文件系统。

想要证明这一点,这里有两个测试:

第一次测试

  1. 尝试修改原始站点定义中的default.aspx页面。
  2. 检查您的网站模板,注意您看到了修改。
  3. 它对文件系统来说仍然是“幽灵”

第二次测试

  1. 创建新的站点定义。
  2. 基于此新站点定义创建一个新站点。
  3. 创建一个新的站点模板
  4. 将网站模板发送给使用 SharePoint 的伙伴,并要求他们基于该模板创建一个新的子网站。

它会失败。为什么?因为他们的机器上不存在站点定义。

那么,回到您的问题:“SharePoint 网站模板的性能真的不如网站定义吗?” 我的回答是:“性能考虑不应在您决定使用网站定义或网站模板时发挥作用,您的功能目标应该发挥作用”。现在它引起了争议,但对我来说,很少有理由选择站点定义而不是创建功能。

就“鬼魂”而言。是的,定制后您的页面将存储在数据库中,是的,您将必须进行数据库往返才能获取它。但是,SharePoint 很智能,当然会缓存此内容。所以,从理论上讲,是的,它的速度较慢,但​​在实践中,没有人真正注意到。

重影自 2003 年以来就已经出现在产品中(可能在那之前就出现在 STS 中,不记得了),我从未见过关于它对性能影响的官方指南,也没有人在“它速度较慢”的评论之外进行猜测。

这让我相信,这并不是真正值得担心的。“幽灵”页面更大的担忧是维护它们所带来的困难,但是,对于 2007 和母版页来说,这是一个小得多的问题。