介绍
ESFramework是一套可高度复用的、灵活的、单纯而又强大的.NET通信框架,全部採用C#编写。採用ESFramework框架,开发人员将不再需要了解Socket、不用再关心底层与通信相关的一切琐碎的事情,而可以在一个更高的层次上更快地开发高效稳定的网路通信套用。例如,即时通讯系统(IM),大型多人线上游戏(MMORPG)、线上网页游戏(WebGame)、档案传送系统(FTS)、数据採集系统(DGS)、分散式OA系统、远程教育系统等等,凡是需要分散式通信的系统都可以使用ESFramework框架。
优点
高性能
ESFramework底层使用IOCP模型,使得数据收发与处理达到最高性能。当前主流配置的伺服器(如至强4核双CPU、4-8G记忆体)可轻鬆处理10000个同时线上连线,每秒处理50000个以上的请求。当然,最终能达到的并发,更取决于具体套用的业务逻辑,如果业务逻辑複杂、处理单个请求都对CPU和记忆体的消耗都比较高,那幺就会导致并发数下降,这时也许就要最佳化我们的业务逻辑代码了、或者使用更多的伺服器来分担负载(比如迁移到ESPlatform)。
可靠、稳定
ESFramework核心(ESFramework.dll)已经相当成熟稳定,其所有已经发现的bug都已被解决,而且自从2009年以来,没有新的核心的bug被发现。另外,ESFramework只会在需要时才使用必要的资源(如CPU、记忆体),并且会及时释放持有的资源,不会有记忆体泄露等情况发生。如果您的业务逻辑代码没有bug,那幺基于ESFramework的服务端正常运行一年,都不用重启一次。
功能强大丰富
现有的大多数通信框架仅仅解决了通信层的问题,而且几乎都是部分地解决。而ESFramework不仅仅完整地解决了通信层的需求,并且也解决了绝大多数通信系统中都关注的套用层的重要问题,这使得基于ESFramework开发分散式通信系统更迅速、更高效。
在通信层:ESFramework 支持TCP/UDP(支持可靠的UDP通信)、文本协定/二进制协定、服务端/客户端以及它们组合的任意方式,并提供多种通信引擎供服务端开发人员和客户端(包括Windows桌面客户端和Silverlight,以后还会提供flash、iphone、android客户端引擎)开发人员使用。
在套用层:ESFramework 内置了线上用户管理、讯息拦截、讯息同步调用、客户端登录验证、心跳检测、讯息优先权、断线自动重连、线上状态改变自动通知(好友与组友)、重登入模式选择、完整的异常日誌、档案传送(支持断点续传)、组广播、带ACK机制的信息传送、高效的二进制序列化器、等等功能。
可靠的P2P
ESFramework提供了基于TCP和UDP的P2P通信,而且ESFramework在原始UDP基础上做了增强,以保证基于UDP的通信也像TCP一样可靠。在客户端之间需要高频通信的分散式系统中(如IM系统等),可靠的P2P通信将为您节省巨大的频宽和伺服器成本。
高伸缩性的群集平台
ESPlatform平台支持基于ESFramework的应用程式的Cluster(群集),其内置了3种最常用的负载均衡策略。在不需要修改代码的情况下,仅仅通过配置就可以将一个基于ESFramework的应用程式平滑迁入到ESPlatform平台中,以实现多台套用伺服器的Cluster,从而应对日益增长的巨大并发。使用ESPlatform群集,我们可以非常方便地在运行时动态添加/移除套用伺服器(AS)、广播伺服器(BS)、转发伺服器(TS)等实例节点。
可扩展性强
ESFramework规定了讯息处理的骨架流程,并在骨架中提供了足够多的扩展点,使您可以轻鬆地挂接您自己开发的组件(比如加密/解密组件、或讯息监控组件等)。另外,ESFramework在设计和实现时採用了接口分离原则,使得大多数内置组件都可以被自定义的组件所替代。
适用範围广
ESFramework 可以用于任何需要分散式通信的软体系统中,而且其群集功能还可以支持那些同时线上用户数巨大的系统。比如,即时通讯系统(IM),大型多人线上游戏(MMORPG)、线上网页游戏(WebGame)、档案传送系统(FTS)、数据採集系统(DGS)、分散式OA系统等等。
ESFramework/ESPlatform是基于.NET 2.0 构建的,所以,无论您使用的是VS2010、VS2008,还是VS2005都可以使用ESFramework。而ESFramework的SL客户端引擎基于Silverlight 3.0构建,使用SL3或更高版本SL的您都可以使用ESFramework进行Silverlight套用开发。另外,ESFramework无需任何修改就可以直接在64位系统上运行 。
文档齐全、接口清晰规范
ESFramework提供的所有接口和API都具有良好的编码风格,与.NET Framework完全一致。ESFramework提供了MSDN风格的帮助文档、Demo源码、快速上手等系列文章供您研究和学习使用ESFramework进行开发。
使用简单、上手容易
ESFramework 虽然功能强大丰富,但是使用非常简单,因为其採用了优秀的架构设计和实现,将複杂性都禁止在了框架的内部,暴露给使用者的都是简单易用、清晰明确的API。而且,ESFramework还提供了Rapid引擎给使用者进行快速开发,从未接触过ESFramework的人,也可以在1-2个小时之内便上手使用Rapid引擎开发分散式通信系统。