Welcome 微信登录

首页 / 软件开发 / .NET编程技术

WCF后续之旅(7):通过WCF Extension实现和Enterprise Library

WCF后续之旅(7):通过WCF Extension实现和Enterprise Library

WCF后续之旅(7):通过WCF Extension实现和Enterprise Library2011-01-03 cnblogs artech松耦合、高内聚是我们进行设计的永恒的目标,如何实现这样的目标呢?我们有很多实现的方式和方法,不管这些方式和方法在表现形式上有什么不同,他们的思想都可以表示为:根据稳定性进行关注点的分离或者分解,交互双方依赖于一个稳定的契约,而降低对对方非稳定性因素的依赖。从抽象和稳定性的关系来讲,抽象的程度和稳定程度成正相关关系。...
WCF后续之旅(9):通过WCF的双向通信实现Session管理[Part I]

WCF后续之旅(9):通过WCF的双向通信实现Session管理[Part I]

WCF后续之旅(9):通过WCF的双向通信实现Session管理[Part I]2011-01-03 cnblogs artech我们都知道,WCF支持Duplex的消息交换模式,它允许在service的执行过程中实现对client的回调。WCF这种双向通信的方式是我们可以以Event Broker或者订阅/发布的方式来定义和调用WCF Service。今天我们就给大家一个具体的例子:通过WCF的duplex communication方式现在Sessio...
WCF后续之旅(9) 通过WCF双向通信实现Session管理[Part II]

WCF后续之旅(9) 通过WCF双向通信实现Session管理[Part II]

WCF后续之旅(9) 通过WCF双向通信实现Session管理[Part II]2011-01-03 cnblogs artech5、Session Management Service的实现现在我们来看看Session Management真正的实现,和我以前的例子不同,我不是把所有的实现都写在WCF service上,而是定义了另一个class来实现所有的业务逻辑:SessionManager。我们分析一下具体的实现逻辑。namespace Artec...
WCF后续之旅(11) 关于并发、回调的线程关联性(Thread Affinity)

WCF后续之旅(11) 关于并发、回调的线程关联性(Thread Affinity)

WCF后续之旅(11) 关于并发、回调的线程关联性(Thread Affinity)2011-01-03 cnblogs artech对于一般的多线程操作,比如异步地进行基于文件系统的IO操作;异步地调用Web Service;或者是异步地进行数据库访问等等,是和具体的线程无关的。也就是说,对于这些操作,任意创建一个新的线程来执行都是等效的。但是有些情况下,有些操作却只能在固定的线程下执行。比如,在GUI应用下,对控件的访问就需要在创建该控件的线程下执行;...
WCF后续之旅(12) 线程关联性(Thread Affinity)对WCF并发访问的影响

WCF后续之旅(12) 线程关联性(Thread Affinity)对WCF并发访问的影响

