会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
zhuweisky
微信号:oraycn。跨平台的网络通信框架、跨平台的网络语音视频框架。适用领域:即时通讯、视频会议、智慧医疗、网络教学等。
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
10
11
12
13
14
15
16
17
下一页
2006年4月19日
初试Ajax.Net !
摘要: 从事了几年的C/S模式的开发,曾一直无暇研究B/S,前段时间摊上了一个B/S的活,这才开始认真的关注其B/S开发。而且,AJAX技术的风起云涌,也使得B/S应用的表现力日益增强,大有逐步吞食C/S领地之势。这两天通过《Ajax基础教程》开始学习Ajax技术,在附录的Ajax框架介绍中发现了这样一句...
阅读全文
posted @ 2006-04-19 10:08 zhuweisky
阅读(4961)
评论(14)
推荐(0)
2006年4月14日
ESFramework介绍之(24)―― 日志记录IEsbLogger
摘要: 框架,从另外一个角度说,就是一个半成品的应用程序,既然如此,框架在运行的过程中也会遇到诸多的异常、错误情况,我们需要将这些情况记录下来,以便在发生问题时为我们的诊断提供必要的帮助。 最最开始,那还是在ESFramework的前身即EnterpriseServerBase的时候,由于当时只是将EnterpriseServerBase作为一个类库,而并没有提升到一个框架的高度,所以是没有...
阅读全文
posted @ 2006-04-14 11:47 zhuweisky
阅读(1740)
评论(2)
推荐(0)
2006年4月13日
ESFramework介绍之(23)―― AgileTcp
摘要: 前面已经介绍了ITcp接口,而AgileTcp就是ESFramework给出的ITcp的参考实现。在之前,我曾经讲解过模拟完成端口的Tcp组件实现和异步Tcp组件实现,在它们的基础之上,我更改了处理策略,而形成了AgileTcp,目的是更清晰的结构、更高的效率。这个策略会在后面讲到。 Tcp组件主要控制着系统与终端用户的所有消息的进出,ITcp接口描述了这个组件的外貌,告诉外部如何使...
阅读全文
posted @ 2006-04-13 10:21 zhuweisky
阅读(3659)
评论(6)
推荐(0)
2006年4月12日
ESFramework介绍之(22)―― 服务器系统自动升级
摘要: (本文名字取为“服务器系统自动升级”,实际上适用于所有应用程序自动升级的情况。) 前文介绍了在服务器或客户端应用程序运行的过程中,插件如何自动升级、更新。基于前文相同的理由,AS、FS、IRAS也需要有自动升级的功能。 与插件在运行时动态更新不同,服务器系统无法在运行时动态更新,只有在服务器系统重新启动的时候,才是自动升级的切入点。(1)对于功能服务器FS,可以采用持续/逐个...
阅读全文
posted @ 2006-04-12 15:10 zhuweisky
阅读(2957)
评论(0)
推荐(0)
ESFramework介绍之(21)-- Tcp组件接口ITcp介绍
摘要: 写了这么多篇介绍ESFramework的文章才想起来还有一些很基础的内容没有介绍,前面介绍的一些组件、框架基本上是与协议无关的(比如无论是Tcp还是Udp甚至是Remoting、WebService都可以通用),然而到了应用的最底层,我们总需要选择一种通信协议,.net Framework对Remoting和WebService已经封装的足够好了,而对Tcp和Udp提供的API还是...
阅读全文
posted @ 2006-04-12 11:43 zhuweisky
阅读(2610)
评论(4)
推荐(0)
2006年4月9日
当你拥有一把用得顺手的锤子
摘要: 记不得在哪里看过这句话,“当你拥有一把用得顺手的锤子,就会认为全世界都是钉子”。所有的事情、所有的问题,你都尝试用这把锤子去解决。很多情况下,常常,这把锤子解决不了问题,或者说,有更好的工具来解决手头的问题。比如,将钉子从木头中取出来,使用起子会更有效率、更省事。 编程语言,比如C#,就是我们手上的锤子;而由此语言而形成的思维方式、思考习惯更是我们头脑中一把无形的锤子。这是好事、也是坏事--好事在于我们至少有一把锤子,坏事在于我们常常因为手中的用了顺手的锤子而忽略了其它工具。 我曾经在广州的一个公司建议我所在部门的经理将AOP技术应用到我们手头的项目中来解决很多AOP擅长而OOP不擅长的事情.
阅读全文
posted @ 2006-04-09 17:44 zhuweisky
阅读(2447)
评论(20)
推荐(1)
2006年4月8日
将权限引入系统的探索
摘要: 很久以前就尝试过使用AOP进行权限控制的管理,那时候只是试试而已,并没有在项目中应用过,最近跟的一个B/S项目中要求我们把权限管理加进去,于是我考虑以前的AOP方法是否真的可行。思考许久后的结果是,可行,但是太麻烦。 主要原因在于需要在UI层逻辑层数据层之外增加额外的一层来使得AOP拦截可以以恰当...
阅读全文
posted @ 2006-04-08 22:39 zhuweisky
阅读(3374)
评论(5)
推荐(0)
2006年4月7日
ESFramework介绍之(20)―― 插件自动升级
摘要: 当我们的服务平台搭建成功后,所需要做的主要事情就是开发服务端功能插件(IFunAddin)和客户端插件(IPassiveAddin),每个插件对(AddinPair)实现了一组相似或相近的需求/功能。 好了,我们已经开发了十多对插件对,然后分别XCopy到了各个服务器节点上,“整个系统”已经投入了运行。通过前面的介绍(回顾),相信大家对我们的“整个系统”有了个大致的映像。我们的IRA...
阅读全文
posted @ 2006-04-07 14:37 zhuweisky
阅读(3265)
评论(2)
推荐(0)
ESFramework介绍之(19)―― 对动态组ActiveGroup的支持
摘要: 什么是动态组?举个例子就清楚了。QQ支持多人在一个组中聊天的模式是群,这是一种静态组;而MSN中的动态的将多个人拉到一个组中来群聊,就是动态组。关于动态组,还有一个很好的例子,就是多人联网游戏,比如联网的星际。首先由发起者创建一个组(动态组),然后其它玩家加入进来开始游戏,游戏结束了,该动态组就销毁了。所以说,动态组是个“临时性的”,生命比较短暂;而静态组,通常被存储于永久介质(如数据库)...
阅读全文
posted @ 2006-04-07 10:24 zhuweisky
阅读(2151)
评论(2)
推荐(0)
2006年3月31日
ESFramework解疑 --点滴(不断补充中)
摘要: 1.IMessageHeader的实现在哪里?(2006.03.31) MSN上有个叫MeDiar的朋友问我ESFramework中IMessageHeader的实现在哪里?答案是,IMessageHeader在你的具体应用中实现,而不是在ESFramework框架中。 IMessageHeader仅仅规定了你的消息头中至少应该包含的内容(如果你的应用需要,还可以将更多的内容包括进来...
阅读全文
posted @ 2006-03-31 15:59 zhuweisky
阅读(3030)
评论(6)
推荐(0)
ESFramework介绍之(18)―― Tcp用户管理器组件
摘要: 当我们的应用中客户端与AS之间是通过Tcp进行通信的时候,通常,应用也要求管理所有在线的用户。这种管理至少包含以下几点:(1) 当用户上线时,记录上线时间(2) 当用户请求服务时,记录请求服务的时间、服务的类型、本次服务下载的数据量(3) 当用户下线时,记录下线时间。并把本次用户登录、请求服务过程中的所有信息持久化保存(如记录到数据库) 在ESFramework中,实现这种管理的是...
阅读全文
posted @ 2006-03-31 15:00 zhuweisky
阅读(2846)
评论(1)
推荐(0)
2006年3月29日
【Spring.net点滴】
摘要: (环境:.Net1.1 ,Spring.net 1.2 Preview)1.集合属性注入 我们的组件经常需要集合类型的属性注入,比如我的Hook(钩子)组件需要注入一个集合,该集合中的元素(int型)指明了要截获哪些类型的消息。我们经常使用IList处理集合问题: #regionHookList其中...
阅读全文
posted @ 2006-03-29 10:17 zhuweisky
阅读(2747)
评论(5)
推荐(0)
2006年3月27日
ESFramework介绍之(17)―― 支持漫游用户和跨区域功能请求
摘要: 对于漫游用户的支持和跨区域功能请求的支持是ESFramework最基本的目的之一(回顾),在详细讲述解决方案之前,先了解一下关于这个问题的上下文。 在我们前面讲述的4层C/S架构中,每个AS负责一块区域。比如上海AS负责处理所有目标城市为上海的功能请求和管理所有在上海AS上注册的用户(比如PDA用户或手机用户)。如果一个本是在上海注册的用户出差来到了武汉,最方便的,他会连上武汉的AS...
阅读全文
posted @ 2006-03-27 15:19 zhuweisky
阅读(2562)
评论(0)
推荐(0)
2006年3月24日
VS小插件--属性自动生成器
摘要: 对于“依赖注入”,我最常用的是“设值注入法”(即通过Setter属性注入),对于需要注入很多依赖的类来说,一个一个的手动写属性的繁琐已经让我难以忍受了。于是我写了一个VS2003的小插件,你只需要输入类型和属性名,它就能在编辑器指定的地方自动生成属性,并且一次可生成多个属性。(我试用了VS2005...
阅读全文
posted @ 2006-03-24 16:01 zhuweisky
阅读(4158)
评论(17)
推荐(1)
ESFramework介绍之(16)―― Tcp数据自动发送器ITcpAutoSender
摘要: 我们已经积累了这样的经验:如果有一个大块的数据需要通过Tcp发送,我们会采用异步的方式以避免当前工作线程阻塞。那么,如果我们有多个线程需要同时发送大块的数据了?每个线程都在NetworkStream或Socket上提交异步发送数据的请求会导致数据发送的混乱(多个线程同时在一个Socket上进行写操作),所以,我引入了前面介绍的线程安全的网络流。在引入这个类后,似乎日子已经很好过了,但是新的...
阅读全文
posted @ 2006-03-24 15:22 zhuweisky
阅读(3393)
评论(2)
推荐(0)
ESFramework介绍之(15)-- IRAS
摘要: 每个城市都对应着自己的AS,每个AS都有一组FS为之服务,而所有的AS都由一个IRAS联系/管理起来(回顾)。前面我们已经提到,所有的FS都可以是动态添加/移除的,并且FS的地址也是自由可变的。同样,所有AS也都是可以动态添加/移除的,并且AS的地址也是可变的(这里AS与IRAS的机制同上文介绍的FS与AS之间的机制一样)。但是,唯一不能随便变化的是IRAS的地址。这是因为,所有终端连的第...
阅读全文
posted @ 2006-03-24 09:51 zhuweisky
阅读(2460)
评论(0)
推荐(0)
2006年3月23日
ESFramework介绍之(14)-- AS与FS通信方案
摘要: 前面我们已经多次提到,每个AS都有一组FS为之服务(回顾),AS将接收到的功能请求通过Tcp连接池 或Remoting转发给某个FS处理。下面我们将深入讨论AS和FS之间的通信机制。 首先要解决第一个问题,AS如何知道每个为之服务的FS的地址? 最常见的一种解决方案是,AS处的配置文件中有一个FS地址列表,AS每次启动时,就读取这个列表,然后与列表中的每个FS建立Tcp连接池。...
阅读全文
posted @ 2006-03-23 09:42 zhuweisky
阅读(3255)
评论(0)
推荐(0)
2006年3月20日
ESFramework介绍之(13)-- 功能插件处理器工厂
摘要: 上文讲述的是AS中的基于连接池的消息处理器,现在我们把焦点转移到功能服务器FS上来,看看FS上消息分派的过程。当FS接收到到一个请求后,会从已加载的功能插件列表中选择一个合适的插件来处理这个消息,而每一个功能插件就相当于一个消息处理器。FS和AS的结构一致: 要注意的是,功能服务器FS上收到的所有消息都应该交给功能插件来处理,不存在其它的处理方式。这是使得FS“纯粹”的必须要求。上图...
阅读全文
posted @ 2006-03-20 10:39 zhuweisky
阅读(3146)
评论(0)
推荐(0)
2006年3月17日
ESFramework介绍之(12)―― 基于Tcp连接池的消息处理器
摘要: 前面的两篇文章我们已经介绍了Tcp连接池和Tcp连接池管理器,并且引入了ITcpPool接口,这个接口可以将单个连接池和一组连接池统一起来,使它们有相同的外部使用方式。现在我们需要考虑的问题是,当消息分派器分派一个接收到的请求时,如果这个请求需要被FS上的某个功能插件处理,那么消息分派器是如何将这个消息分派到对应的FS上去的? 回顾介绍消息分派器时画出的各消息组件联系图,我们非常自...
阅读全文
posted @ 2006-03-17 10:25 zhuweisky
阅读(3241)
评论(3)
推荐(0)
2006年3月16日
ESFramework介绍之(11)-- Tcp连接池管理器
摘要: 上文已经讲到,Tcp连接池管理器为我们的应用进行了很多复杂的管理,比如功能服务器的调度(实现FS的负载均衡)、连接池的动态添加/移除、控制每个连接池的相关参数在UI上的显示等,并且连接池管理器与单个连接池拥有一样的接口ITcpPool。我们先回顾一下这个接口: 1 public interface ITcpPool 2 { 3 RentStreamRes...
阅读全文
posted @ 2006-03-16 15:17 zhuweisky
阅读(3828)
评论(1)
推荐(0)
上一页
1
···
10
11
12
13
14
15
16
17
下一页
公告