这一篇开始,我将介绍在MOSS 2010中进行工作流开发的最佳实践。这一篇主要介绍有关的几个概念

1.什么是工作流

工作流开发是这几年都比较火的一个领域。工作流,顾名思义就是工作的流程,而软件系统所要做的就是解决人们现实工作或者生活中的那些流程。所以从事实上说,任何软件系统都离不开工作流。

当然,工作流真正被广大开发人员所熟知,是因为.NET Framework 3.0中的Workflow Foundation(WF)。很显然,WF提供了一个前所未有的选择,就是它提供了运行时、可视化设计器、开箱即用的一些活动部件(可以快速组装成一个流程)。

但是,我要说的是,WF并不是工作流的全部。

首先,并不意味着要做工作流开发的话,就一定要用它。事实上,我们有的时候也确实不用它。这要根据具体的情况具体分析。

其次,我们用了WF,它确实可以处理相当一部分事情,但是还有一些部分是我们需要考虑处理的,诸如权限方面的控制,数据的持久化等等。

下面是标准的Wofkflow Foundation应用程序设计开发的一个截图

【备注】WF 4.0有很多改变,以后有机会我会再专门介绍

【备注】SharePoint的工作流目前基于WF 3.5, 而不是WF 4.0

2.SharePoint工作流的特点

其实,微软在没有公开Workflow Foundation之前,就已经尝试了在Office及有关产品中提供了工作流方面的尝试,例如我们都知道的Biztalk,以及Excel的早期版本中都可以做流程的设计和管理。

而WSS 3.0 (Windows SharePoint Service)中则内置了对于Workflow Foundation的支持,以提高SharePoint在协作方面的能力。

为SharePoint开发工作流有如下特点

  • 任务驱动:几乎所有流程都是基于任务的概念,例如要审批,通常就是给审批者分配一个待办事项
  • 一般都与列表文档库绑定。设计时和运行时都是如此。
  • WF的两种工作流都是支持的:顺序型和状态机工作流
  • 界面有两种选择:Infopath表单或者aspx表单(前者设计容易,但权限控制相当麻烦;后者则相对来说比较灵活,但开发难度和工作量较大)
  • 包含了一套专用的活动项(Activity)

下图可以看出,SharePoint的工作流开发基本和标准的WF开发还是比较接近的,只不过多了一些专用的东西吧

3. 在MOSS 2010中,工作流方面主要有什么改进

MOSS 2010在工作流方面的改进并不是革命性,但却是相当有实际价值的。它主要包括如下方面

  • 提供了网站级别的工作流。以前每个工作流都要与某个特定的列表或者文档库绑定,虽然这本身也是合理的,但有时候,我们的流程可能就是一个很简单的审批之类的,那时候就想干嘛一定要搞一个列表呢?现在这个问题不再存在了
  • 提出了可复用工作流的概念。关于这一点,我之前有一个专门文章介绍。http://www.cnblogs.com/chenxizhang/archive/2010/04/06/1705021.html 。 顾名思义,这种流程可以更好地复用,它在设计的时候就没有绑定具体的列表,可以随意部署到其他的站点,或者后期与列表绑定。
  • 提出了全新的设计开发工作流的模式。业务人员用Visio设计流程的概念模型,然后IT人员可以在SharePoint Designer中导入Visio图形,并且进行一些配置,实现具体的步骤细节。如果流程需要有特殊的功能,则可以由专业的开发人员在Visual Studio 中导入该流程,进行定制开发。这样,就让每个人都能有参与的可能性,而且各自的工作可以直接转换,减少重复劳动。
  • 开发,部署和调试相当方便。发布流程到网站甚至整个服务器场,通过一个按键就可以完成。而在Visual Studio中提供了项目模板,以及部署工具可以大大提高工作效率,让开发人员可以将更多精力集中在流程本身的逻辑上,而不是打包,部署之类的繁琐工作。

下一篇,我们就通过一个简单的实例,来演示如何使用Visio设计概念,用SharePoint Designer实现细节,而用Visual Studio定制特殊功能。

