它的一个旧的战斗之间的ITpro和开发。ITpros恨他们由于升级的问题,就像自由,这使他们不必做家清洁与特征吻合.

什么是你的偏好,当你用什么?

当你坚持OOTB特殊和差别待遇如何,你添加自定义的?

我个人更倾向于仅仅使用定义的特殊和差别待遇在做web content manager(获得身份证),或者在极少数情况下,当一个子内联网网站收集需要被清理过多的文物。

最近,当我customie OOTB STD我宁愿自定义供应商(在两个根本的网站和分网站的)组合与功能接收器最大的灵活性。在我最新的项目,我们甚至没有一般养恤金计划可能被用XML在这里你可能设立的默认页,什么样子的网站模板页面布局应该是可见的,实例清单,并列出项目的编程方式,是什么网部件提供的,不同的配置,如审计启用,导航配、角色定义等。

让我知道你最喜欢的方式这样做,为什么你喜欢做这样的。

[标社区wiki]

有帮助吗?

解决方案 6

好的,因此在SharePoint 2010中,该领域有一个新播放器:自定义Web模板。

我现在几乎只使用它们,而不是自定义站点定义。

Web模板比自定义站点定义提供了一些好处:

优点

  • 可以升级清单(在网站DEFS上不支持这一点!)
  • 可以在沙箱中运行,因此可以用于在线共享(站点防御不能!)
  • 支持农场和现场收集范围进行颗粒部署
  • 更好的升级承诺,因为网站似乎是使用OOB站点定义创建的

缺点

  • 还有一点越野车!本地和SubWeb属性当前不起作用
  • 功能主食不起作用(由于没有ID可以固定),这确实不是一个问题,因为您可以以支持的方式编辑Onet.xml ...
  • 没有OOB来确定使用哪种Web模板来提供网站(在Web属性上设置ID)
  • 不支持站点变化

对于SharePoint 2010,自定义Web模板应该是您的默认选择!在某些情况下,您仍将使用自定义站点定义,但列表很简短。

要了解有关自定义网络模板的更多信息,请阅读Vesa Juvonen的这两篇文章:
站点定义与网络模板
SharePoint 2010和Web模板

其他提示

完美的站点定义是空的。内置的模板除了最简单的解决方案外,没有任何东西。即使客户完全想要团队网站模板中的内容,我仍然将其重建为WSP解决方案,并依靠代码。

代码 要走的路,因为它可以使管理员想要什么以及开发人员需要什么。后者更重要,因为好的开发人员将使管理员工作变得容易。

升级性也很少是一个真正的问题,因为创建新解决方案而不是围绕WSS3中的升级问题起作用。但是,WSS4大大提高了升级性并引入了功能版本操作,以允许在不同站点同时运行的同一功能的多个版本。

我想我实际上会写一篇博客文章...

.b

我一直都有编程。在Teched Australia 2009,我在此主题上发表了演讲,仍在等待网络演员上线。会建议观看它,观看我的博客以获取公告。

只是为了增加讨论,SharePointDevwiki有两个相关页面:CAML vs编程代码 站点模板与站点定义与功能

目前我更喜欢使用"最小的网站def"只是为了得到一个Id,然后使用收添加酷的东西。这主要是由于事实,我认为我得到这份工作做的更快,你可以升级的解决方案更容易(和支持的方式)。

我写了一片关于这一两天前 避免基于Xml SharePoint功能使用的API的方式.

在执行发布网站(WCM)时,我认为您确实需要使用网站DEF,如果没有其他信息可以获得ID,但是我喜欢将其保留为空并为其他所有内容使用功能,通常是编码功能接收器来进行批量进行批量操作工作。

不过,整个夏天,我开始相信一些非常聪明的SharePoint设计师,让他们入侵并写很多声明的CAML可能会有一些好处 - 这里的前提是,即使我更容易写作,功能接收器,在让设计师/品牌专家进行发布网站的情况下,实际上,他们声明地修改内容比编写C#代码更容易。我不知道,实际上还没有测试过这一理论。

我不买的是您不应该使用站点DEF的想法,因为它会更难升级。尽管过去可能是正确的,但各种各样的事情升级了艰难的升级,几乎不会被淘汰。

我喜欢使用站点定义和功能来提供内容。我只需要权衡工作所需的东西。如果我知道网络的要求将包含在几个列表中,那么我会使用一项功能并使用OTB站点DEF。如果Web是完全自定义或需要许多功能的,我将从与我的基本功能紧密匹配的站点DEF开始,然后编写一些功能以交付其余功能。网站定义应用于交付功能更难完成的内容,例如不同的主页,主题,默认值。以及按什么顺序。现在,具有CAML和接收器代码的功能是平衡行为。有时,您可以在CAML中进行操作,但是用代码编写更快,反之亦然。我相信声明性的CAML更容易捕获来源控制和服务器调整,但是并非所有事情都可以在CAML中完成,例如Web零件连接并安装某些Web零件。每当您有机会定义自己的ID时,就可以做到这一点 - 它使支持和扩展变得更加容易。

就个人而言,我更喜欢使用精益站点模板,然后使用功能钉。我通常会创建一个父型功能,该功能对几个儿童功能具有激活依据。然后,我将该父功能列入任何站点定义。我喜欢这样的原因是我可以停用并重新激活该功能以更新现有站点。它还使我可以使用CAML和最小编码来创建很多。

我一直在使用spwebprovisioningprovider,以控制我想要的何时和按顺序激活的功能。我认为更容易去开发和调试站点,并列出配置,然后使用onet.xaml和caml。

我使用站点模板(并回应上面的详细信息来保持它们清洁和链接功能)的一个原因是,我喜欢从创建站点页面中选择自定义模板的最终用户体验。添加新的WebTemp文件很容易,复制空白的站点模板并修改它很容易。它允许项目(如果需要自定义模板)可以快速起床并快速进行,您可以快速完成第一个WSP自动化,并在需要挖掘任何C#代码之前通过整个DEV生命周期进行工作。

如果项目要求我需要修改OOB站点,例如MySite,那么我将始终走特征钉路由。

我制定了我自己的小框架(太大的字)实现完全的升级,我的解决方案。这是主要问题,对于大多数我的客户。

在短:我喂我的框架,在功能上(de)活化一些非常简化的加枫的定义和我已经涵盖代码中的大部分通常需要的东西(增加/升级列出、接收机、内容类型的网站列等)。通过改变我的定义,并通过恢复功能,我可以容易地做出必要的升级,已经部署的解决方案(这是其中一个主要目标).我使用额外的代码,在征收机做其他所有的'东西'这不是我的框架。

我喜欢它这样做的方式,因为通过使用代码,我在完全充电的一切,我可以很容易地找到错误,我可以解决一些复杂的方案在很短的时间内,我可以重复使用的任何解决方案提供方便。

许可以下: CC-BY-SA归因
scroll top