06 2011 档案

摘要:大部分程序通常需要确保其操作数据的一致性;通过事务可以帮助程序确保该一致性。在WCF中我们同样可以事务来保证其操作数据的一致性。在本章的上半部分,介绍了事务与两个事务标准:OLE事务和WS-AtomicTransaction事务;然后通过一步一步的练习(创建服务、配置服务端点、创建客户端,配置客户端端点,测试事务)在WCF中实现OLE事务;最后介绍了WS-AtomicTransaction事务。 阅读全文
posted @ 2011-06-29 17:28 On the road.... 阅读(2259) 评论(1) 推荐(3)
摘要:企业使用WCF服务的一个主要原因是通过包装现有的组件和程序构建面向服务的应用,这些应用通过不仅简单而且适应力很强地方式重用。这种策略为企业带来了非常大的灵活性,因为它可以简单地响应快速变化的业务需求、并迅速地创建或更改系统以适应这些需求。 许多企业采用的业务过程都由一系列明确的、并按照特定顺序执行的步骤组成。其中一些步骤可能涉及调用服务的操作,这需要确保WCF服务的操作顺序应当与基本业务过程相匹配。你已了解到在服务的方法上通过操作行为特性,可以指定某个操作发起或终止一个会话;除此之外,服务几乎再不能控制客户端调用服务操作的顺序。这增加了强制客户端程序按照顺序调用服务操作的困难,此外这种方式还可能导致难以发现(并纠正)的错误。使用工作流来定义服务可以帮助解决这个问题,并且强制客户端按照一定的顺序调用服务的操作。 另外一个潜在的问题是谁负责真正地定义和实现业务过程的逻辑。 没有谁比业务分析师能更好地掌握企业所采用业务过程。你不应该期望一个业务分析师同时还精通WCF、或者掌握如何实现WCF服务的操作;很明显这些任务应当是开发人员负责的。另外一个方面,开发人员可能非常擅长构建重 阅读全文
posted @ 2011-06-27 10:19 On the road.... 阅读(2852) 评论(14) 推荐(6)
摘要:在之前章节所完成的练习中,客户端调用WCF服务的一系列操作,但是这些操作的顺序并不重要;因此先调用一个操作然后再调用另外一个操作,均不会对彼此产生影响,因为这些操作是相互独立地。但在实际应用中,服务的操作可能需按照一定的顺序调用。比如,如果你在服务中实现了购物车功能,那么在没有将任何商品放进购物车之前,就执行结算和支付操作显然是没有意义的。按照一定的顺序调用操作会使你考虑在如何两次操作之间维持会话状态信息,那么该如何将这些会话的状态信息存储到持久化设备上。这些就是本章将介绍的内容。 阅读全文
posted @ 2011-06-15 10:43 On the road.... 阅读(2613) 评论(2) 推荐(1)
摘要:在第一章WCF简介中,你已经了解SOA的基本原则--服务之间共享数据架构和协定,而并非类或者类型。当你定义服务时,你通过定义服务协定以指定操作。服务协定描述该服务的操作、操作所使用的参数类型及其操作返回值的类型。WCF服务对外公布服务协定的定义,服务开发人员使用这些定义去构建相应的客户端。开发人员可以通过Visual Sutdio自带的添加服务向导或者svcutil实用工具为根据服务的WSDL描述生成一个客户端代理类,客户端使用该代理类与进行服务通信。 服务协定仅仅是整个故事的一部分。服务协定中的操作可以使用参数并且操作可以有返回值。客户端程序必须提供服务所要求格式的数据。在.NET Framwork中,主要数据类型都有预先定义的格式;而类,结构,枚举等类型则拥有比较复杂的格式;这些复杂格式的数据类型要求客户端程序在想服务发送消息时,先将这些复杂数据打包然后才发送。同样地,服务端也需要格式化这些复杂数据,然后才发送给客户端。你可以使用数据协定来封装这些复杂格式的数据类型;服务所使用的复杂数据类型都应有一个对应的数据协定。服务将数据协定和服务协定一起对外公布,那么这些复杂格式的数 阅读全文
posted @ 2011-06-02 16:36 On the road.... 阅读(2481) 评论(4) 推荐(3)