- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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#控制流结构来
您可能关注的文档
- 《Interfacelift 高清壁纸 2016 (3月合集)》.pptx
- 《InterfaceLift 高清壁纸 2016(10月合集)》.pptx
- 《InterfaceLift 高清壁纸 2016(5月合集)》.pptx
- 《InterfaceLift 高清壁纸 2016(6月合集)》.pptx
- 《InterfaceLift 高清壁纸 2016(7月合集)》.pptx
- 《InterfaceLift 高清壁纸 2016(8月合集)》.pptx
- 《InterfaceLift 高清壁纸 2016(9月合集)》.pptx
- 《InterfaceLIFT.高清壁纸03》.pptx
- 《InterfaceLIFT.高清壁纸04》.pptx
- 《InterfaceLIFT.高清壁纸05》.pptx
最近下载
- 电子电路与系统基础II(李国林)X006 12 第六讲习题课 电容电感性质习题课.pdf VIP
- 电动三轮车培训.pptx VIP
- 电子电路与系统基础II(李国林)S012 理论课第12讲 阻抗匹配网络.pdf VIP
- 工程伦理案例分析.docx VIP
- 统编版(2024)七年级历史上册第6课《战国时期的社会变革》课件.pptx VIP
- 电子电路与系统基础II(李国林)S005 09 第五讲理论课 向量法.pdf VIP
- 宜家 吸顶灯 RANARP 勒纳普 吊灯 003.909.52 安装指南.pdf
- 电子电路与系统基础II(李国林)S002 03 第二次理论课 运放应用.pdf VIP
- 工程伦理学习心得体会.docx VIP
- 工程伦理学学习心得.docx VIP
文档评论(0)