SharePoint 2013 workflow 开发 SharePoint Designer 2013 vs. Visual Studio
SharePoint 2013 支持两种主要的工作流开发方式:SharePointDesigner 2013 和 Visual Studio 2012. 本文将概述这两种方式以及对比SharePoint2010 workflow 开发所做的增强,并讨论它们各自的优缺点。
SharePoint 2013的workflow基于WF4.0并引入了workflowmanager. 这个workflowmanager有自己独立的服务器场和数据库,可以安装在和SharePoint2013 场不同的服务器上面。workflowmanager 场中也可以很多server,可以负载均衡,还可以部署到Azure上面,workflowmanager场和SharePoint2013 的场并不存在从属关系,两者是协作关系,因为为SharePoint2013 提供宿主环境只是workflowmanager的应用之一,它也可以为其它的系统提供基于WF4的Workflow的宿主环境,我们甚至可以将一个企业内部的所有 WF4工作流都托管于一个workflow manager场中,这样的workflow manager场就成了企业工作流中心了,和我们过去提到的数据中心平级了。如何安装和配置workflow manager这里不细讲了,博友可以根据自己的需求参考 http://technet.microsoft.com/en-us/library/jj163276.aspx
这里需要注意的是SharePoint2013还是兼容SharePoint2010的工作流模式的,该类工作流仍然由SharePointfarm提供宿主环境。但是兼容SharePoint2010的工作流不能使用WF4的新特性 (比如使用XMAL描述和声明式语法),因为他仍然使用的是.Net3.5 。
什么叫声明式工作流呢?这个概念是针对需要编写.Net代码然后编译成程序集(managed assemblies) 去执行的工作流,声明式工作流由XMAL语言进行描述,不需要写.net(C#, VB) 代码,不需要编译成程序集直接就可以由工作流运行时运行。开发人员在VS2012和SharePointdesigner 2013 中设计的工作流就是XMAL,只不过为了便于设计设计器将XAML图形化了。设计设计器中的Condition,action, stage, events等都对应具体的XAML标记。
那么我们什么时候使用SharePointDesigner 2013?什么时候使用VS2012呢?
SharePoint 2013 workflow最大的优点就是使信息工作者(不会写code,但是是流程专家)可以使用SharePointDesigner 2013 不写任何代码就能设计出丰富和强大的工作流,然后那些高度复杂的、灵活的、定制化的workflow可以使用VS2012采用声明式Workflow开发方式,交给开发人员实现。
使用SharePointDesigner 2013 和VS2012 开发工作流都有一些优点和缺点:
1. SharePointDesigner 2013
· 目标用户:信息工作者,非技术人员,企业IT人员,业务分析人员,SharePoint开发人员
· 难度(开发条件):熟悉SharePointDesigner 2013,包括核心的工作流概念(如:stages, gates, actions, conditions,loops)
使用SharePointDesigner 2013,用户可以创建工作流并附加到list, library, or site。
2. VS2012
· 目标用户:中高级开发人员
· 难度(开发条件):熟悉 VS2012,包括软件开发概念和WF4.0、部署、安全
使用VS2012可以开发出高度复杂的、灵活的、定制化的workflow,而且还可以开发customaction, 被SharePointDesigner 2013调用。
SharePoint Designer 2013 和VS2012 开发工作流详细对比:
功能/需求 |
SharePoint Designer |
Visual Studio |
||
是否可以快速开发 |
Yes |
Yes |
||
可重用性 |
只能绑定到相关类表,content type 等 |
可以开发一个模板,绑定到任何列表或文档库 |
||
是否可以作为解决方案或App的一部份 |
No |
Yes |
||
是否可以创建custom action |
No.但是可以使用由VS2012创建的custom action |
Yes.但最好仅当现有功能不能满足的情况下才采用 |
||
是否允许客户化代码 |
No |
No
|
||
是否可以使用Visio 画出逻辑图 |
Yes |
No |
||
安装部署 |
自动部署,并关联到具体的类表和文档库等 |
生成*.wsp包,然后将该包安装到SharePoint site |
||
是否支持一键发布 |
Yes |
Yes |
||
是否可以部署到远程服务器 |
Yes |
Yes |
||
是否可以调试 |
No |
可以使用VS2012调试
|
||
是否可以由站点管理员管理 |
Yes |
Yes
|