《WF本质论01》.pdf

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《WF本质论01》.pdf

第 1 章 剖 析 WF 关于编程技术的书籍往往都是以介绍一个名为“Hello, World ”的小程序开始,这个程序用 于在标准输出设备上打印一条简单的信息。在此,我们也未能免俗,以下是这个程序的C#版: “Hello, World ”之所以能够成为一个较为流行的编程起点,归功于它的简单,因为它避免 了许多实际程序所需要关注的问题。软件开发从业者肯定知道,扩展像“Hollo, World ”这样 的程序,会很快碰到棘手的问题。我们来看看这个名为“Open, Sesame ”的例子,它在打印传 统的问候语之前,要求用户键入一个口令: 2 第1 章 “Open, Sesame ”这个程序各个方面几乎都不怎么出彩,不过我们依然看到了它值得一看 的地方:由于依赖于用户在控制台上所输入的一行内容,所以,从程序执行开始到结束,在执 行时间上的花费可以是任意长的。你可以编译并运行这个程序,并且把它搁置几周时间,然后 再键入口令并最终打印出欢迎信息。这一切都是设计使然。 “Open, Sesame ”是一个交互式程序(reactive program )的例子。所谓交互式程序,就是 程序在执行期间依赖外部实体的刺激,并对此做出响应。有时,这个外部实体是一个人,有时, 这个外部实体是另一个程序。但无论是哪种方式,交互式程序都将花费大量的时间在等待这些 外部刺激,所以,现在我们面临的挑战不是等同于编写诸如“hello ,world ”程序这般轻松了。 大多数的计算机程序是交互式的。现实世界中,你会发现各种各样的处理过程几乎都有软 件的身影:文档协作编辑、客户订单管理、原始资料提取、纳税申报单的预备、供应、产品开 发管理、在线商店、客户关系管理、车间和仓库操作的协调等。这个列表的内容还会不停地增 加。在这些处理过程中,交互式程序需要对人或者其他程序所提供的输入信息做出适当的 反应。 一些交互式程序的开发使用了某些架构,比如ASP.NET 和Java Servlets 。而另一些原生 (homegrown )解决方案则直接构建在执行环境之上,这些执行环境包括通用语言运行时 (CLR )和Java虚拟机(JVM )。还有一些程序则是用C或者(非托管)C++之类的语言编写的。 然而,如果我们观察这些交互式程序的编写过程,就会发现大部分的程序跟前面提到的 “Open, Sesame ”程序没什么共同点。现在就来看一个Web Service程序(Web应用程序也不失 为一个极具启迪性的选择),这个程序完成了和“Open, Sesame ”程序一样的功能。 现在,我们把“Open, Sesame ”程序移植到ASP.NET Web service上来: 部 析 WF 3 不难看出,这个Web service 有两个操作。但是在这个程序里已经完全找不到“Open, Sesame ”中的控制流了,实际上,PrintKey必须在PrintGreeting之前被调用,并且,每一个步 骤都必须严格地执行且仅可以执行一遍,只有这样,程序才是成功地完成了执行。为了建立操 作顺序的约束,我们添加以下黑体字标出的代码来修改Web service : 我们现在使用一组运行时检查以确保程序有正确的Web service控制流,但那些程序逻辑既 分散又不明显,而且还很容易导致错误。“Open, Sesame ”控制台程序中那些原本一目了然的 顺序变成了难以理解的逻辑被分散到了Web service 的各个操作中。设想一下,仅仅提供Web Service 的源码,也不用关心数据流,以求达到理顺程序控制流的目的,对于仅仅包括两步操作 4 第1 章 的简单例子,我们也许只要花数秒钟时间就能理顺其中的关系,但倘若是一个规模十倍于此的 Web Service程序,并且该程序中还包括分支和循环的控制流,我们又将如何自处? 为什么我们不用更自然的C#控制流结构来

文档评论(0)

ghfa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档