随笔分类 - 07.经验点滴
摘要:所谓动态程序集,就是在运行期间由Emit创建的程序集。假设,我们的Client和Server之间通过Remoting通信,在某个时刻,Client会创建一个动态程序集,并且Client和Server都会基于该程序集做一些逻辑操作,那么Client如何将动态程序集传递到Server端了?Client和Server又如何做才能正常使用这个程序集了?
阅读全文
摘要:假设,Remoting服务端接受并保存了一个Remoting客户端注册的回调接口(比如ICallback),在一定的时刻,服务端会通过ICallback接口调用客户端的某些方法。当运行一段时间后,服务端再次回调ICallback时,就抛出了类似下面的异常:对象“/9ca38d87_7f53_49b7...
阅读全文
摘要:DCFramework的基础结构介绍,提供 DCFramework Demo源码下载。
阅读全文
摘要:分布式计算最基本的目的之一就是为了充分利用空闲的计算节点的计算能力。通常,我们首先会将要被分布式计算的程序在每个计算节点部署好,然后才可以调用分布式计算。这种“部署”是一种静态的。之所以称为静态的,是因为还有一种更动态更灵活的方式 -- 我们可以随时的、动态的将我们新完成的程序自动【提交】到已经部署好的分布式框架里动态运行起来。
阅读全文
摘要:在系统中,我们经常会遇到这样的需求:将大量(比如几十万、甚至上百万)的对象进行排序,然后只需要取出最Top的前N名作为排行榜的数据,这即是一个TopN算法。
阅读全文
摘要:我们现在的一个.NET应用程序需要用到2G左右的内存,当我们将这个程序放到有4G内存的服务器上运行时,就会抛出OutOfMemory异常。为了搞清楚抛出异常的原因,我写了个用于申请内存的测试程序,每次申请100M。运行这个测试程序,发现每次申请到1.2G时就会抛出OutOfMemory异常。我在网上...
阅读全文
摘要:Spring.net的IOC容器中的某个对象还未被正确设置其属性就被其它依赖对象使用了,以至于依赖对象获取了错误的数据。
阅读全文
摘要:void 也是.NET中的一种类型,只不过在C#中看不到“System.VOid”这种Type,而在IL这一层是可以看到的。如果我们要通过反射判断一个方法是否有返回值,比较直观的解决办法好像是这样:MethodInfooriginMethod=;if(originMethod.ReturnType!...
阅读全文
摘要:今日将Remoting服务端搬到一台双网卡的服务器上启动,结果客户端无法Remoting连接到服务器,经过探索,发现Remoting服务绑定到了内网网卡的地址,解决办法很简单,只需要在Channel配置项中将useIpAddress属性设置为false,如:
阅读全文
摘要:通常,我们的Tcp服务器会放在IDC机房的某一个或几个防火墙后面,客户端与服务器之间的TCP连接会经过防火墙中转,如下图所示: 在这种情况下,有一点特别需要注意:当Firewall与Server之间的Tcp连接在一段时间(如10分钟)内没有任何应用层的消息经过时,Firewall可能会主动断开与Se...
阅读全文
摘要:灵活地运用匿名委托,可以极大地精简我们操作集合的代码!
阅读全文
摘要:当客户端与服务端通过Tcp Socket进行通信时,如果客户端应用正常退出或异常退出,服务端都会在对应的连接上获取感知(如返回0、或抛出异常)。但是,如果客户端的网线被拔掉,那么,默认情况下,服务端需要在2个小时后才会感知客户端掉线。对于很多服务端应用程序来说,这么长的反应时间是不能忍受的。我们通常...
阅读全文
摘要:Spring.Services程序集中提供了对Remoting的支持,使用Spring.net可以方便的发布和使用Remoting服务。1.Remoting发布(服务端)(1)首先在config文件中注册通道:(2)通过配置发布Remoting对象:这里我们以SAO的方式发布Remoting对象。 ...
阅读全文
摘要:System.Threading.Timer 是一个非常常用的定时器类,关于这个类的使用,我们需要注意以下几点:1.System.Threading.Timer 的任何一个实例,实际上是通过使用win32底层(非.NET Thread Pool中的线程)来进行调度的。2.当到达调度时刻时,Syste...
阅读全文
摘要:SpringFox 用于将object 与 xml字符串相互转换。XML大纲遵循Spring.net的object配置大纲。
阅读全文
摘要:灵活地使用Null Object设计模式,可以使得我们的代码更加简洁和精炼。
阅读全文
摘要:今天在使用.NET操作消息队列时,碰到一个小问题,如果采用XmlMessageFormatter序列化消息体,则消息体中不能包含Hashtable等字段,否则将无法完成序列化和反序列化(即使消息体对象加上了Serializable特性也不行)。经过研究发现,XmlMessageFormatter不会...
阅读全文
摘要:在windows平台上,MSMQ是首选的消息传递中间件,它是一种高速、异步、可靠的通信机制,当我们在Internet上的两个应用需要交换信息时,使用这样的中间件可能是必须的。WCF完全面向SOA,大大简化了以往风格迥异的多种分布式解决方案。刚好,最近的一个项目需要使用SOA架构,而底层需要使用MSM...
阅读全文
摘要:我们经常需要通过反射来调用目标对象的方法或获取/设置目标对象的属性,Type.InvokeMember 方法签名如下:publicobjectInvokeMember(stringname,BindingFlagsinvokeAttr,Binderbinder,objecttarget,objec...
阅读全文
摘要:终于,使用Java完成了一个WebService的例子,其中的一个非常小的问题,折腾了我将近一天的时间。下面给出步骤,说明在Java平台上如何开发WebService。 采用的工具:Eclipse3.1.2 + Tomcat5.5 + XFire1.1 。使用XFire开发WebService应该...
阅读全文