客户端开发杂记

记录并介绍一下在.net客户端项目开发中的一些琐碎东西,也许会有人有点用或者有点同感。

一个项目,架构为服务端基于JAVA开发的WEBSERVICE,客户端使用.NET 技术开发,因为在设计客户端时,公司的领导提出要求但愿将来能作成可扩展的而且能够给第三方的提供接口的可扩展的客户端,而当时在各类因素下,不能采用WPF进行开发,因此只能作成WINFORM形式的,而且考虑到为了给第三方留口子,因此使用了MAF。sql

而后关于系统自己因为保密条款所限,不能讲太多业务上的东西。
1.本地数据 因为系统大量数据是放在ORACLE的,因此对于咱们客户端来讲,本地只须要存放少许的比对数据便可,当时采用了sqlite做为本地小数据库。而且,本地数据须要作到定时清理。对于sqlite的数据操做,网上一大把,具体不用详述。
2.数据传输 以前博文里有,因为数据量是很是的大,举例来讲,以前咱们的甲方的一个部门又上了个新系统,采购一家在业内属于该业务龙头地位的国外大型跨国公司的产品,和咱们具备相同功能的模块,就是因为数据量大,致使甲方的网络瘫痪,最后老外强调,是甲方的网络不行,不支持千兆以上的。。。。但实际上,他们业务部门用的全是我开发的系统,至今都是,因此这点咱们能够自豪。固然,咱们的系统仍是能够更优化,同时向老外学习一些的。咱们首先在数据传输上进行了压缩。其次尽可能减小在xml中的一些无心义的编码(这点目前在新版的设计中已经改了,xml仍是太大)。
3.因为采用了MAF的形式,那么对于客户端的窗体考虑到业务需求,咱们采用了weifengluo的那个dock,而且修改了其中一些bug以及自行调整了一下。
4.整个系统中最重要的模块实际上是一个列表窗口。而且是一个只读的列表窗口。首先列表的字段是能够设置的,固然这并无什么。这个列表的特色是数据多,要求能根据某特定查询条件多开。而且操做方便,支持全键盘。由于原来使用这个窗口的业务人员,他们的业务工做至关繁忙,而且,不太会操做鼠标,以及原来不少都是玩相似dos的这种窗口的系统。同时这个窗口须要30秒刷新一次。而且对于此次刷新和上一次的数据若是有不一样,须要经过颜色来显示。同时,又不能让当前使用的人感觉到刷新了,也就是不能跳屏。对于全键盘操做,其实这就简单了,截获键盘输入,而后进行一些处理。
贴点代码图
 
而后是数据的更新和比对问题。
数据的更新那就是比较简单了,在子线程里跑,而后处理完了丢到主线程里更新界面。须要提一下的是,当每打开一个窗口的时候,会把这个窗口对于的查询条件的数据请求丢到一个观察者里,而后当数据发生更新后,通知宿主进行处理。
 
当每次数据变化后通知宿主
对于界面上的操做,
对于界面的操做必需要同步进行
对于界面上一些操做,差很少这些应该能说明点问题吧。
 
还有项目中有个甘特图,我就不截图了,直接改的别人家的控件,难度是至关的大,功能也是至关的强大。记得之前截图和司徒正美的网页版的甘特比较过,嘿嘿。
 
作这个老版本的系统就2我的写客户端,那是至关的累啊。如今新版本的系统已经在开发了,虽然人多了,惋惜原来另外一个小伙伴已经不在了,唉神伤。新版本的是WPF的,会更好,更强。
相关文章
相关标签/搜索