随笔分类 -  InChatter系统开发

InChatter系统开发系列
摘要:InChatter现在支持本地化了,其实这个只是很细节的东西,但是咱也是可以走走国际范。哈哈其实最重要的原因只是想进行一次本地化的开发。这个概念相信大部分人都有,但是在实际项目中真的很少会涉及到,我也就InChatter这个项目来实践下本地化开发。一、InChatter的本地化实施1.新建一个新的类库,命名为:InChatter.Localization2.在项目右键->属性,打开项目工程的属性窗口3.选择资源页签,修改资源的访问修饰符为Public(这样我们才可以访问资源)4.按图中的方式添加你定义你的系统资源。保存以后,可以在Properties文件夹中看到我们的资源文件Resour 阅读全文
posted @ 2014-01-15 23:29 Skysper 阅读(854) 评论(0) 推荐(0) 编辑
摘要:InChatter客户端的开发可以说是目前系统的阶段性结尾了。很抱歉的是,这篇文章来的这么晚,迟到了这么久。在客户端的开发主要针对两个方面: 消息的传输与处理 消息的UI交互处理一、消息的传输与处理消息的传输示意图如下:所有的消息的接受将首先通过事件发送到消息池,消息池接受消息做进一步处理。如果消息是发送给当前交互对象(系统消息或正在聊天的目标),消息将直接转发给交互窗体进行显示;否则,将弹出消息提示窗体,告知用户消息的到达。在此基础上,对于未读消息和离线消息也进行了对应的处理,这也是在上一节之后,系统的诸多变更之初,具体可参见源码部分。理解了消息交互的整个流程,我们便可以更好的把握客户端部分 阅读全文
posted @ 2013-12-24 23:01 Skysper 阅读(1122) 评论(4) 推荐(2) 编辑
摘要:一、模块结构首先来看下客户端消息处理中心模块的简单结构:ChatCallback:服务器端我们定义的回调接口IChatCallback的客户端实现ChatMsgCenter:服务端的消息处理中心,所有的消息都将在这里进行分发处理,可以比作人的大脑中枢ClientContext:登录信息描述,也可以理解为客户端唯一标识DataHelper:数据库操作类,这里我们使用NDatabase的开源对象数据库,使用方法参考关法文档Messager:消息类封装,在消息的基础上,添加了ID属性和IsRead属性二、技术实现1.ChatCallbck的实现原理using System;using System. 阅读全文
posted @ 2013-11-11 22:51 Skysper 阅读(1106) 评论(4) 推荐(2) 编辑
摘要:今天终于开始客户端的开发了,客户端完成以后,我们将可以进行简单的交流。开发完成的程序只是一个很简单的雏形,在本系统完成以后,以及完成的过程中,大家都可以下载源码,在此基础上融入自己的想法和尝试,可以按照自己的思路,完成后面的部分。下面我们开始客户端的开发,我们新建一个类库项目,作为与服务器端交互的中枢,同时也是为了分离服务和界面逻辑。目前我们将首先我们WPF客户端开发,在稍后的时间,我们再进行Winform的开发。1.新建类库项目,作为客户端与服务器端的交互中枢2.在新项目上添加服务引用3.在弹出的窗体中输入我们的服务地址(服务地址可以从服务器端获取到):net.tcp://localhost 阅读全文
posted @ 2013-11-09 22:48 Skysper 阅读(1503) 评论(2) 推荐(1) 编辑
摘要:为了部署的方便,我们开发Windows服务的服务寄宿程序,这样我们的服务便可以作为系统服务,随着系统的启动和关闭而启动和关闭,而避免了其他的设置,同时在服务的终止时(如系统关闭等)能及时处理服务的关闭事件。一、Windows服务开发在解决方案中,新建一个Windows服务,如下图所示:打开Service服务的设计界面,右键"添加安装程序"右键选择"属性",打开属性侧边栏,可以修改服务的属性信息(如名称)修改ServiceProcessInstaller和ServiceInstaller的属性信息 下面我们针对Service的OnStart和OnStop进 阅读全文
posted @ 2013-11-06 21:55 Skysper 阅读(702) 评论(1) 推荐(1) 编辑
摘要:现在我们继续进行InChatter系统的服务器端的开发,今天我们将实现服务契约同时完成宿主程序的开发,今天结束之后服务器端将可以正常运行起来。系统的开发是随着博客一起的,颇有点现场直播的感觉,所有在写博的过程中,可能会回头重新讲解和修复以前的设计不合理的地方,同时也可能会融合新的想法以及功能模块,提前跟各位看客交代下,请大家见谅。不过我想这个过程对大家也是有利的,在这个过程中,一是带大家重新回顾一下以前的设计想法并与现在进行比较,二是可以增长大家的项目设计的感觉,增长经验,这也是项目开发中不可避免的。所以,这也是我坚持直播的原因,如果文章中有什么不对的地方或者修改意见,欢迎大家指正,好的修改建 阅读全文
posted @ 2013-11-05 22:07 Skysper 阅读(887) 评论(0) 推荐(0) 编辑
摘要:服务器端是整个消息系统的中枢,类似与人类的大脑。没有他,根本无法实现客户端之间的交流,为什么呢?这也涉及到我们的系统涉及,在服务器端,每个客户端的标识数据都会在服务器端进行保存,在这种情况下,当某一个客户端请求与另外一个客户端进行交流时,我们便可以在服务器端保存的客户端列表中,找到目标客户端,并发送消息。下面我们就一步步来实现我们新建一个InChatter的解决方案,默认的项目可以稍后再做处理,也可是删除,我们在项目中新建一个WCF服务库(英文版本的朋友们自行参考)在上图中,我们看到有WCF服务库、WCF服务应用程序、WCF工作流服务应用程序,我简单介绍下:WCF服务库需要我们自己开发服务寄宿 阅读全文
posted @ 2013-11-04 22:12 Skysper 阅读(1029) 评论(0) 推荐(0) 编辑
摘要:最近在研究WCF,又因为工作中的项目需要,要为现有的系统增加一个聊天模块以及系统消息提醒等,因此就使用WCF做服务器端开发了一个简单的系统。开发最初学习了东邪孤独大哥的《传说的WCF系列》,文章写的很好,有兴趣的朋友也可以参考写,文章深入浅出,非常不错,坚持看完,相信在WCF方面可以入个门了,而且听说孤独大哥也来到的博客园呢~上面绝非广告,完全是真心的感谢,没有孤独大哥的文章,开发之初可能真的不会像现在这么顺利,现在软件的聊天模块已经可以正常运行和交流了。所以呢,我也想趁着这次机会:把自己学习到的知识,总结一下拿出来跟大家分享下就一步完善自己的聊天模块,希望能够做成一个开源的通用模块一直都想把 阅读全文
posted @ 2013-11-03 22:16 Skysper 阅读(1342) 评论(0) 推荐(1) 编辑