10 2014 档案

摘要:一、定义 软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。 如果正确的应用了OCP原则,那么 以后在进行同样的改动时,就只需要添加新的代码,不必修改已经正常运行的代码。二、OCP概述 1.对于扩展是开放的 这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展... 阅读全文
posted @ 2014-10-31 14:48 烧点饭 阅读(579) 评论(0) 推荐(1) 编辑
摘要:一、定义 一个类应该只有一个发生变化的原因。二、为什么要使用SRC 因为每一个职责都是变化的一个轴线。当需求变化时,这种变化就会反映为类的职责的变化。如果一个类承担了多于一个的职责,那么引起它变化的原因就会有多个。 如果一个类承担的职责过多,就等于把这些职责耦合在了一起。一个职责的变化可能会消... 阅读全文
posted @ 2014-10-30 13:41 烧点饭 阅读(598) 评论(0) 推荐(0) 编辑
摘要:一.设计臭味1.僵化性 僵化性是指难以对软件进行改动,即使是简单的改动。如果单一的改动会导致有依赖关系的模块中的连锁改动,那么设计就是僵化的。改动时,必须要改动的模块越多,设计就越僵化。2.脆弱性 脆弱性是指,在进行一个改动时,可能会导致程序的许多地方出现问题。常常是,出现新问题的地方与改动的地... 阅读全文
posted @ 2014-10-29 09:50 烧点饭 阅读(935) 评论(0) 推荐(0) 编辑
摘要:一、概述 传入的客户端调用消息会分发给Windows I/O线程池(线程默认为1000)上的服务实例。多个客户端可以发起多个并发的调用,并且服务可以在多个线程上处理这些请求。如果传入的调用分发给同一个服务实例,就必须对内存中的服务状态提供线程安全的访问方式,否则,可能存在错误的风险。客户端回调时... 阅读全文
posted @ 2014-10-24 11:27 烧点饭 阅读(1581) 评论(0) 推荐(0) 编辑
摘要:一、投票与提交 虽然WCF负责事务传播及两阶段提交协议的管理工作,但是 她不知道事务是否应该提交或终止。这需要根服务告诉WCF应该何时启动两阶段提交协议、是提交还是终止。WCF提供了两种编程模式来对事务的结果进行投票,即声明式和显式模式。 声明式投票 WCF可以代替服务自动完成提交或终止事务的... 阅读全文
posted @ 2014-10-22 15:50 烧点饭 阅读(582) 评论(0) 推荐(0) 编辑
摘要:一、设置环境事务 默认情况下,服务类和操作没有环境事务,即使客户端事务传播到服务端也是如此。 尽管强制事务流从客户端传播过来,但服务端的环境事务依旧为null。为了启用环境事务,每个操作必须告诉WCF启用事务。为了解决这个问题,WCF提供了OperationBehaviorAttribute的TransactionScopeRequired属性: // 指定服务方法的本地执行行为... 阅读全文
posted @ 2014-10-21 14:40 烧点饭 阅读(1004) 评论(0) 推荐(0) 编辑
摘要:一、概述 .NET2.0在命名空间System.Transactions下提供了Transaction类,它表示所有.NET事务管理器使用的事务。 [Serializable] public class Transaction : IDisposable, ISerializable { //...... public static Transaction Curr... 阅读全文
posted @ 2014-10-17 09:51 烧点饭 阅读(609) 评论(0) 推荐(2) 编辑
摘要:一、事务传播概述 WCF可以跨越服务边界传递事务。这可以让服务参与到客户端事务里,客户端还可以在同一个事务里调用多个服务。客户端本身不一定是WCF服务。客户端事务是否传播到服务端可以通过绑定和操作契约契约的设置来控制。 我们把能够支持客户端事务传播给服务端的绑定称为“事务感知”型绑定。 只有TCP、IPC和WS绑定支持事务传播。 二、事务流与绑定 默认情况下,事... 阅读全文
posted @ 2014-10-13 14:30 烧点饭 阅读(638) 评论(0) 推荐(0) 编辑
摘要:一、事务协议 总体来说,WCF开发人员不需要涉及事务协议与管理器。我们应该依赖WCF来选择相应的事务协议和管理器,重点关注业务逻辑的实现。 WCF是根据事务范围里的参与个体来选择事务管理协议的。事务管理协议之间的差别与远程调用、通行协议,以及跨越的系统边界有关。 可选择的管理协议如下: 轻量级事务协议 这个协议只在本地同一个应用程序域内的上下文环境里管理事务,他不... 阅读全文
posted @ 2014-10-10 11:12 烧点饭 阅读(751) 评论(0) 推荐(0) 编辑
摘要:一、事务概述 维护系统一致性和正确地处理错误恢复挑战的最佳方式是使用事务。 一个事务就是一个复杂操作的集合,这个集合中任何一个操作的失败都会引起整个集合的失败。 尽管在事务进行时系统被允许暂时出于不一致的状态,但是一旦事务结束,系统一定会处于一直的状态。 事务资源 事务编程需要资源(如数据... 阅读全文
posted @ 2014-10-09 11:32 烧点饭 阅读(355) 评论(0) 推荐(0) 编辑
摘要:一、错误传播 服务需要向客户端报告特定错误,当WCF默认的错误屏蔽方法并不包含这一实现。另一个重要的问题与传播到客户端有关,即由于异常是针对特定技术的,因此无法跨越服务边界而被共享。要实现无缝的互操作性,就需要将基于特定技术的异常映射为某种与平台无关的错误信息。这种表现形式就是所谓的SOAP错误... 阅读全文
posted @ 2014-10-07 15:44 烧点饭 阅读(1081) 评论(0) 推荐(0) 编辑
摘要:一、错误概述 不管是哪一种操作,在任意时刻都可能出现不可预期的错误。问题在于我们应该如何将错误报告给客户端。异常和异常处理机制是与特定技术紧密结合的,不能跨越边界的。此外,如果有客户端来处理错误,必定会导致耦合度增加。通常,错误处理应该是本地的实现细节,并不会影响到客户端。在设计良好的应用程序中... 阅读全文
posted @ 2014-10-06 14:29 烧点饭 阅读(659) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示