上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页
摘要: 1.缘起: 为了提升系统的性能或减轻数据库的压力等原因,我们经常在系统中使用缓存来把那些经常使用的数据保留在内存中。如果因为某些原因,缓存中这些经常使用的数据不能及时与数据源进行同步更新,那么采用定时刷新缓存中的数据有可能就是一种合适的选择。 如果你的缓存是定时刷新,那么你就需要自己为其维护一个定时... 阅读全文
posted @ 2009-11-21 10:09 zhuweisky 阅读(3674) 评论(4) 推荐(1)
摘要: 1.缘起: 对象池应该是一个“历史悠久”的概念了,像我们经常说的线程池、还有ADO.NET中的数据库连接池等,都属于对象池的应用。 我们的应用有时也会碰到需要使用对象池的情况,我举个例子说明一下。假设,我们需要记录某个类MyClass的每个方法每次被调用时方法执行所消耗的时间,而且,这个类是使用在多... 阅读全文
posted @ 2009-11-11 09:43 zhuweisky 阅读(3277) 评论(3) 推荐(0)
摘要: 1.缘起: 假设我们的订单处理系统所要处理的订单是有优先级的,也就是说,不同的订单类型所要求被处理的紧迫程度不同,对那些优先级高的注单要先处理,对于优先级低的注单可稍后处理。对于处于同一优先级的订单了,就按照其到达的先后顺序进行处理。 这是一个典型的管理具有优先级的对象的需求,注单就是具有优先级(W... 阅读全文
posted @ 2009-11-04 16:03 zhuweisky 阅读(2685) 评论(5) 推荐(1)
摘要: 1.缘起: 假设我们的订单系统需要管理所有未处理的订单,而客人经常需要查询属于自己的未处理的订单列表。另外,可能客服人员也需要根据订单ID迅速地找到对应的未处理订单。基于第一个需求,我们就可以将未处理的订单依据客人的帐号进行分组管理。 我设计了ESBasic.ObjectManagement.Man... 阅读全文
posted @ 2009-10-27 15:09 zhuweisky 阅读(2593) 评论(5) 推荐(3)
摘要: 1.缘起:我们经常需要对一些动态对象进行管理,最常见的例子就是在线用户管理。当一个用户成功登陆到服务器后,我们就需要将其管理起来;当他退出后,就不再需要再管理他了。这就是所谓动态对象的含义,这些对象并不是一直需要被管理,只有当其被激活后,才需要被管理。它们总是在“激活”状态和“非激活”状态之间不断地... 阅读全文
posted @ 2009-10-21 09:43 zhuweisky 阅读(3321) 评论(6) 推荐(3)
摘要: 1.缘起:假设我们的用户管理系统要求用户的ID和Name都必须是唯一的,并且用户的ID和Name一经确定就不能被修改。而且管理系统经常需要根据ID来查找Name,也经常需要根据Name来查找ID。根据这样的需求,我们可以考虑使用一个Dictionary来将ID和Name缓存起来,通常ID作为Key,... 阅读全文
posted @ 2009-10-15 10:49 zhuweisky 阅读(2873) 评论(4) 推荐(5)
摘要: 1.缘起: 对于需要进行线程同步的地方,我们经常用的就是.NET内置的lock关键字和ReaderWriterLock类。lock的功能相对简单,因为它不区分读写,也就是说如果都在lock块中,读线程都会阻塞另一个读线程,在很多读远远多于写的应用中,这会极大地折损性能。所以我们也经常需要使用读写分离... 阅读全文
posted @ 2009-10-10 16:16 zhuweisky 阅读(3497) 评论(6) 推荐(2)
摘要: 1.缘起:假设我们的C/S系统中服务端与客户端之间采用UDP进行通信,那么服务端如何知道每个客户端当前是否仍然在线了?有可能某个客户端一直没有退出,但是在很长一段时间内都没有与服务端作任何通信,那么服务端就应该认为这个客户端已经离线了吗?为了能让服务端掌握每个客户端是否在线的状态,我们可以这样做,只... 阅读全文
posted @ 2009-09-30 09:20 zhuweisky 阅读(4709) 评论(9) 推荐(8)
摘要: 1.缘起:假设我们的报表系统需要在每天的00:05:00统计前一天的报表数据,需要在每周一的00:30:00统计上周的报表数据,又需要在每月1日的00:30:00统计上月的报表数据。这些报表统计任务是很常见的系统需求,对于类似这样的在指定时刻执行的定时任务,我使用ESBasic.Threading.... 阅读全文
posted @ 2009-09-26 09:19 zhuweisky 阅读(5677) 评论(9) 推荐(1)
摘要: 1.缘起: 举个例子也许就能够说清楚回调定时器的用途。假设我的订单系统接收各种不同类型的订单,当订单A进来时,系统根据订单的类型和其它特征进行综合判断后,决定A订单要在2秒之后被方法M1处理;接下来收到的B订单经过同样的判断后,决定要在10秒后被方法M2处理,……。这时候就可以用回调定时器来管理这些... 阅读全文
posted @ 2009-09-21 10:38 zhuweisky 阅读(3774) 评论(2) 推荐(5)
摘要: 1.缘起: 假设我的订单处理系统有这样的需求:将一天24小时分为4个时段,凌晨2:15到8:30采用A类型的处理器处理接收到的订单,8:30到14:00采用B类型的处理器,14:00到20:00采用C类型的处理器,20:00到第二天凌晨2:15采用D类型的处理器。 即我们的订单处理器需要在任一天的2... 阅读全文
posted @ 2009-09-12 15:22 zhuweisky 阅读(3340) 评论(3) 推荐(5)
摘要: 使用工作者引擎,可以多个线程来并行处理任务,从而最大发挥系统的硬件优势,提高系统的吞吐能力。 阅读全文
posted @ 2009-09-07 16:49 zhuweisky 阅读(4494) 评论(14) 推荐(4)
摘要: 有些系统需要每隔一段时间就执行一下某个动作,比如,一个监控系统每隔10秒钟就要检测一下被监控对象的状态是否正常,那这时我们就可以用到循环引擎了。 阅读全文
posted @ 2009-09-01 09:03 zhuweisky 阅读(5357) 评论(15) 推荐(4)
摘要: 1.缘起: 假设我们要开发一个多人跳棋游戏。在跳棋游戏中,当一个人走一步棋之后,控制权就轮到下一家,如此轮询,一圈之后控制权又回到自己,然后再继续轮圈下去。我们可以使用数组或列表等数据结构来解决这种转圈圈的问题,但是始终都不够直观。 我设计了Circle来对“圈”这种数据结构进行抽象,我们在类似跳... 阅读全文
posted @ 2009-08-29 16:22 zhuweisky 阅读(4558) 评论(9) 推荐(3)
摘要: 同我们从DateTime中将时刻部分作为ShortTime抽离出来一样,我们将DateTime中的日期部分也抽离出来,以ESBasic.Date类来表示。 阅读全文
posted @ 2009-08-27 09:30 zhuweisky 阅读(4148) 评论(6) 推荐(4)
摘要: (如果您能对照着源码来阅读本文,效果会更好。)1.缘起: 假设我们的员工打卡系统,需要设定公司规定的上班时间、下班时间、以及还要对员工是否迟到早退等这些情况进行判断。 我们以什么方式来记录类似上下班时间这样只有时分秒没有年月日的时间了?你说可以使用DateTime,但是合适吗?总是觉得用DateTi... 阅读全文
posted @ 2009-08-25 11:06 zhuweisky 阅读(7726) 评论(19) 推荐(5)
摘要: 自从03年正式使用.NET开发以来,已经走过了6个年头,这期间我积累了几套类库和框架,ESBasic便是其中最基础的一个类库。现在我将它开源出来,希望能让感兴趣的朋友有所启发。加入QQ群:134720401,一起探讨ESBasic。 阅读全文
posted @ 2009-08-25 09:54 zhuweisky 阅读(16173) 评论(54) 推荐(20)
摘要: 所谓动态程序集,就是在运行期间由Emit创建的程序集。假设,我们的Client和Server之间通过Remoting通信,在某个时刻,Client会创建一个动态程序集,并且Client和Server都会基于该程序集做一些逻辑操作,那么Client如何将动态程序集传递到Server端了?Client和Server又如何做才能正常使用这个程序集了? 阅读全文
posted @ 2009-08-13 10:14 zhuweisky 阅读(3648) 评论(10) 推荐(4)
摘要: 假设,Remoting服务端接受并保存了一个Remoting客户端注册的回调接口(比如ICallback),在一定的时刻,服务端会通过ICallback接口调用客户端的某些方法。当运行一段时间后,服务端再次回调ICallback时,就抛出了类似下面的异常:对象“/9ca38d87_7f53_49b7... 阅读全文
posted @ 2009-08-11 11:39 zhuweisky 阅读(2839) 评论(2) 推荐(0)
摘要: DCFramework的基础结构介绍,提供 DCFramework Demo源码下载。 阅读全文
posted @ 2009-05-28 18:05 zhuweisky 阅读(3257) 评论(7) 推荐(1)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页