WCF服务编程设计规范(5):事务与并发管理设计

今天整理的内容是WCF事务和并发管理相关的设计规范。WCF服务编程设计规范(5):事务与并发管理设计。中英文对照,How to design Transactions and Concurrency Management in WCF Service.

下面一节是队列服务与安全。

Transactions

事务 

1. Never manage transactions directly.

不要直接管理事务

2. Apply the TransactionFlow attribute on the contract, not the service class.

在契约而不是服务类上标注TransactionFlow属性,

3. Do not perform transactional work in the service constructor.

不要在服务的构造函数里执行事务操作

4. Using this book’s terminology, configure services for either Client or Client/Service transactions. Avoid None or Service transactions.

使用本书中的术语,为客户端或客户端/服务端事务模式配置服务。避免使用None或服务事务模式。

5. Using this book’s terminology, configure callbacks for either Service or Service/Callback transactions. Avoid None or Callback transactions.

使用本书中的术语,为服务或服务/回调事务模式配置回调。避免使用None或回调事务模式。

6. When using the Client/Service or Service/Callback mode, constrain the binding to flow transactions using the BindingRequirement attribute.

当使用客户端/服务或服务/回调模式,通过BindingRequirement属性约束绑定传播事务

7. On the client, always catch all exceptions thrown by a service configured for None or Service transactions.

在客户端,始终捕获None或服务事务里抛出的所有异常。

8. Enable reliability and ordered delivery even when using transactions.

即使使用事务的时候,也要启用可靠性和顺序传递

时间: 2024-02-19 15:14:22

WCF服务编程设计规范(5):事务与并发管理设计的相关文章

WCF服务编程设计规范(4):操作与错误设计

WCF服务编程设计规范(4):操作与错误设计.主要包含服务操作与调用.错误设计规范.中英对照.欢迎留言交流.下一节会介绍事务.并发管理和队列服务的内容. Operations and Calls 操作与调用 1. Do not treat one-way calls as asynchronous calls. 不要把单向调用作为异步调用 2. Do not treat one-way calls as concurrent calls. 不要把单向调用作为并发调用 3. Expect exce

WCF服务编程设计规范(6):队列服务、安全和服务总线

WCF服务编程设计规范(6):队列服务.安全和服务总线.本节整理队列服务(Queue Servuce).服务安全(Service Security)和服务总线(Service Bus)的设计规范. Queued Services 队列服务 1. On the client, always verify that the queue (and a dead-letter queue, when applicable) is available before calling the queued s

WCF服务编程设计规范(2):序言、通用设计规范和要点

WCF服务编程设计规范(2):序言.通用设计规范和要点.主要翻译整理,序言.WCF设计通用设计规范.设计要点.并给出注释.注释内容于括号内.下一部分会整理,服务契约.数据契约.实例管理的内容.这里放出的是中英文对照版.方便大家学习.最后翻译结束,我会整理一个纯中文版放出.如有错误,请批评指正.欢迎留言交流. 序言 对于一次成功的产品交付来说,完整编码规范至关重要.这个规范可以帮助强化一些通用的最佳实践准则,并避免犯错,方便整个团队理解这些知识.通常,编码规范都是相当的繁琐,动辄上百页,内容详细叙

WCF服务编程设计规范(3):服务契约、数据契约和实例管理设计规范

WCF服务编程设计规范(3):服务契约.数据契约和实例管理设计规范.本节涵盖服务契约和数据契约设计规范,以及服务实例管理内容.中英对照版本,欢迎留言交流. Service Contracts 服务契约 1.Always apply the ServiceContract attribute on an interface, not a class: 把ServiceContract属性标记到契约接口上,而不是服务类上 //Avoid:避免 [ServiceContract] class MySe

WCF服务编程设计规范(1):最新版WCF Coding Standard介绍

<WCF4.0新特性体验>之后,新出一个系列<WCF服务编程设计规范>.这个系列主要关注的是如何设计WCF服务,以及WCF编码规范.这里我会翻译整理一些WCF服务设计相关的资料,分享给大家,并提供英文原版的下载. [1]序言: 这个系列应该实用性比较强,对于大多数使用到WCF的技术人员或者公司来说,都是比较重要的内容,我们需要一套完整的规范来指导服务的设计和编码.这可以作为大家学习WCF一个规范参考,另外如果公司制定WCF相关的编码和服务设计规范的时候,可以参考一下.我会在这个系列

《WCF服务编程》关于“队列服务”一个值得商榷的地方

今天写<WCF技术剖析(卷2)>关于"队列服务"部分,看了<WCF服务编程>相关的内容.里面介绍一个关于"终结点不能共享相同的消息队列"说法,个人觉得这值得商榷.撰写此文,希望对此征求大家的意见.[源代码从这里下载] 目录 一."终结点不能共享相同的消息队列" 二.实践出真知 三.为什么同一个服务的终结点可以共享相同的消息队列 四.为什么不同服务的终结点不能共享相同的终结点 一."终结点不能共享相同的消息队列&q

ConcurrencyMode.Multiple 模式下的WCF服务就一定是并发执行的吗:探讨同步上下文对并发的影响[下篇]

在<上篇>中,我通过一个具体的实例演示了WCF服务宿主的同步上下文对并发的影响,并简单地介绍了同步上下文是什么东东,以及同步上下文在多线程中的应用.那么,同步上下文在WCF并发体系的内部是如何影响服务操作的执行的呢?这实际上涉及到WCF的一个话题,即线程的亲和性(Thread Affinity),本篇文章将为你剖析WCF线程亲和机制的本质. 一.WCF线程亲和性(Thread Affinity) 对于服务端来说,WCF消息监听和接收体系通过IO线程池并发的处理来自客户端的服务调用请求,所以并发

WCF技术剖析之三十:一个很有用的WCF调用编程技巧[上篇]

在进行基于会话信道的WCF服务调用中,由于受到并发信道数量的限制,我们需要及时的关闭信道:当遇到某些异常,我们需要强行中止(Abort)信道,相关的原理,可以参考我的文章<服务代理不能得到及时关闭会有什么后果?>.在真正的企业级开发中,正如我们一般不会让开发人员手工控制数据库连接的开启和关闭一样,我们一般也不会让开发人员手工去创建.开启.中止和关闭信道,这些工作是框架应该完成的操作.这篇文章,我们就来介绍如果通过一些编程技巧,让开发者能够无视"信道"的存在,像调用一个普通对

并发与实例上下文模式: WCF服务在不同实例上下文模式下的并发表现

由于WCF的并发是针对某个封装了服务实例的InstanceContext而言的,所以在不同的实例上下文模式下,会表现出不同的并发行为.接 下来,我们从具体的实例上下文模式的角度来剖析WCF的并发,如果对WCF实例上下文模式和实例上下文提供机制不了解的话,请参阅<WCF 技术剖析(卷1)>第9章. 在<实践重于理论>一文中,我写一个了简单的WCF应用,通过这个应用我们可以很清楚了监控客户端和服务操作的执行情况下.借此 ,我们可以和直观地看到服务端对于并发的服务调用请求,到底采用的是并