gaoxiang

专注于.NET技术

博客园 首页 新随笔 联系 订阅 管理

文章分类 -  ESFramework

上一页 1 2 3 4

摘要:.NET FrameWork 1.1之前版本根本不支持多媒体,.NET FrameWork 2.0也只是对多媒体进行了最简单最有限的支持,如果在我们的.NET程序中需要播放多媒体文件,通常只有通过互操作引入Activex控件来播放音频/视频。在网上找了N久关于C#播放rm视频的文章,终于有了一点结果。为了方便后来者,在这里给出C#中播放rm的简单步骤:(1)安装了RealOne或RealPlaye... 阅读全文
posted @ 2006-05-18 13:52 S孤单一吻S 阅读(527) 评论(0) 推荐(0)

摘要:说这是一个完全的解决方案,其实有点夸大了,但这个方案确实可以缓解TCP服务器遭受“拒绝服务攻击”时表现出的脆弱性。 当服务器以Tcp的方式提供服务时,客户端通过tcp连接上服务器。这时,恶意的程序,也可以通过tcp连接我们的服务器,如果恶意的程序采用循环与我们的服务器建立成千上万的连接,并在每个连接上都发送恶意的数据包给服务器,慢慢就会导致服务器资源耗尽而崩溃! 为了增强Tcp服务器... 阅读全文
posted @ 2006-05-18 13:51 S孤单一吻S 阅读(230) 评论(0) 推荐(0)

摘要:前面我们已经讨论了客户端与服务器通信的一般模式,即Client通过Tcp连接向Server递交请求,Server处理请求后,使用同一Tcp连接将服务结果发送给Client。这一Tcp连接在程序中被抽象成网络流,也就是System.Net.Sockets.NetworkStream类,这个类是非线程安全的。 一.线程安全 如果一个类是线程安全的,表明该类的任何一个实例是线程安全的。也就是说,在多线... 阅读全文
posted @ 2006-05-18 13:50 S孤单一吻S 阅读(409) 评论(0) 推荐(0)

摘要:近日,做一个分布式数据库定时同步的项目,也就是说有多个物理节点上的数据库需要在每天某时来同步表中的数据,对于某个指定节点上的某个表发生的变化(增量)可以通过对该表执行的SqlCommand来记录,当同步过程发生时,需要对其它所有节点上的同名表执行相同的SqlCommand。由于,同步是定时发生的,所以增量SqlCommand就需要首先被保存起来,开始我们计划将其序列化后保存在数据库中,但是到运行... 阅读全文
posted @ 2006-05-18 13:49 S孤单一吻S 阅读(613) 评论(0) 推荐(0)

摘要:以前曾写过一篇“关于跨程序集的反射”的blog,关于跨程序集加载类型,文中使用的是方法是:先加载目标类型所在的程序集,再使用Assembly. GetType方法获取类型。文后Luna兄的评论说,可以直接使用Type.GetType(">,>")来加载类型,当初我查了MSDN,MSDN中也说到了这一点,我也就记住了这个解决方案。但是,今天使用这种方式来跨程序集进行类型加载时,却始终返回null。难... 阅读全文
posted @ 2006-05-18 13:48 S孤单一吻S 阅读(243) 评论(0) 推荐(0)

摘要:上一篇主要讲到了Tcp通信层中的核心组件――Tcp组件的实现,Tcp组件是整个通信层的消息驱动源,甚至,可以将Tcp组件看作是我们整个服务器系统的消息驱动源,消息处理过程从这里引发。类似的消息驱动源还有发布的WebService接口、Remoting接口等。今天我们需要关注的是Tcp通信层中的“中央”组件――消息分派器组件ITcpReqStreamDispatcher,大家已经从前文的组件关系图... 阅读全文
posted @ 2006-05-18 13:46 S孤单一吻S 阅读(301) 评论(1) 推荐(0)

摘要:2006年已经来临,回首刚走过的2005,心中感慨万千。在人生和生活的目标上,有了清晰明确的定位,终于知道了自己喜欢什么样的生活,喜欢什么样的生活方式;在技术上,成熟了不少,眼界也开阔的不少,从面向对象到组件、从.Net到J2EE、从微软到开源,颇有收获。特别值得一提的是,认识了Rod Johnson这个大牛人,也终于在自己的项目中正式使用Spring.net框架来开发了,这确实是一个优秀的框架。... 阅读全文
posted @ 2006-05-18 13:45 S孤单一吻S 阅读(265) 评论(0) 推荐(0)

摘要:最初Peter Deutsch从J2EE的企业开发中总结了7大谬误,后来,James Gosling在其基础上增加了一条,再后来,Ted Neward又在其上增加了两条,总共为“十大谬误”。这段时间正在看两本书:《Effective Enterprise Java》和《J2EE AntiPatterns》,恰好两本书都提到了“分布式计算的*大谬误”,我在这里简单引荐一下这“分布式计算十大谬误”:)... 阅读全文
posted @ 2006-05-18 13:40 S孤单一吻S 阅读(124) 评论(0) 推荐(0)

摘要:设想这样一种场景:我们的服务系统提供一系列的功能服务,而以后会有更多新的功能服务增加进来,也可能出现功能服务需要被更改或移除的情况。对于这样的服务系统,一个常见的基本的要求就是,在添加/移除/更新功能服务的时候不能停止的服务系统的运行。通常,将每一项服务封装成一个插件Dll,可以非常容易地实现“插件热插拔”(关于插件的基础信息,参见这里),但是插件的“热替换”(“动态替换”)却成了一个问题。原因在... 阅读全文
posted @ 2006-05-18 13:38 S孤单一吻S 阅读(237) 评论(0) 推荐(0)

