要想成为一个通信程序的开发高手,能够开发出稳定的、高效的、伸缩性好、可扩展性强的、单机承载数千甚至上万用户同时在线的网络应用系 统,一般至少需要3年以上磨练与经验积累。积累过程中所经历的种种折磨,过来人一定都深有体会 -- 经常地加班加点、熬夜调试、就连做梦的时候都在想着那些不经常出现的bug究竟是什么原因导致的、要如何解决。
支持巨大并发的通信程序的开发是非常复杂的,其涉及到很多方面的专业知识,像TCP、UDP协议、Socket开发、多线程编程、线程池、并发架构、分布式架构、完成端口(IOCP)模型、异步编程模型、设计模式等等。
而 现在,所有这些经验的结晶都浓缩在ESFramework框架中。ESFramework,是一套可高度复用的、灵活的、单纯而又强大的.NET通信框 架,全部采用C#编写。ESFramework内置了对Tcp和Udp的支持,并且支持文本协议和流协议,提供了多种网络引擎供服务端和客户端开发人员轻 松使用。采用ESFramework框架,使得您不需要了解Socket、不用再关心底层与通信相关的一切琐碎的事情,就可以在一个更高的层次上更快地开 发属于您的高效稳定的网络通信应用。像IM系统、视频会议系统、数据采集系统等,凡是需要分布式通信的系统都可以使用ESFramework框架。
04年开始进行网络通信程序开发,到06年第一次发布ESFramework的相关介绍以来,ESFramework已经走过了4个年 头,ESFramework也从0.1版本成长到4.0。ESFramework 4.0 已经不再是一个简单的通信框架,而是形成了一个解决巨大量(百万级)用户同时在线的高性能的通信体系和完整的解决方案。
ESFramework的层级结构如下所示:
你的通信应用程序可以基于图中的任何一层来构建,但是选择的层次越高,框架帮你做的事情也就越多,你的开发也就越高效和快速。我们来粗略地看看每一层。
一.ESFramework
ESFramework 作为通信框架的核心,定义了消息处理的骨架流程,提供了多种通信引擎实现,相对单纯而稳定。在4年前,这个核心基本已经形成,我们再回顾一下消息处理的骨架流程:
1. 通信引擎接口继承关系图
2.内置通信引擎列表
ESFramework内置了多种通信引擎,以完全支持“客户端/服务端、TCP/UDP、文本协议/二进制协议”这些特性的组合。
3.在线用户管理
服务端通过ESFramework.Server.UserManagement.IUserManager来管理所有的在线用户。
另外,ESPlus.Rapid命名空间为快速开发基于ESFramework应用的提供了数个组件,使得你可以仅用1-2个小时就可以上手ESFramework通信程序开发。可以通过这篇文章来了解如何使用ESPlus.Rapid快速开发基于ESFramework的通信程序。
在ESFramework解决方案中,我们非常方便的将一个独立的通信应用程序迁移到ESPlatform体系中,以应对日益增长的用户数量。这只要修改配置文件就可以做到。
更多关于ESFramework4.0的文章:
ESFramework 4.0 快速上手 -- 如何使用自定义消息?
ESFramework 4.0 快速上手 -- 离线消息如何实现?
最后,给出demo源码和相关文档的下载:
1.ESFramework4.0 Rapid Demo (最后上传:2011.03.02)
本demo是一个简单的IM聊天程序,并且展示了掉线通知、断线重连等功能。
2.ESFramework4.0(免费版本)以及 帮助文档 (V4.0.1.0 最后上传:2011.03.02)
压缩包中包括:
(1)ESFramework.dll、ESPlus.dll、ESFramework.SL.dll(在SilverLight中使用ESFramwork)
(2)ESFramework4.0.chm、ESPlus1.0.chm、ESFramework.SL.chm
任何问题,请联系sky.zhuwei@163.com。