WINCE
VS2008是最后一版支持Wince移动端开发,用在条码设备上开发条码应用。
以下是遇见的问题及解决方案,以此怀念:
用什么开发Wince系统条码应用?
A
: 最后一版是VS2008,记得安装SP1补丁。
Wince系统条码开发环境支持哪些?
A
: Wince有个精简版的.NET Framework框架,VS2008开发支持Framewrok 3.5。
Wince系统条码开发用到哪些技术?
A
: 常见的DataSet
、Xml
、Linq
、Lambda
、WebSerice
、Wince数据库SDF
都支持。
Wince系统条码开发可以自定义控件吗?
A
:能做但不全,需要贴图,推荐还是用Android系统,而且用.NET开发不是问题。
开发的Wince系统应用如何部署到条码设备上?
A
:最好是搭建一个虚拟机进行开发,安装Window7系统或者更低一点,安装Vs2008进行开发。通过USB连接电脑上,有个同步中心,Window7以上是Mobile 同步中心,Window7以下是ActiveSync,在我的电脑就能找到移动设备,文件拷贝即可。
条码设备重启后程序没有了?
A
: 是的,设备分冷启动和热启动,冷冻后就会出现。
如何解决条码设备重启后出现的网络断开问题?
A
: 找条码设备厂家,一般都是通用,先连接无线网之后,导出无线网注册表,放到系统目录下即可。
如何解决条码设备重启后程序被删除的问题?
A
: 将程序放在系统目录下即可
程序放在系统目录下没有被删除,反而依赖的.NET Framewrok环境需要安装,如何解决?
A
:这要看设备,老的设备环境需要自己安装,最新的设备不需要。可以将环境包放在放在系统目录下,写个脚本,冷启动时自动静默安装。
开发的Wince条码应用可以打包安装吗?
A
: 可以,VS2008自带,生成cab文件,双击安装即可。
现场条码设备非常多,一个一个安装非常麻烦,可以自动更新吗?
A
:可以,在启动程序时检查最新版本。
WINCE程序无法下载生成的CAB文件?
A
:cab格式不是默认有的,需要在MIME中加上这个格式。扩展名:.cab
,MIME类型:application/vnd.cab-com-archive
。
现场条码设备种类非常多,品牌不一样,有一维的,有二维的,有冷启动需要重新安装环境的,如何处理?
A
:一般条码不需要处理,只要设置好扫描解析后带回车字符,界面上的textbox添加Keypress事件,识别\r
即可。但正如现场情况特殊,需要自己写代码处理,先获取设备的ID,根据不同的ID来确认当前设备是哪家的、支持一维还是二维,调用不同的SDK,从底层处理,这样界面上就不需要一个TextBox控件来采集数据,然后生成一个大的安装包,支持现场所有设备。
条码设备重启后程序里的数据丢失如何处理?
A
: 可以使用数据库SDF
,采集到的数据实时存储即可。
如何查看SDF文件里的数据?
A
: 自己写代码在Wince系统上显示,或者导出SDF文件,在电脑上,用MSSQL的SSMS查看并编辑。
如何与SDF文件交互?
A
:与PC端应用程序操作MSSQL数据库一致,只是类名中多个CE
的区分。
在实际使用中开发的应用扫描速度有点慢?
A
: 跟设计有关,尽量减少处理时间,采用缓存,或者采集数据一段后在批量提交。另外不排除设备本身问题。
条码应用采集的数据上传很慢?
A
: 是的,这跟WebService交互数据格式有关,可以看下DataSet的数据格式及占用大小,可以采用压缩成二进制传输。
如何从整个项目上提高效率或者速度?
A
: 这是一个常见的问题,设备采集数据,数据远程验证,验证返回后进行数据存储,涉及到数据库、WebService、以及Wince程序及本地SDF数据四部分。
数据库方面
- 对表字段加索引,定期分表
- 写视图和存储过程来处理数据验证逻辑
- 部分情况可以使用with nolock查询
- 检测视图多表关联的语句
WebService方面
- 尽量使用存储过程
- 使用数据压缩处理数据传输
- 检测逻辑
Wince程序
- 检测逻辑,尽可能的在服务端进行处理
发现条码应用生成的cab安装包在某台设备上无法安装?
A
: 这是一个很糟糕的情况,一种是设备本身存储空间不够了,另外一种可能是设备的系统太新了,VS2008支持的系统最高是6.99版本。
如何解决现场条码设备系统比VS2008支持的版本最高的问题?
A
: 有个CAB编辑器,可以对安装包更改支持的版本,但是这个软件是收费的。
可以通过电脑控制条码设备吗?
A
: 可以,将条码设备通过USB连接到电脑上。如果是东大的设备有个Remote软件。其他设备有个收费的远程控制软件。
某一台设备出现了偶发闪退的问题,代码进行捕获不到,都是同一样的程序,但是其他的设备都很正常?
A
: 有个相同的情况,是因为这个设备太新了,需要你自己在代码上进行资源释放,例如正常打开一个窗体var open=new frmDialog(); open.Show();
就结束了,因为C#会自动进行回收,但是有的移动设备太新了,偶发不回收情况,需要自己每次打开窗体后,进行释放,可以使用using
。如何还不能解决,可以记录出现的错误提示,系统会弹窗,在StackOverflow上找相关问题。
通过cab安装程序桌面上没有快捷方式?
A
: VS2008打包时可以设置生成桌面方式。
条码设备冷启动程序及环境倒是安装全了,但是桌面倒是没有快捷方式了?
A
: 需要自己写个脚本,在所有cab文件安装后执行,将程序应用生成快捷方式到桌面上。
条码设备是定点的,现场又很大,跨区域又出现断网情况,如何处理?
A
:可以使用RDA
技术,将本地数据上传到服务器,并能区分哪些是新增、修改、删除,达到多个设备共享同一个数据源。
条码应用可以播放声音吗?
A
:可以。