2

我是 SharePoint 的初学者,在开始一个项目时需要一些帮助。我必须开发将交付给客户的发布网站。我想给客户端部署体验,就像他在部署标准 ASP.NET 应用程序时所获得的一样。我计划将 Visual Studio 2008 与 SharePoint 扩展以及 WSPBuilder 或其他一些工具一起使用。我还需要帮助构建整个项目。

这是我打算做的事情:
1. 开发最小的站点定义
2. 从这个定义创建站点。我应该如何从代码中做到这一点?使用 SharePoint 功能?我应该如何激活它?
3. 为站点(母版页、布局、内容类型等)开发所有需要的基础结构作为 SharePoint 功能。

这是正确的吗?我应该如何开发所有这些部分,以便我可以制作某种安装脚本,以便客户端可以一键创建完整的站点?

4

4 回答 4

3

毫无疑问,站点定义很复杂,但如果您需要部署到不相关的环境,它们非常有用。如果您停留在同一个服务器场上,则站点定义可能是多余的。如果您在域之间进行(即测试和产品,那么也许它们值得研究)。

站点定义的另一个优点,尤其是。如果交付给客户感觉更像是传统的交付物。他们将有一堆文件(希望在源代码控制中)是他们的自定义站点。我认为这给 IT 部门带来了比从 SharePoint UI 创建的 XML 文件更温暖的感觉。

站点定义的另一个好处是您可以更好地控制构成站点的页面。恕我直言,通过该站点模板的站点定义添加母版页和自定义 CSS 更容易。

我很好奇您要交付的网站的“移动部分”是什么?我认为回答这个问题将决定如何定义项目的结构。

一般来说,我认为你是在正确的轨道上。功能和解决方案是必须的。如果您尝试做任何复杂的事情,我会远离 VSeWSS,它的越野车和笨重而且通常很糟糕。它试图变得如此聪明,以至于你无法控制。

也就是说,这实际上取决于您要做什么。如果您打算使用一个程序集构建一个部署到 GAC 的解决方案,并且只构建 vsewss 支持的功能,您可能会很好。

但是,如果您想开发,比如说将计时器作业连接到 VSeWSS 功能框架中会变得很困难。此外,如果您在解决方案中需要多个程序集。YMMV,但我不得不放弃它并找到更灵活的解决方案(你好NANT)。

您最终要做的很多工作是构建、检查和重新检查 XML 配置文件。将 MSDN 上的Feature Schema参考页面添加为书签,您将花费大量时间来浏览它。

最后,是的,如果您将所有部件打包为功能部件,您应该能够开发一个不错的安装脚本。最终,脚本将需要调用创建站点结构、添加和部署解决方案以及激活功能所必需的STSADM (这里有一些非常好的 STSADM 扩展)命令。你可以从一个批处理文件开始,然后变得像你想要的那样复杂。

于 2009-02-25T15:33:30.037 回答
2

就我个人而言,我不认为创建站点定义对于我已经构建的站点真的有用。由于它们的复杂性,它们的设置可能非常棘手。

我所做的是使用标准发布站点,然后使用功能添加我的其他组件(通过 SharePoint 解决方案部署)。

您可以使用功能装订将功能连接到发布站点创建。

我还刚刚写了一篇关于如何以编程方式修改默认创建的工作流的博客文章:http ://www.aaron-powell.com/blog/february-2009/programmatically-modifying-sharepoint-workflows.aspx (在评论中也有一个链接到功能装订概念)。

然后我结合使用 SharePoint 解决方案安装程序 ( http://www.codeplex.com/sharepointinstaller ) 和批处理文件来安装组件。所有 SharePoint 数据库级别安装的 SSI 和文件系统内容的批处理文件。

于 2009-02-25T11:10:39.590 回答
2

添加另一个答案,因为我有 300 多个字符要说:(

RE:SharePoint 解决方案生成器,我再说一遍,您的里程可能会有所不同。

SharePoint 开发的最大问题是管理各种配置文件中的所有“魔术字符串”。GUID 和完全合格的程序集名称是将整个事物结合在一起的口水和胶水,尽管这一切都有意义,但很难管理。

当前的工具都试图减轻管理这些事情的复杂性,但它们要求您以某种方式工作,因此该工具知道如何注入适当的管道。

如果您打算使用 SharePoint 进行大量工作,那么您也应该学会自己管理管道。前期很痛苦,但确实有回报。

基本上,我建议你花时间学习平台而不是工具。一旦你了解了平台,使用这些工具就会容易得多。

如果您将其作为一次性参与并且只想完成它,我相信您可以获得您提到的任何工具来解决问题。

于 2009-02-25T16:24:18.807 回答
2

我同意使用开箱即用的发布网站定义,然后使用网站集功能(母版页、页面布局、CSS)和网站功能(创建列表、页面、子网站、定义网站的母版页)对其进行自定义, ETC...)。

当您想要自定义知名站点模板的新站点(允许用户创建新站点)时,功能装订非常有用,例如自定义“我的站点”外观。在这种情况下,我认为它不是很有用。

作为帮助完成这项任务的工具,我个人使用 STSDEV ( http://www.codeplex.com/stsdev ) 来帮助创建、编程、调试和部署我的 Sharepoint 解决方案。

首先,它为 Visual Studio 创建了一个好的项目(干净的,或者带有一些不错的“起点”定义)。然后它包括一些真正有助于在开发机器中安装、部署和升级的“构建配置”。

于 2009-02-25T18:25:08.470 回答