开发SharePoint工作流时如何改善编辑-编译-测试循环?

开发SharePoint工作流时如何改善编辑-编译-测试循环?

How can I improve the edit-compile-test loop when developing a SharePoint workflow?

最近我不得不开发一个SharePoint工作流,并且我坦白地发现,这种经历是我曾经必须解决的最痛苦的编程任务。我遇到的一个大问题是必须在调试器中逐步解决该问题时遇到的问题。

此处有一篇有关如何调试SharePoint工作流的文章,告诉您如何设置断点等。这涉及将.pdb文件与包含您的工作流的.dll文件一起复制到GAC中。您必须从命令提示符(或批处理文件)中执行此操作,因为Windows资源管理器不允许您查看c:\\\\ windows \\\\ assembly的相关子目录。

但是,如果执行此操作,则下次尝试在Visual Studio中部署工作流时,它会抱怨它无法部署,因为"文件可能未签名",并且尝试复制新文件。 dll版本插入GAC,它告诉您.dll文件已锁定。

我发现有时候可以通过iisreset来解决这个问题,但是在其他情况下,您必须重新启动Visual Studio,并且在很多情况下,我什至不得不完全重新启动计算机。因为某些神秘过程已将文件锁定。另一方面,当我不使用调试器时,一切正常。

有谁知道比这更简单的调试工作流的方法吗?


当我开始使用WSPBuilder时,在一般情况下(不仅是工作流),我开发SharePoint解决方案的速度要快得多。 WSPBuilder有一个称为WSPBuilder Extensions的Visual Studio插件,我认为WSPBuilder Extensions比臭名昭著的Windows SharePoint Services 3.0工具(Visual Studio 2008扩展版本1.2)做得更好。借助WSPBuilder菜单,只需单击一下鼠标,即可部署/升级/卸载解决方案!


真正有帮助的一件事是,SharePoint团队是否为运行SP工作流所需的特定于SP的工作流服务提供了接口。这将允许您模拟那些接口并在SP适当的外部运行工作流。 AFAIK,您今天不能这样做。

我个人发现,要针对SharePoint进行开发非常痛苦,这不仅限于工作流,还涉及整个工作。我了解管理方面的优势和最终用户的工作效率,但是对于Joe .NET Developer来说,这是一个非常可怕的经历。


SharePoint团队目前正在研究VS 2008的MOSS扩展,它将允许这种功能。在具有MOSS扩展名的VS 2005中可用,但是必须在Windows Server上运行且具有完整的MOSS安装并设置了正确的权限。


我不确定您是否需要将pdb文件放入GAC。 (至少,我将要描述的修复程序对于在VS2005中调试SharePoint Web部件非常有效,它具有类似的问题。)

在"工具"->"选项"->"调试"中有一个标记为"仅启用我的代码(仅受管理)"的复选框;如果您取消选中它,Visual Studio会很高兴地从构建它们的bin \\\\\\\\ Debug文件夹中加载您的pdb \\。大概。无论如何都可以尝试...


关于加快IIS重置的速度,Andrew Connell也在此处提供了一些技巧
http://www.andrewconnell.com/blog/archive/2006/08/21/3882.aspx

这使我的IIS重置时间从10秒减少到不到2秒。


通过Ted Pattison,Andrew Connell,Scot Hillier等SharePoint MVP在CodePlex上查看STSDev。

STSDEV is a proof-of-concept utility application which demonstrates how to generate Visual Studio project files and solution files to facilitate the development and deployment of templates and components for the SharePoint 2007 platform including Windows SharePoint Services 3.0 (WSS) and Microsoft Office SharePoint Server 2007 (MOSS). Note that the current version of the stsdev utility only supports creating projects with the C# programming language.

基思


推荐阅读