ESFramework 可复用的通信框架(序)

自从2004年7月开始,就一直从事N层C/S结构的服务端的开发,从最初的熟悉各种Windows Socket API、熟悉完成端口模型,探索高效稳定的服务端通信模型,时至今日,慢慢的积累了一些C/S服务端开发的经验,ESFramework便是这些经验的总结。ESFramework的前生是EnterpriseServerBase类库,后来我将EnterpriseServerBase中的Network部分重新整理为ESFramework,这是一套完全可复用的、灵活的、支持3层或4层C/S架构的通信框架,并且支持Tcp和Udp协议。

    前面的很多文章,如
.NET平台下可复用的Tcp通信层实现.NET平台下可复用的Tcp通信层实现(续)线程安全的网络流等等,都从某个侧面描述了ESFramework中的部分内容。然而如果要使感兴趣的朋友来使用这个框架,这还有很多的东西需要介绍,接下来一系列的文章会详细的描述这个框架的主要原理、结构、组成、使用方法。毫不夸张的说,所有这些要介绍的东西可以结集成一本书--这也是我当初的想法,现在想想,还是先以blog的形式发表,听取大家更多的建议和意见,来进一步完善这个框架,在此基础之上,以后有时间再结集成书会更好。

    下面将列出介绍的主题(将不断扩充),并为已经介绍的主题加上链接。

一.历史渊源:
(注,“历史渊源”下的文章,是ESFramework形成的足迹,其中的一些具体的接口的定义、实现可能已经有所改变/改善/简化,但是主体思想却是一脉相承的。)
1.企业级服务器设计与实现经验之开篇

2.企业级服务器设计与实现经验之系统框架(一)

3.
企业级服务器设计与实现经验之系统框架(二)--功能/应用服务器主体框架

4.
企业级服务器设计与实现经验之插件系统基础篇

5.企业级服务器设计与实现经验之插件系统--功能插件

6.
插件的“动态替换”

7..NET平台下可复用的Tcp通信层实现

8..NET平台下可复用的Tcp通信层实现(续)

9.线程安全的网络流

10.AgileIM 即时通


二.ESFramework框架

消息部分:
1.
ESFramework介绍之(1)――网络通信消息协议接口IContract

2.ESFramework介绍之(2)――网络通信消息NetMessage
 
3.
ESFramework介绍之(3)――消息处理器和处理器工厂

4.ESFramework介绍之(4)――消息拦截器INetMessageHook

5.
ESFramework介绍之(5)――消息分派器ITcpStreamDispatcher


通信基础设施(Tcp、Udp)
1.
ESFramework介绍之(21)-- Tcp组件接口ITcp介绍

2.
ESFramework介绍之(23)―― AgileTcp


基于C/S的4层架构:

1.
ESFramework介绍之(6)―― 基于C/S的4层架构概述

2.
ESFramework介绍之(10)-- Tcp连接池

3.ESFramework介绍之(11)-- Tcp连接池管理器

4.ESFramework介绍之(12)―― 基于Tcp连接池的消息处理器

5.ESFramework介绍之(13)-- 功能插件处理器工厂

6.ESFramework介绍之(14)-- AS与FS通信方案

7.ESFramework介绍之(15)-- IRAS

8.ESFramework介绍之(17)―― 支持漫游用户和跨区域功能请求

9.ESFramework介绍之(18)―― Tcp用户管理器组件

10.
ESFramework介绍之(19)―― 对动态组ActiveGroup的支持

11.
ESFramework介绍之(24)―― 日志记录IEsbLogger


部署与自动升级:
1.ESFramewok介绍之(20) -- 插件自动升级

2.ESFramework介绍之(22)-- 服务器系统自动升级


对客户端的支持:(如果客户端也使用.NET开发,则ESFramework也提供了完善的支持)
1.
ESFramework介绍之(7)-- 服务端代理IServerAgent

2.ESFramework介绍之(8)-- 客户端插件IPassiveAddin

