惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
SegmentFault 最新的问题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Attack and Defense Labs
Attack and Defense Labs
F
Full Disclosure
Vercel News
Vercel News
N
News | PayPal Newsroom
The GitHub Blog
The GitHub Blog
H
Hacker News: Front Page
H
Heimdal Security Blog
P
Privacy International News Feed
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cisco Blogs
L
Lohrmann on Cybersecurity
D
Docker
Recent Announcements
Recent Announcements
Security Archives - TechRepublic
Security Archives - TechRepublic
人人都是产品经理
人人都是产品经理
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
T
Tailwind CSS Blog
C
Check Point Blog
博客园 - 叶小钗
Google Online Security Blog
Google Online Security Blog
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
S
Secure Thoughts
博客园 - Franky
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
P
Palo Alto Networks Blog
Latest news
Latest news
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
Last Week in AI
Last Week in AI
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cyberwarzone
Cyberwarzone
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
Hacker News: Ask HN
Hacker News: Ask HN
T
Threatpost
T
Tenable Blog
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学

博客园 - 深山老林

测试Varnish缓存服务器与IIS连接数 谈谈持续集成 亲测SQLServer的最大连接数 读书笔记:Oracle锁定策略的总结 jQuery formValidator不支持新版手机的解决办法 TFS Workspace错误解决办法 Mindjet.MindManager.v9.0“参数错误”解决办法 c#3.0提供的扩展方法 Entityframework提供的处理并发冲突方式 ASP.NET MVC2中返回Json异常的解决办法 Visual studio 配置文件下载 数据库访问的性能问题与瓶颈问题 SQLServer中批量插入数据方式的性能对比 再次探扩展-对xVal进行扩展解决验证不同步的问题 微软并行编程类库Parallel Extensions介绍 更改Outlook数据文件的路径 谈谈c#中的static 再次探讨企业级开发中的Try......Catch性能问题 在企业级开发中使用Try...Catch...会影响效率吗?
WF之基本概念
深山老林 · 2010-04-02 · via 博客园 - 深山老林

本文知识点

工作流的基本概念

WF的概念及特点

WF工作流的类型及特点

WF工作流的创建模式及特点

WF的架构

什么是工作流?

工作流,是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。

WF是什么?它有什么特点?

WF的全称是Windows Workflow Foundation,它是微软在.NET3.0之后推出的一套工作流开发框架。

WF不是一个独立的工作流应用程序,它提供了一些类库用于辅助工作流应用程序的开发,因此WF是一套用于辅助工作流开发的框架;

WF只是一个框架,因此需要宿主到其它应用程序中才能运行;

WF提供了实现工作流应用程序时所需要实现的一些机制,比如持久化、跟踪机制等。

WF工作流的类型有哪些?它们的特点是什么?实际开发中应当如何选择?

WF工作流的类型有两种,一种是顺序工作流,一种是状态机工作流。

顺序工作流:定义了一系列按照指定顺序执行的步骤。

状态机工作流:没有固定顺序,执行顺序依赖于外部数据和外部条件。

实际开发中究竟是采用顺序工作流还是状态机工作流还要看实际情况根据两者特点的不同而进行选择。

WF工作流的创建模式有哪些?他们的特点是什么?

WF工作流的创建模式有三种:仅限代码、代码分离、无代码。

仅限代码:这是WF默认的创建模式,该模式下WF会自动生成一个Workflow1.cs的代码文件,在该文件中,我们可以通过C#或VB代码来声明工作流的结构,在这种模式下必须进行编译。参见下图
仅限代码

代码分离:使用XAML与.cs代码文件组合来定义工作流。代码文件必须经过编译。参见下图


无代码:使用工作流标记来创建工作流,然后使用WF命令行工作流编译器来编译工作流,通过宿主应用程序将工作流标记文件加载到工作流运行时引擎。

WF的架构是怎样的?

WF的架构总共分三层分别是:宿主程序层(Hosting Process)、WF运行时层(WorkflowRuntime)、WF服务层。

宿主程序层(Hosting Process):前面我们提到,WF只是一个框架,因此需要宿主到其它应用程序中才能运行,宿主程序层就是WF宿主的应用程序的层。WF可以宿主在Windows控制台应用程序、Windows服务、Windows Froms应用程序、ASP.NET Web应用程序、WebServices等等。目前应用最广泛的是宿主在WPF、WCF、ASP.NET Web应用程序中。

WF运行时层(WorkflowRuntime):WorkflowRuntime本身提供了一些属性和方法用来控制WF的运行时环境,开发人员也可以相应WorkflowRuntime的各种事件来监控工作流引擎的运行。

WF服务层:WF服务层内置了4种服务,分别是:调度服务(Scheduling Services)、事务服务(Transaction Services)、持久化服务(Persistence Services)、跟踪服务(Tracking Services)。
四种内置服务的作用分别是:

调度服务(Scheduling Services):调度服务用来控制Runtime执行工作流所需要的线程。

事务服务(Transaction Services):事务服务允许Runtime保持位于工作流内部和持久存储器(durable store)中的状态的一致性。

持久化服务(Persistence Services):持久化服务负责把工作流状态保存到持久储存器。

跟踪服务(Tracking Services):跟踪服务使用Tracking Profile来通知Runtime它需要的工作流信息的类型。

WF的架构图如下