MOSS 2010:Visual Studio 2010开发体验(26)——工作流开发概述相关推荐

  1. MOSS 2010:Visual Studio 2010开发体验(19)——ECMAScript Object Model

    这篇文章部分材料摘自下面这个地址,我做了翻译,并且按照我的案例场景做了补充 http://www.codeproject.com/Articles/60348/SharePoint-2010-Clie ...

  2. MOSS 2010:Visual Studio 2010开发体验(15)——LINQ to SharePoint

    这一篇我们来讨论的是,如何通过LINQ的技术实现对SharePoint 2010列表的读取.我还记得当年.NET Framework 3.5发布,第一次接触到Linq的时候那种不可思议的感觉.现在,S ...

  3. MOSS 2010:Visual Studio 2010开发体验(16)——客户端对象模型

    转载自:http://www.cnblogs.com/chenxizhang/archive/2010/04/26/1721653.html 上一篇,我们讲到了LINQ to SharePoint.它 ...

  4. 关于在Office 2010,Visual Studio 2010环境下开发Office 2007解决方案的问题

    Office解决方案分应用级解决方案(application-level solution 也就是Add-in)和文档级解决方案(document-level solution包括Excel temp ...

  5. 在 Visual Studio Code 中体验 Java Web 开发

    上一篇博文介绍了如何将 Visual Studio Code 作为 Java 的开发环境.我们知道,Java Web 开发是 Java 开发的主战场,那么在 VS Code 中开发 Java Web ...

  6. MOSS 2010:Visual Studio 2010开发体验(14)——列表开发之事件接收器

    通过前面几篇,我们已经完成了内容类型,列表定义,列表实例的开发.本篇继续讲解列表中的一个重要环节--事件接收器开发. 我们的场景是:我希望之前做好的订单列表这个内容类型自动地具有某些事件特征,例如当用 ...

  7. MOSS 2010:Visual Studio 2010开发体验(22)——利用BCS和WCF进行应用程序集成

    上一篇,我们讲到了如何利用BCS服务,直接连接到SQL Server数据库实现一些简单的应用程序集成的场景.看起来很不错,不是吗? 但是,事实上,直接连接到数据库也许有时候是不可能实现的任务,很多系统 ...

  8. Visual Studio 2010 美女与程序员的爱情网剧+《耀和你一起》壁纸包

    微软这次给 Visual Studio 2010 做的广告转向了美女+感情的套路,特意为产品拍了一套爱情短剧视频,讲述美女与程序员的爱情,这给无数本来就是单身宅男的程序员们提供了不少YY的空间. 在爱 ...

  9. 微软北京.NET俱乐部免费活动(2010年7月18日)–Visual Studio 2010 敏捷开发与云计算Azure...

    感谢您对VS2010一直以来的关注和支持.6月26日微软.NET俱乐部邀请到了多位MVP,针对Visual Studio 2010敏捷开发.Web前端开发与广大北京的.NET俱乐部会员进行互动交流,应 ...

最新文章

  1. 谷歌开源新模型EfficientNet,或成计算机视觉任务新基础
  2. 【OpenCV 4开发详解】图像修复
  3. arcgis python 二次开发_我在部署ArcGIS API for Python时踩到的坑
  4. 软件和硬件的关系以及软件调动硬件的工作原理
  5. 两个vlan之间如何通信_如何桥接两个不同的VLAN?
  6. ws配置 zuul_SpringCloud系列研究---服务网关zuul
  7. HDU 6703 array(主席树 + set)
  8. 转帖:免费申请样片的公司大全!!
  9. 用php写的亲亲鲜花网站_php54鲜花销售网站
  10. 23个超流行的jQuery相册插件收集
  11. java项目技术方案_JavaWeb应用开发项目设计方案.doc
  12. pmp 第六版 模拟卷1疑难问题
  13. unix bsd linux shell bash GNU之间的联系,歪讲Linux(一)
  14. iOS定位原理和使用建议
  15. 学习 FPGA 经验与书籍分享。
  16. 2017蓝桥杯java本科模拟赛
  17. 程序员必读:“五险一金”详解!
  18. 视频聊天软件开发技术
  19. 创业团队 磨合 团队稳定 团队成员
  20. 400多个免费在线编程与计算机科学课程

热门文章

  1. VMware虚拟设备之虚拟磁盘配置与虚拟磁盘置备类型相关介绍
  2. PLSQL基础语法二-流程控制,循环
  3. Gridview数据显示实现按日期排序分割线
  4. asp.net 发送邮件代码
  5. 如何在ASP.NET页面中使用异步任务(PageAsyncTask)
  6. XHTML标准下的100%高度问题
  7. 对PostgreSQL缺省表空间的理解
  8. 正则表达式懒惰贪婪和replace函数
  9. Windows网络通信(二):socket异步编程
  10. iOS 快速存储到本地