3.ESFramework介绍之(9)-- 插件对(Addin Pair)调试“框架”

4.ESFramework介绍之(16)―― Tcp数据自动发送器ITcpAutoSender


ESFramework 解疑:

1.ESFramework解疑 --点滴(不断补充中)


开源ESFramework:
1.ESFramework 即将开源,请大家多提建议!

2.ESFramework源码目录介绍

3.
ESFramework V0.1 源码正式发布!

开源说明:
(1)大家在研究和使用ESFramewok的过程中有任何疑问、建议、意见、想法都可以通过
sky.zhuwei@163.com告知我。我会将典型的议题及解决方案放在ESFramework解疑专栏,所以任何有疑问的朋友可以先在这个专栏搜索答案。
(2)希望大家、整个.NET社群为ESFramework贡献自己的智慧,我相信众多的开发者都会从凝聚了集体智慧的ESFramework受益。请相信,正是“我为人人”的开源精神才会造就“人人为我”共赢局面。
(3)对ESFramework贡献突出的朋友将会记录于“ESFramework贡献者名单”中,随ESFramework一起流传!

下载:
下载:
ESFramework.dll (V0.1)     下载:ESFramework 源码 (V0.1) (VS2003 ,C#)

技术支持:AgileSoft@163.com 、sky.zhuwei@163.com


简单示例:(这些基于ESFramework的示例大多由网友提供)
1.
基于ESFramewok的 客户端和服务端通迅 (Mediar)

2.
ESFramework应用示例--可复用的FS (zhuweisky)

from:http://zhuweisky.cnblogs.com/archive/2006/03/10/347290.html

转载于:https://www.cnblogs.com/gxh973121/archive/2006/04/20/380670.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464433.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为了兴趣爱好,我该选嵌入式么?

“绝对不要!!”“绝对不要!!”“绝对不要!!”喜欢听结论的同学们,我说的够清楚了吧?接下来,是为那些喜欢问“为什么”的小好奇们解答疑问的环节。为了让道理变得简单明了…

类中构造函数、析构函数与赋值函数的重写

类中构造函数、析构函数与赋值函数的重写 class String {public:String(const char *str NULL); // 普通构造函数String(const String &other); // 拷贝构造函数~String(void); // 析构函数String & operate(const String &other); // 赋值函数private:char *m_d…

Sublime Text3(mac)一些插件和快捷键

Sublime Text3(mac)一些插件和快捷键 楚简约 关注 2017.02.24 17:02* 字数 1216 阅读 412评论 0喜欢 2下载地址http://www.sublimetext.com/3一、安装Package Control按Ctrl 调出console,粘贴下列安装代码到底部命令行并回车: 重…

linux+内核+环形缓冲,环形缓冲区-模仿linux kfifo【转】

struct kfifo{uint8_t *buffer;uint32_t in; // 输入指针uint32_t out; // 输出指针uint32_t size; // 缓冲区大小,必须为2的次幂}/*判断n是否为2的幂*/static bool is_power_of_2(unsigned int n){return (n ! && ((n & (n - )) ));}/*将数字a向上取整…

【Project3】技术总结

1.quartz 百分百自己会用 2.转载于:https://www.cnblogs.com/mount/archive/2011/11/09/2243265.html

4-7月份规划

1.准备管理系统中计算机应该实践2.学习高等数学二及英语二3.学习VB.Net(估计公司会用VB.Net),不过可以尽量争取C#4.和红哲讨论一下测试方法.5.对财务系统的测试,加强财务的能力6.购一本练习会计分录的习题集. 7.今后的发展方向,融投资管理 转载于:https:…

没去公司上班的这两天

这周得到通知是居家办公,但因为项目的事,前两天去了公司,今天情况特殊,我需要去合作的公司调试,就没去公司。早上还是9点起来,因为合作的公司离我家很近,可以多休息一会。但早早就睁开了眼&…

Activity的缓存方法

转载地址:http://blog.csdn.net/zhichu_2025/article/details/52047605 有a、b两个activity,当a进入b之后的一段时间,可能系统就把a回收了,这时候按back键,执行的不是a的onStart()方法,而是onCreate()方法&#xff0c…

c# datatable

DataTable dt new DataTable("cart"); //创建表dt.Columns.Add( new DataColumn("number", Type.GetType("System.String"))); //创建列 dt.Columns.Add( new DataColumn("qq", Type.GetType("System.String")));DataR…

linux pdm 查看工具,linux系统监控工具

通过系统监控可以了解系统的运行状态、及时发现异常、分析原因、提早解决,避免系统故障,确保用户对系统的感知度和满意度。IPTV系统一般是通过告警管理、日志管理、信令跟踪、探针、诊断测试来实现对系统的监控。小编为大家分享了linux系统监控工具&…

windows服务器下com6僵尸***删除

服务器被挂马,有一些可以被清除,有一个***被命名为com6.asp,无法被简单删除,网上baidu了一下,只能通过命令行的方式才能删掉,试了半天还是不可以,最后发现***文件还被设置成为了 RSH 属性&#…

USB抓包

安装的时候需要选上安装完之后,会提示让你重启电脑,如果不重启电脑的话也看不到USB的设备。之后可以通过usb.src来过滤自己想dump的设备信息当然,有一个技巧是,你可以先停止读写你的USB,然后再操作你的USB设备&#xf…

波波的个人简历

本人概况 姓名:bobo民族:汉 学历 (学位 ):大专 联系电话: 54103165联系地址:上海 云景路 185弄 10楼 101室 Email Address : caravarnhotmail.com QQ:179326710性别:男 手机: 139179…

Linux记起始和结束时间,Linux历史命令的记住执行时间

本文主要说明平台是Red Hat / CentOS系列系统。当安装完一台Linux后,我们可以把下列事情当作第一件要做的事:让history记录执行命令的时间:上代码export HISTTIMEFORMAT"[%Y-%m-%d %H:%M:%S] "export HISTFILESIEZE1000000export H…

Appium的环境搭建和配置

Appium的环境搭建和配置 一、安装Nodejs 下载nodejs安装包(https://nodejs.org/en/download/)安装 下载后,双击安装文件,按提示来安装。 测试安装是否成功:运行cmd,输入node –v 二、安装android的SDK 安装…

[转载]C#异步委托的用法 .

每个委托都有三个方法:Invoke、BeginInvoke、EndInvoke。第一个方法是委托指定函数的同步调用,另外两个是异步调用。BeginInvoke方法,调用后立即返回,不等待调用结果。EndInvoke方法,用于检索调用结果。调用BeginInvok…

sqlite3的基本操作

转自:http://blog.chinaunix.net/uid-26833883-id-3239313.html一、数据库基本概念 A.数据(Data)能够输入计算机并能被计算机程序识别和处理的信息集合。B.数据库(Database)数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合。注意&am…

收藏这些芯片原厂的代码仓库

本次给大家分享一些芯片原厂的代码仓库,这些资源已收录到咱们嵌入式大杂烩的资源仓库里了:https://gitee.com/zhengnianli/EmbedSummary我们用到一个新的芯片时,一般在它们的官网都可以找到一些入门、上手的资料。除此之外,有些原…

javascript计算小数保留两位小数,多位小数的方法

<SCRIPT LANGUAGE"JavaScript"><!--functionformatFloat(src, pos){ return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);}alert(formatFloat("1212.2323", 2));//--></SCRIPT>转载于:https://www.cnblogs.com/catxp/archi…

Android dumpsys命令详细使用

Android dumpsys命令详细使用 一、dumpsys命令介绍 1.命令说明 Dumpsys用户系统诊断&#xff0c;它运行在设备上&#xff0c;并提供系统服务状态信息 命令格式&#xff1a; adb shell dumpsys [system serbices] 2.系统服务查询 如果直接运行adb shell dumpsys&#xff0c;将会…