memcached源代码阅读笔记(二):网络处理部分
既然memcached是一个缓存服务器,而且要提供高效的缓存服务,那么网络层肯定要非常有效率才行。要能支撑大量的并发连接,还要有很优秀的响应速度。除此之外,因为memcached的核心业务并不是网络层,它的核心是缓存机制。那么就必须采用一种机制,将网络层隔离,以免网络通信部分缠绕在系统的各处,扰乱了...
JSON C# Class Generator ---由json字符串生成C#实体类的工具
json作为互联网上轻量便捷的数据传输格式,越来越受到重视。但在服务器端编程过程中,我们常常希望能通过智能提示来提高编码效率。JSON C# Class Generator 能将json格式所表示的Javascript对象转化成强类型的C#实体类,来实现减少代码输入的效果。http://jsoncl...
奇异的Pinvoke调用
我们的一个C#项目需要调用C++的dll,通过Pinvoke进行方法调用。其中的一个方法及其参数的定义是这样的: [StructLayoutAttribute(LayoutKind.Sequential)] publicstructxvid_gbl_info_t{ ///intpublicintve...
SharpKit---一款让你在visual studio 服务器端智能提示Javascript语法函数的工具
今天偶尔发现老外写的一款开源工具,可以在C#的cs服务器代码中引入外部jquery框架和自己的js文件,并能智能语法提示,摆脱常常因为无法正确在aspx引用js文件而需要手动写N多函数的问题,节约你的编码时间.工具介绍:http://sharpkit.net/Default.aspx 里面有视频但需...
jquery validation plugin 中取消对指定按钮的有效性验证!
项目中使用了jquery validation plugin,但并不是Form中所有的按钮点击后都要对文本框中输入内容进行有效性验证,折腾了一个下午,终于google到,就是把不需要进行验证的控件加上class="cancel" 一切OK!具体见: http://stackove...
程序员养生 -- 心态
在程序之外,是程序员的生活。 当我们刚刚告别校园成为一个程序员时,大都拥有成功的梦想、万分的激情,那时的我们也拥有精力充沛的健康身体。 随时间流逝,5年过去了、10年过去了,也许,梦想可能渐渐暗淡,激情慢慢消退。但,有一点是肯定的,我们的身体大不如前了,像视力下降、慢性胃炎、颈椎病、失眠、神经衰弱等...
ESFramework 4.0 进阶(12)-- 文件断点续传原理与实现
在ESFramework 4.0 快速上手(13) -- 文件传送,如此简单一文的详细介绍和ESFramework 4.0 快速上手(14) -- 聊天系统Demo,增加文件传送功能(附源码)一文的Demo中,我们已经尝试了ESFramework提供的文件传送功能和断点续传特性。支持断点续传是非常有...
ESFramework 4.0 快速上手(15) -- 客户端登录验证
在之前版本的Rapid引擎中,是没有提供客户端登陆验证的机制的,如果要验证用户的帐号密码信息,我们只有自己手动通过自定义信息来实现。在2011.04.25发布的新版本中,客户端Rapid引擎,则内置了在初始化时验证用户的帐号密码的功能,这使得登录验证变得更加简单。一.ESPlus.Applicati...
ESFramework 4.0 进阶(11)-- 好友与组
大部分分布式通信系统中,都会涉及到客户端之间相互通信、以及需要将客户端进行分组的功能,或者是类似这方面的需求。ESFramework对这一常见的任务内置了强大的支持,包括从客户端到服务端、一直到Platform的群集。在设计时,我们就考虑到了如何对常见的好友通信与组广播通信进行最大的支持,以期让ES...
ESFramework 4.0 快速上手(14) -- 聊天系统Demo,增加文件传送功能(附源码)
本文我们将介绍在ESFramework 4.0 快速上手(08) -- 入门Demo,一个简单的IM系统(附源码)的基础上,增加文件传送的功能。如果不了解如何使用ESFramework提供的文件传送功能,可以先看看ESFramework 4.0 快速上手(13) -- 文件传送,如此简单一文的详细介...
ESFramework 4.0 快速上手(11) -- 使用紧凑的序列化器,数倍提升性能
在分布式通信系统中,网络传递的是二进制流,而内存中是我们基于对象模型构建的各种各样的对象,当我们需要将一个对象通过网络传递给另一个节点时,首先需要将其序列化为字节流,然后通过网络发送给目标节点,目标节点接收后,再反序列化为对象实例。在ESFramework体系中,也是遵循同样的规则。 ESFrame...
ESFramework 4.0 版本升级说明(持续更新 2011.04.25)
ESFramework 4.0 内核(ESFramework.dll)已经相当成熟,不会轻易修改,而在不断增强中的是ESPlus和ESFramework.SL,所以,如下的一些版本变更几乎都是针对ESPlus和ESFramework.SL的。最新版本以及最新demo和帮助文档请到ESFramewor...
ESFramework 4.0 快速上手(12) -- 使用ACK机制发送自定义信息
(本文所介绍的新功能位于2011.04.18发布的最新版本中,此次版本变更请参见ESFramework 4.0 版本升级说明(持续更新)) 使用ESPlus.Application.CustomizeInfo.Passive.ICustomizeInfoOutter接口的Send方法,我们已经可以给...
ESFramework 4.0 快速上手(10) -- 监控自定义信息
在ESFramework 4.0 进阶(02)-- 核心:消息处理的骨架流程一文中,我们介绍了通过挂接IMessageSpy到骨架流程,我们就可以监控到所有收发的消息。由于Rapid引擎已经为我们组装好了默认的骨架流程,如果使用Rapid引擎,我们就无法插入自定义的IMessageSpy。不过没关系...
铁血规则:事件预订与取消预订
在编码的时候,我们经常预订某个事件来处理它,但很少取消事件的预订,这种做法可能导致程序在运行时出现一些异常。 如果你的某个用于处理事件的对象不是在运行期内永久存在的(比如,不是Singleton对象),那么请记住一条规则:在该对象(事件预订者)的生命周期中只要预订了其他对象(事件发布者)的事件,那么...
ESFramework 4.0 快速上手(09) -- 聊天系统Demo,增加Silverlight客户端(附源码)
在ESFramework 4.0 快速上手 -- 入门Demo,一个简单的IM系统(附源码)一文中,我们介绍了使用ESFramework的Rapid引擎开发的winform聊天程序,本文我们将在之前demo的基础上添加使用ESFramework.SL开发的Silverlight客户端。这样一来,不仅...
ESFramework 4.0 进阶(10)-- 垂直分割群集模型与多通道引擎
在ESFramework 4.0 进阶(09)-- ESPlatform 支持的三种群集模型一文中,我们介绍了ESPlatform支持的三种群集模型 -- 垂直分割模型、水平分割模型、交叉模型。我们看到,在垂直分割模型和交叉模型中,每个客户端都要与多个应用服务器AS进行通信,这就要求客户端与多个AS...
ESFramework 4.0 进阶(09)-- ESPlatform 支持的三种群集模型
对于最多几千人同时在线的通信应用,通常使用单台服务器就可以支撑。但是,当同时在线的用户数达到几万、几十万、甚至百万的时候,我们就需要很多的服务器来分担负载。但是,依据什么规则和结构来组织这些服务器,并使它们能相互协调合作,是最关键的问题。如果你的通信应用是基于ESFramework构建的,当同时在线...
ESFramework 4.0 快速上手(13) -- 文件传送,如此简单
在所有的通信系统中,文件传送是最常见也是最重要的功能之一,ESFramework对文件传送的强大支持也是其亮点之一,使用ESFramework可以非常轻松地实现与文件传送相关的所有需求。ESPlus.Application.FileTransfering命名空间完整地解决了通信中与文件收发相关的问题...