写书计划启动!《.NET通信框架的设计、实现与应用》

    ESFramework 2.0 的发布,标志ESFramework 已经进入了一个稳定的发展阶段,在过去两年多的时间里,ESFramework 逐渐地成熟起来。
   很早就想过要写一本关于.NET 通信框架的书,如今,是时候了!这将不是一本讲述深奥理论的教程,它是我这几年在通信框架开发过程中经验的总结;它融合原理、实现、应用于一体。虽然全书围绕ESFramework 2.0来进行,但是如果你理解了书中的所有内容,那么你完全有能力设计一个自己的通信框架。而书中的许多框架设计的经验对于其它框架、类库、应用系统的设计者应该都是有参考价值的。
    这本书大致将分为六个部分,共18章,初步估计会有300~350页左右,我计划用4~6个月的时间来完成这本书。  
      下面是本书的目录(暂定,2006.12.06 修订):
 

 

第一部分 通信框架基础

第1章         框架?

1.1         框架与类库的区别

1.2         通用框架与应用框架

1.3         框架之于应用

1.4         框架设计

1.4.1 框架设计经验、原则

1.4.2 如何称得上一个优秀的框架?

第2章         通信框架

2.1         分布式应用典型模式

2.2         通信框架的定位与目标

2.3         ESFramework简介

 

第二部分 通信框架核心

第3章 消息

   3.1   消息的类别

   3.2   消息的两种形态

3.3   消息协议

   3.3.1 字符协议

      3.3.2 流协议

      3.3.3 IContract接口

3.4 消息的元数据 ―― 消息头

      3.4.1 消息头详解

      3.4.2 如何实现消息头?

3.4.3 IContractHelper接口

   3.5 消息类 (NetMessage)

第4章 消息组件

4.1 消息组件简介

4.2 消息流程骨架

   4.2.1 消息流程骨架介绍

   4.2.2 使用Composite设计模式

4.3 消息处理器

   4.3.1 消息处理器与消息分组

   4.3.2 ContainerStyle消息处理器

   4.3.3 基本请求处理器接口

   4.3.4 实现消息处理器

4.4 消息处理器工厂

   4.4.1 使用Factory设计模式

   4.4.2 ProcesserFactory类

   4.4.3 SingleProcesserFactory类

4.5 消息管道

   4.5.1 BaseMessageFilter类

   4.5.2 ContainerStyle消息管道

4.6 消息监控

   4.6.1 ContainerStyle消息监控器

   4.6.2 网关级监控和内部监控

4.7 消息分派器

   4.7.1 内部消息分派器

   4.7.2 日志记录器

   4.7.3 使用Null Object设计模式

   4.7.4 MessageDispatcher类

   4.7.5 使用MessageDispatcher类

第5章 网络引擎

5.1 INetEngine接口

5.2 实现网络引擎的思考

 

第三部分 通信服务端模型与实现

第6章 服务端引擎模型

第7章 服务端引擎实现

   7.1 基于Tcp的服务端引擎

   7.2 基于Udp的服务端引擎

第8章 用户管理

   8.1 用户管理模型

   8.2 在线检查机制

第9章 通知 Notify

   9.1 IRegularSender 接口

   9.2 IRegularSender 实现

 

第四部分 通信客户端模型与实现

第10章 客户端引擎模型

   10.1 服务器代理

   10.2 消息收发器

第11章 客户端引擎实现

   11.1 基于Tcp的客户端引擎

   11.2 基于Udp的客户端引擎

 

第五部分 框架与插件

第12章 插件介绍

第13章 消息处理器插件

第14章 客户端插件

第15章 插件对(AddinPair)与调试

 

第六部分 基于通信框架的应用示例

第16章 应用通信框架之前的准备

   16.1 通信框架扩展

   16.2 通信框架配置

第17章 天气服务示例

第18章 改进的天气服务示例

第19章 即时通讯应用示例


$(function(){ $.fn.extend({ SimpleTree:function(options){ //初始化参数 var option = $.extend({ click:function(a){ } },options); option.tree=this; /* 在参数对象中添加对当前菜单树的引用,以便在对象中使用该菜单树 */ option._init=function(){ /* * 初始化菜单展开状态,以及分叉节点的样式 */ this.tree.find("ul ul").hide(); /* 隐藏所有子级菜单 */ this.tree.find("ul ul").prev("li").removeClass("open"); /* 移除所有子级菜单父节点的 open 样式 */ this.tree.find("ul ul[show='true']").show(); /* 显示 show 属性为 true 的子级菜单 */ this.tree.find("ul ul[show='true']").prev("li").addClass("open"); /* 添加 show 属性为 true 的子级菜单父节点的 open 样式 */ }/* option._init() End */ /* 设置所有超链接不响应单击事件 */ this.find("a").click(function(){ $(this).parent("li").click(); return false; }); /* 菜单项 接受单击 */ this.find("li").click(function(){ /* * 当单击菜单项 * 1.触发用户自定义的单击事件,将该 标签中的第一个超链接做为参数传递过去 * 2.修改当前菜单项所属的子菜单的显示状态(如果等于 true 将其设置为 false,否则将其设置为 true) * 3.重新初始化菜单 */ option.click($(this).find("a")[0]); /* 触发单击 */ /* * 如果当前节点下面包含子菜单,并且其 show 属性的值为 true,则修改其 show 属性为 false * 否则修改其 show 属性为 true */ /* if($(this).next("ul").attr("show")=="true"){ $(this).next("ul").attr("show","false"); }else{ $(this).next("ul").attr("show","true"); }*/ /* 初始化菜单 */ option._init(); }); /* 设置所有父节点样式 */ this.find("ul").prev("li").addClass("folder"); /* 设置节点“是否包含子节点”属性 */ this.find("li").find("a").attr("hasChild",false); this.find("ul").prev("li").find("a").attr("hasChild",true); /* 初始化菜单 */ option._init(); }/* SimpleTree Function End */ }); });
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值