摘要:手头上的一个项目使用了Spring.net的AOP了处理程序的异常,一不小心就掉进了陷阱,这里记录下来,希望对后来者有所帮助。Spring.net的AOP实现是通过运行时创建动态的AOP代理来完成的。简单图示如下: 图中的“POJO”以词来自Java,表示一个普通的.net对象,所有对POJO的调用都要经过Aop代理进行,因此Aop才有机会插入Pre_Action、Post_Action、和... 阅读全文
posted @ 2006-05-18 13:38 S孤单一吻S 阅读(163) 评论(0) 推荐(0)

摘要:一个组件与另一个组件之间的关系可以通过三种方式建立起来:事件、依赖倒置、Bridge。现在我们只考虑单向依赖的关系,即信息提供者和信息消费者。事件是一种松耦合的信息发布方式,事件发布者(信息提供者)不需要关心事件预定者(即信息消费者)的任何信息,但是事件预定者需要依赖事件发布者;依赖倒置则反转了这种关系,在依赖倒置的方式中,信息提供者依赖信息消费者(你也许对这句话觉得奇怪,后面的例子会说明),而信... 阅读全文
posted @ 2006-05-18 13:36 S孤单一吻S 阅读(358) 评论(0) 推荐(0)

摘要:http://chs.gotdotnet.com/quickstart/howto/doc/Remoting/quickstart.aspx编译时解析对远程对象的客户端引用的三种不同的方法为:1.编译客户端时,编译服务器对象并将 EXE 或 DLL 指定为对编译器的引用。如果客户端和服务器组件都是在同一地点开发的,这种方法会非常有用。2.从接口类派生服务器对象并使用接口编译客户端。如果客户端和服... 阅读全文
posted @ 2006-05-18 13:35 S孤单一吻S 阅读(4368) 评论(4) 推荐(0)

摘要:在.Net Remoting的应用中,经常碰到需要预定Remoting Object的事件的情况,要能使远程事件发布/预定如预期中的进行,需要注意如下问题:1. Remoting 配置 在Remoting配置文件中,需要将typeFilterLevel设置为Full,否则,将出现RemotingHandler无法序列化的异常。 如可能的channels配置: 《Server端》 ... 阅读全文
posted @ 2006-05-18 13:33 S孤单一吻S 阅读(320) 评论(0) 推荐(0)

摘要:在DataGrid的web版控件中提供了自动分页的功能,但是我从来没用过它,因为它实现的分页只是一种假相。我们为什么需要分页?那是因为符合条件的记录可能很多,如果一次读取所有的记录,不仅延长获取数据的时间,而且也极度浪费内存。而分页的存在的主要目的正是为了解决这两个问题(当然,也不排除为了UI美观的需要而使用分页的)。而web版的DataGrid是怎样实现分页的了?它并没有打算解决上述两个问题,而... 阅读全文
posted @ 2006-05-18 13:32 S孤单一吻S 阅读(141) 评论(0) 推荐(0)

摘要:通常我们在程序中需要调用WebService时,都是通过“添加Web引用”,让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务。这样是使工作简单了,但是却和提供Web服务的URL、方法名、参数绑定在一起了,这是VS.NET自动为我们生成Web服务代理的限制。如果哪一天发布Web服务的URL改变了,则我们需要重新让VS.NET生成代理,并重新编译。在某些情况下,这可能是不能忍受的,我... 阅读全文
posted @ 2006-05-18 13:31 S孤单一吻S 阅读(648) 评论(1) 推荐(0)

摘要:在习惯了使用基于接口的编程之后,经常会遇到这样的问题,比如,B组件需要使用实现了IA接口的A组件,但是如果在没有A组件的情况下B组件也可以正常工作,像这样: public interface IA { void DoWork1() ; void DoWork2() ; } public class B :IB { priva... 阅读全文
posted @ 2006-05-18 13:30 S孤单一吻S 阅读(147) 评论(0) 推荐(0)

摘要:昨天买了一本《Effective C#》,看了几个Item,虽然没有当初读《Effective C++》时的那般震撼,但是也收获不少。把其中的要点记录于下,有些条款加上了自己的理解,权当作读书笔记吧 :-)Item 1: Always Use Properties Instead of Accessible Data Members 这个是地球人都知道的条款了。你需要记住,属性是类的外部接口... 阅读全文
posted @ 2006-05-18 13:29 S孤单一吻S 阅读(141) 评论(0) 推荐(0)

摘要:昨天看到某个公司招聘出的一道题目,题目是这样的:判断任意三个点是否构成三角形,以及某个点是否位于指定的三角形内。 关于这个问题,我给出了自己的答案,首先解决第一个问题: /// /// IsTriangle 判断集合中的头三个点PointF是否可以构成一个三角形 /// public static boo... 阅读全文
posted @ 2006-05-18 13:27 S孤单一吻S 阅读(161) 评论(0) 推荐(0)

摘要:以前空闲的时候用C#实现的路径规划算法,今日贴它出来,看大家有没有更好的实现方案。关于路径规划(最短路径)算法的背景知识,大家可以参考《C++算法--图算法》一书。 该图算法描述的是这样的场景:图由节点和带有方向的边构成,每条边都有相应的权值,路径规划(最短路径)算法就是要找出从节点A到节点B的累积权值最小的路径。 首先,我们可以将“有向边”抽象为Edge类: public c... 阅读全文
posted @ 2006-05-18 13:26 S孤单一吻S 阅读(2208) 评论(0) 推荐(0)

上一页 1 2 3 4