WCF后续之旅(12) 线程关联性(Thread Affinity)对WCF并发访问的影响2011-01-03 cnblogs artech在本系列的上一篇文章中,我们重点讨论了线程关联性对service和callback的操作执行的影响:在service host的时候,可以设置当前线程的SynchronizationContext,那么在默认情况下,service操作的执行将在该SynchronizationContext下执行(也就将service操...
WCF后续之旅(13) 创建一个简单的WCF SOAP Message拦截、转发工具

WCF后续之旅(13) 创建一个简单的WCF SOAP Message拦截、转发工具

WCF后续之旅(13) 创建一个简单的WCF SOAP Message拦截、转发工具2011-01-03 cnblogs artechWCF是.NET平台下实现SOA的一种手段,SOA的一个重要的特征就基于Message的通信方式。从Messaging的角度讲,WCF可以看成是对Message进行发送、传递、接收、基础的工具。对于一个消息交换的过程,很多人只会关注message的最初的发送端和最终的接收端。实际上在很多情况下,在两者之间还存在很多的中间结点...
WCF后续之旅(14):TCP端口共享

WCF后续之旅(14):TCP端口共享

WCF后续之旅(14):TCP端口共享2011-01-03 cnblogs artech基于TCP/IP协议簇的对等网络通信下,相互通信的应用程序运行各自的进程中,出于应用层的进程将数据局封装成数据报,并通过传输层的TCP或者UDP进行网络通信。而TCP和UPD则通过一个16bit的端口来识别不同的应用程序。对于一些常用网络服务,他们都有一个知名的端口好与之匹配。比如,FTP服务是用的TCP端口为21;Telnet服务的TCP端口为23等等。而对于客户端通...
WCF后续之旅(15) 逻辑地址和物理地址

WCF后续之旅(15) 逻辑地址和物理地址

WCF后续之旅(15) 逻辑地址和物理地址2011-01-03 cnblogs artech在WCF中,每个终结点都包含两个不同的地址——逻辑地址和物理地址。逻辑地址就是终结点Address属性表示的地址。至于物理地址,对于消息发送放来讲,就是消息被真正发送的目的地址;而对于消息的接收放来讲,就是监听器真正监听的地址。1、服务端的物理地址在默认的情况下,终结点的逻辑地址和物理地址是同一个URI。换句话说,终结的逻辑地址是必须的,如何...
WCF后续之旅(16) 消息是如何分发到Endpoint的--消息筛选(Message Filter)

WCF后续之旅(16) 消息是如何分发到Endpoint的--消息筛选(Message Filter)

WCF后续之旅(16) 消息是如何分发到Endpoint的--消息筛选(Message Filter)2011-01-03 cnblogs artech在介绍终结点的ListenUriMode时,我们提到了两个特殊的对象ChannelDispatcher和ChannelListener。这两个对象在整个WCF的消息分发系统中具有重要的地位,在这节里,我们对WCF的整个消息分发过程作一个简单的介绍。1、连接请求的监听当我们通过ServiceHost对某个服务...
WCF后续之旅(17):通过tcpTracer进行消息的路由

WCF后续之旅(17):通过tcpTracer进行消息的路由

WCF后续之旅(17):通过tcpTracer进行消息的路由2011-01-03 cnblogs artech对于希望对WCF的消息交换有一个深层次了解的读者来说,tcpTracer绝对是一个不可多得好工具。我们将tcpTracer置于服务和服务代理之间,tcpTracer会帮助我们接获、显示和转发流经他的消息。从本质上讲,tcpTracer是一个路由器。当启动的时候,我们需要设置两个端口:原端口(source port)和目的端口(destination...
WCF后续之旅(18):谈谈Binding

WCF后续之旅(18):谈谈Binding

WCF后续之旅(18):谈谈Binding2011-01-03 cnblogs artech1.信道层与服务模型层(Channel Layer and Service Mode Layer)对于一个分布式应用的开发与设计来说,通信问题是不得不考虑,同时也是最为复杂、最难实现的问题。在过去的若干年中, 微软先后推出了一系列广受欢迎的通信技术, 比如DCOM、Enterprise Service、.NET Remoting、XML Web Service、MS...
WindowsMobile/Win Form-界面自适应

WindowsMobile/Win Form-界面自适应

WindowsMobile/Win Form-界面自适应2011-01-03 博客园 BloodyAngel起因使用SmartPhone上的WinForm做了一个WM的小程序,结果放到手机上实际一运行。发现动态生成的控件在里面显示得都非常小,难以看清。原因我的问题是需要在InitializeComponent方法结束后,动态生成一些控件,如下:/// <summary>/// 这个方法会根据传入的实体模型,生成一些选择框,设置它们的大小、位置;...
浅谈代码的执行效率(1):算法是关键

浅谈代码的执行效率(1):算法是关键

浅谈代码的执行效率(1):算法是关键2011-01-03Jeffrey Zhao前一段时间在博客园里看到这样一篇文章,那位兄弟谈到程序效率的关键是“简短”。他说,“程序越简短,其可执行代码就越少,就越有效率”,而在编写程序的时候,“要尽量改进我们的算法,而改进算法中最重要的一条,就是减少语句”。这句话从表面上似乎正确,但我认为性能这问题不能用“简短”这种方式去思...
浅谈代码的执行效率(2):编译器的威力

浅谈代码的执行效率(2):编译器的威力

浅谈代码的执行效率(2):编译器的威力2011-01-03Jeffrey Zhao在上一篇文章中,我主要表达了这样一个观点:影响程序效率的关键之一是算法,而算法的选择与优化,和是否多一个赋值少一个判断的关系不大。关于算法的选择,我谈到其理论上的复杂度,并不直接反映出效率。因为在实际运用时,数据的规模,特征等等都会涉及到算法的实际效果。一个时间复杂度低的算法并不代表任何情况下的效率都高。这是“实际”和“理论”的...
浅谈代码的执行效率(3):缓存与局部性

浅谈代码的执行效率(3):缓存与局部性

浅谈代码的执行效率(3):缓存与局部性2011-01-03Jeffrey Zhao在前两篇文章里,我们讨论了程序性能的两个方面,一是算法(广义的算法,即解决问题的方法),二是编译器。通过这两个方面,我想表达的意思是,一段程序的执行效率,是很难从表面现象得出结论的,至少从一些简单的层面,如代码的长度是几乎难以说明任何问题——因此一定要进行Profiling才能做到有效的优化。而现在,我们假设两段程序算法基本相同,编译器也只是进行简单的...
谈谈Dictionary<T1,T2>和List<T>的问题

谈谈Dictionary&lt;T1,T2&gt;和List&lt;T&gt;的问题

谈谈Dictionary<T1,T2>和List<T>的问题2011-01-03 博客园 飞林沙引子:事情的起因我已经记不清了,但是事情的根本原因在于,我们要遍历一个集合,是用字典来存储还是用数组链表来存储。1.把基本概念说清对List<T>的阐述,我在http://www.cnblogs.com/kym/archive/2009/03/09/1406657.html一文中已经有过相应的解释,再此不再赘述。Diction...
<< 31 32 33 34 35 36 37 38 39 40 >>