Motorola手持设备程序开发基础框架
这里写出我们目前的基础框架设计,希望有做的好的提出更好想法。
我们在一个客户的大型仓库管理项目中,在仓库入出库操作现场,需要采用手持设备扫描托盘条码以及装箱条码,客户原来的做法是离线式的,手持设备有一个在 wince上运行的小程序,可以独立扫托盘码及箱码,然后通过连接台式机以txt文件形式导入到管理系统。(原来相当于没有仓库管理系统,只有条码跟踪)
在我们的设计中,仓库的入出库都有单据,单据再和每个入出库的托盘相关,每个托盘算一个入出库作业;再设计作业和箱码绑定(分有码和无码两种情况),经过复杂化后,能够实时查询托盘状态,查询装箱条码是否重复,是否已入库等等。
手持设备以无线方式和应用服务器相连,采用web界面(B/S)形式完成入出库作业。原先想采用手持设备客户端(C/S)形式完成,发现在wince中无法实现和oracle数据库直接相连,只好放弃,也考虑过webservice形式,但管理架构上没有采用,自然无法单独为手持部署,也放弃了。
在手持web程序开发中,需要大量使用到扫描条码后,立刻进行状态验证的功能,采用传统Post/Get形式也满足不了作业速度(起码每秒扫描一个条码),后来加入了Devexpress中的callback控件,完美实现了前台作业,后台回调处理并返回相关信息,再根据返回信息做逻辑判断。整个应用程序顺利开发完成,客户使用还是比较满意的。
当然关于callback也有多种形式,例如xmlhttp方式等,但发现采用控件后,代码重用性、条理性都更好。因此在所有界面中都采用了Devexpress中的callback控件这种方式了