我需要确定一种在 SharePoint 网站中存储内容子集的方法,以便在我删除并重新创建某些列表作为功能激活的一部分时,我可以将所有这些内容重新插入到它应该属于的位置。我自己有一个想法,但我不知道这是否是唯一的方法,更重要的是,正确的方法。
我的客户让我为他们创建一个 SharePoint 系统,以便与他们的客户进行通信。业务流程可能有 5 个阶段(可能更多,我什至不知道,因为他们没有告诉我一切),而我过去几个月编写的当前系统可能是 2 个阶段。这满足了我们在下周一之前完成这些系统的最后期限......但那时我的客户正计划从那时起让网站上线。
实际上,他们与客户的工作将与我为他们的工作并行进行。当我在单独的测试服务器上完成自己的工作时,我会将流程的每个后续阶段推送到实时服务器上。在非工作时间(如周末)安排的停机时间可供我执行这些推送。跟上步伐以使我的开发比实际业务流程更快是我自己的问题和题外话......所以让我们回到我在本文开头所说的问题。
在这个系统中,我们有一组功能,它们会在激活时为其关联的内容类型和字段类型创建列表,并在禁用该功能时删除这些列表。大多数更新不需要停用和重新激活这些功能,例如工作流程更改、自定义操作、自定义表单和类似的东西。但是有些部分确实需要这样做。在我的测试服务器上,我可以删除列表,但是一旦网站上线并且有真实的通信数据,这样做是绝对不能接受的。因此,当我需要实现新的功能更改时,我需要能够将当前存在的数据存储在多个列表中,停用该功能,重新激活该功能,并恢复所有这些数据。
也许我已经用我自己实现的功能系统提升了自己。不幸的是,后来需要制作几个这样的“项目站点”,这意味着我必须在编写大量代码时牢记“可以重复部署”的概念。
我目前的计划是遍历列表和库,这些列表和库会受到要重置的特定功能的影响。文件及其所有版本将保存在服务器上的目录中。然后,将使用一组文本文件来存储项目的所有重要字段值。这包括许多需要维护的跨列表引用查找,但这很简单。然后,我停用该功能、部署新解决方案并重新激活该功能。我们按照版本指定的顺序上传所有文件,并使用这些版本的存储字段更新它们,以便我们保留版本结构。在第一次上传每个文件时,会挑选出新 ID,并更新其余文件中的所有相关查找(以某种方式,我确保我不这样做' 当然,稍后用不正确的值重新更新它)。之后,我们按照最有利于保持关系数据正确的顺序遍历所有其余项目。这大致总结了我目前的计划是什么。对我来说,系统中没有长时间运行的工作流会受此影响,所以当我做这些事情时,我不必担心确保没有任何东西“仍在运行”。
我真的不知道这种方法的所有缺点......我可以想象它们非常重要。但我不确定我还有什么其他选择,而且我的搜索也没有出现任何结果。有没有人能想到更好的主意?或者有人会告诉我,我真的别无选择?提前致谢!