摘要:
在上篇中我们简单谈了下架构设计中服务层的简单理解,在这里我们将继续服务层的架构,在本节我们将重点在于分布式服务。在分布式系统中表现层和业务逻辑层 并不处于同一物理部署,所以我们必须存在分布式服务,以契约方式发布于网络中,我们的关注点在于服务,面向服务编程,这种通过组合业务逻辑暴露可用服务的架构叫做面向服务架构(SOA)。 SOA强调一个松耦合,基于宏服务的架构,通过契约暴露给服务消费者可用的服务交互。SOA是以服务为组成构建,原则有: 边界清晰: 服务层是消费者交互到系统业务的唯一入口,所有我们的服务必须能够被消费者所理解,以及最好处理Request/Response基于消... 阅读全文
随笔分类 - WCF/Remoting/Communications Infrastructure
架构设计中服务层的简单理解
2012-05-21 23:09 by 破狼, 22387 阅读, 收藏, 编辑
摘要:
在ddd设计中我们经常会提到服务层,服务层是什么?职责是什么?有什么好处?。 先看简单的层次图(注:这里并没有考虑其他多余的领域逻辑数据层存储,或者UOW这些细节) 我的理解是服务层是处于我的应用程序业务层和表现层之间的应用程序边界,边界可能是很薄的一层类设计或者是分布式服务网络跃点。它是一个与技术无关的名词。由表现层直接调用,契约,执行命令(修改状态(CUD))或者是查询返回dto(数据迁移对象)(cms,命令-查询分离)。他对业务逻辑层接口很清楚,组织业务逻辑 微服务形成宏服务,适配表现层。 这里谈到宏服务和微服务,宏服务有一些列粗粒度的服务组成。用户的一次操作usec... 阅读全文
Green.AgileMapper项目(2)-新增DO和DTO代码生成
2012-03-31 20:57 by 破狼, 2032 阅读, 收藏, 编辑
摘要:
如果你还不了解Green.AgileMapper的用意,作用请先一步到上篇Green.AgileMapper开源项目的使用,如果你觉得运行时(Runtime)的Mapper效率存在问题,在这个版本中有了更新,新增了C#直接代码的生成,这里的生成都已3.0后的扩展方法实现,你可以很方便的一句代码实现两者的转化。 代码生成我本想利用T4模板,但是由于我们的项目IDE版本是VS2008,对于T4的参数传递支持还不是很友好,你可能说用AppDomain.SetData,或者CallContext.LogicalSetData,但是可惜我们的饿MappingRule是不可序列化的,所以最后我只得采用了. 阅读全文
Green.AgileMapper开源项目的使用(1)
2012-03-29 13:40 by 破狼, 2759 阅读, 收藏, 编辑
摘要:
在架构设计中,利用领域驱动开发时,涉及到do(领域对象)和dto(数据传输对象)的相互装换匹配,这段代码简单但是重复频率太多,写得我很冒火(我有个职责是wcf SOA包装),我是个不喜欢重复劳动的懒人,我在网上搜索等到很多实体匹配的框架EmitMapper,AutoMapper等,但是他们都不能满足dto和do的对象的按规则匹配包装。最后我只得花了半个小时写了一个简单的代码生成器,完成了我的任务。但是事后总觉得不爽,于是有了写下这个AgileMapper框架来适应领域开发中的po,do,dto,vo着一些列对象的相互包装,建立一个按规则包装的Mapper框架。项目已经完成上传于CodePle. 阅读全文
WCF利用企业库Unity框架的IOC层次解耦
2012-02-07 23:23 by 破狼, 5636 阅读, 收藏, 编辑
摘要:
由于工作几个月来框架开发已经好久没写博客了,今天想抽点时间出来冒泡。在领域驱动开发中SOA已经成为我们开发的主流技术,在面对当前众多的UI框架选择(asp.net mvc,silverlight,wpf,winform,wp7等一些列甚至跨语言),我们能够重用和抽象的业务逻辑是不会变化的,为了屏蔽这些UI的复杂性和差异性,我们可能会采用诸如wcf soap的服务发布。再说在领域驱动开发中我们肯定会把各个逻辑分层次隔离解除耦合,这就出现了N层架构,在于我们的每一层次之间的耦合度当前流程的解决方案IOC框架,以及业务解耦AOP。这里要解决的是SOA框架WCF和IOC框架的结合。 WCF框架是一个. 阅读全文
WCF分发简述-ChannelDispatcher,EndpointDispatcher,MessageFilter
2011-07-08 13:34 by 破狼, 3135 阅读, 收藏, 编辑
摘要:
学习和使用WCF已经有很长一段时间了,但是一直不敢写关于这方面的blog。以为院子里有个WCF高手(Artech),我学习WCF大部分就是看的他的blog。所以在这里感谢Artech大哥的分享。前些日子的XX问到这个问题,所以我才斗胆有了这篇blog,欢迎高手指正。1:ServiceHost 和ChannelDispatcher: 没使用过Viso,但是现在的机子上只有这个东西,所以随便乱画:WCF分发是指在服务端信道监听到Message,路由选择那个service,operation操作的过程,我的理解。首先我们的WCF会有一个宿主程序(控制台,Windows服务,或者是IIS寄宿等等),当 阅读全文