代码改变世界

谈.net开发人员应该熟悉的开发模式

2010-12-11 16:32 by 姜 萌@cnblogs, 4902 阅读, 24 推荐, 收藏,
摘要:我们总会有这样一个经验:一个系统最不容易也最不应该变化的部分是领域逻辑,最容易变化也最应该变化的是数据的呈现方式。在java的各种应用中可以说是到处可见mvc,j2ee贯穿mvc的概念,android的开发方式也是类mvc的,mvc结构对于做过java应用的人而言简直就是司空见惯。而在.net这边,由于之前微软为大家提供的各种winform、asp.net项目典范(比如那个petshop seri... 阅读全文

一个.net客户端通讯框架的设计(四)---协议解码/编码器工厂以及为其他模块提供消息的dealers/trigers

2010-12-10 10:15 by 姜 萌@cnblogs, 2626 阅读, 17 推荐, 收藏,
摘要:解码器IDecoder的实现在前几篇篇文章中,我们的通讯模块已经实现了socket连接、消息的发送与消息的解析,不过消息的解析部分是接口调用,并没有给出确切的协议解析方式。协议的解析式完全可以定制的。我们只需实现IDecoder接口即可。在前言中,我给出了目前我所使用的协议格式,基于这个协议格式,我们实现IDecoder如下:如果是NEED_DATA,它会再次接受消息。如果是OK,调用Decode... 阅读全文

一个.net客户端通讯框架的设计(三)---设计IO连接

2010-12-09 12:02 by 姜 萌@cnblogs, 2889 阅读, 18 推荐, 收藏,
摘要:IAsyncIOService(对应代码里的IAsyncConnector)这是一个异步IO服务接口,含有一下几个方法。IAsyncConnectorCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--publicinterfaceIAsyncConnec... 阅读全文

一个.net客户端通讯框架的设计(二)---准备FastBuffer和BOConverter

2010-12-09 11:20 by 姜 萌@cnblogs, 2509 阅读, 14 推荐, 收藏,
摘要:在网络编程中,我们会频繁用到两个东西,一个是buffer。一个是bit-order。把数据填充到buffer中,然后通过buffer读写我们所需要的基本数据,还好.NET为我们提供了BitConverter这个非常好用的util,方便我们编写自己的Buffer和字节序转换器。 IBuffer 通常Buffer会有如下几个概念;position,limit,capacity,flip,mark,... 阅读全文

一个.net客户端通讯框架的设计(一)---前言

2010-12-09 11:09 by 姜 萌@cnblogs, 2449 阅读, 15 推荐, 收藏,
摘要:背景 最近我们的团队正在开发一款面向移动平台的LBS应用,客户端有android、j2me版本,LBS的概念非常不错我们希望将其发挥带极致。本人在这个项目中主导服务器开发(java平台)。由于人手有限以及团队中各自专长不同,服务器的数据统计与将来的PC端也又我一人用.NET承包了:P好了,废话不多说我们直入正题。 其实有人会认为,不就是客户端与服务器的通信嘛,很简单,如果用阻塞I/O的话开两根线程,一根从网络I/O中读取数据,将每条消息投递到一个消息队列中,然后通过一些触发机制触发这些消息的处理代码;要写的话将要写的代码投递到一个输出队列中,另一根线程从这个队列poll消息然后write到流 阅读全文

高性能服务器架构之路-MongoDB(一):MongoDB快速入门(java版)(草稿)

2010-10-12 23:34 by 姜 萌@cnblogs, 2404 阅读, 2 推荐, 收藏,
摘要:最近想通了,辞了职,原本谈好的新公司offer也给推掉,义无反顾的和朋友开始做自己的产品,反正明年毕业,失败了也没什么损失。主做应用服务器的客串android/windows phone客户端,计划未来iphone(当然赚到票票再说)。 简单拟定了下产品的文档,下面是整个服务器的架构示意图: 对于社交类型的系统,数据库的I/O注定会成为一大瓶颈,单点数据库体系肯定应付不了如此大的访问量,像fac... 阅读全文

(转)Map out your future, but do it in pencil.

2010-09-26 09:54 by 姜 萌@cnblogs, 314 阅读, 0 推荐, 收藏,
摘要:Getting Results the Agile Way 三个核心要素 3的规则 (The Rule of 3) 周一目标,每天结果,周五回顾(Monday Vision, Daily Outcomes, and Friday Reflection) 热点 (Hot Spots) 每天3个结果 每周3个结果 每月3个结果 每年3个结果 Monday Vision, Daily Outcomes... 阅读全文

不负众望,窝窝世界新版放出(内测):P

2010-09-14 22:53 by 姜 萌@cnblogs, 994 阅读, 2 推荐, 收藏,
摘要:经历了若干个月gg、mm们的辛勤劳动,在杨哥的带领下,我们新版silverlight窝窝世界终于横空出世~~,界面和动画特效更加绚丽精细,内容在原有基础上新增了如宠物系统,装备锻造、洗练、强化,丰富的技能与战斗体系等内容,更多有趣的东西等你发现哦zzz《窝窝世界》是中游在线自主研发基于silvlerlight的MMORPG网页游戏,以轻松明快的回合制战斗模式开启全新的Q版本网页网络游戏,是首款使用... 阅读全文

在Silverlight开发基于http协议客户端连接器(三)

2010-09-02 17:44 by 姜 萌@cnblogs, 370 阅读, 0 推荐, 收藏,
摘要:下面应用前面设计的这个连接器演练一个登录服务并保持session。 先定消息,就是用LoginMessage好了。这里说明一下,很多页面访问的时候都是需要验证的,比如qq、178的游戏页面都会包含appid,sessionkey,uid之类的信息,这样就能够防止非注册用户访问他们的webgame。所以我们还要收集html中的这些数据用于登录用。在silverlight中可以通过HTML Bridg... 阅读全文

在Silverlight开发基于http协议客户端连接器(二)

2010-09-02 17:43 by 姜 萌@cnblogs, 286 阅读, 0 推荐, 收藏,
摘要:上一篇中我们能够通过自己的WebClientEx与web应用进行通讯,这样我们就能像js中使用ajax那样异步的通过xml或json等格式进行数据收发了。不过每次都让人家new 一个WebClientEx对象,手动传URI不说,还要管理一个共享的CookieContainer就显得笨拙了。好吧,我们提供Message基类和一个连接器的上下文类WebConnectorContext。Message中... 阅读全文