Navi.Soft20.WinCE使用手册
1.概述
1.1应用场景
随着物联网的普及,越来越多的制造商对货品从原料配备,加工生产,销售出库等环节的要求和把控越来越高.在此情况之下,传统的ERP软件已经无法满足现有的流程.
移动设备的应用,在很大程度上弥补了传统ERP软件的不足,在物联网中,也起着非常重要的角色.
移动设备目前包括微软WinCE系统,谷歌的Android系统和苹果的IOS系统.Android和IOS系统目前在个人消费领域应用非常广泛,但在应用软件领域目前使用不多.WinCE系统出道较早,也属于名门之后.在此系统中开发的应用软件也很多
在此背景环境下,开发出基于微软WinCE系统的一套框架,供程序开发员使用
1.2面向对象
Net程序开发员
1.3开发环境
本框架包含2部分
|
程序名称 |
开发环境 |
描述 |
|
WinCEAp p |
VS2008+STANDARD_SDK.msi+ |
必须是VS2008和WinCE项目开发包.注:必须安装开发包,否则无法创建WinCE项目 |
|
WinCEService |
VS2010或以上 |
创建项目类型是WebService.创建WebService项目类型必须是Net3.5,创建成功后,再升级至4.0即可 |
1.4框架特点
短小精悍, 通俗易懂,上手容易,入门简单
采用WebService桥接客户端和数据库,接口通用,可同时用于Net和Java
操作数据采用ORM,降低出错机率
统一错误捕捉机制
2解决方案
2.1WinCEService项目
2.1.1概述
服务端以WebService为主,用于与WinCE交互.WinCE软件中,根据业务逻辑代码,拼接好待上传至数据库的数据,通过服务端的WebService程序,保存至数据库.实现WinCE系统与数据库的交互
服务端程序目前支持SQLServer和Oracle这2种数据源.与客户端通过DataSet或DataTable这种ADO.Net结构传输数据.
2.1.2源码结构
如图-1所示

图-1
WinCEWebService
此项目为WebService类型项目.提供与数据库交互的各种操作
Provider文件夹:提供对每个数据库的操作.其中,对Oracle操作是采用Oracle.DataAccess.dll文件.并不是微软提供的
WinCEWebService1.asmx文件,用于实现WebService操作.方法包含如下:
|
方法名称 |
描述 |
|
TestConnectWebService |
测试连接WebService服务是否成功 |
|
TestConnectDataBase |
测试连接WebService中数据库是否成功.注:数据库连接字符串在Web.Config文件中修改 |
|
GetDataTable |
根据SQL语句,获取数据集 |
|
ExecSqlScalar |
根据SQL语句,获取单行单列值.如某表数据个数 |
|
ExecSqlString |
执行SQL语句,如Insert,Update,Delete语句 |
|
ExecSqlStringByTrans |
批量执行SQL语句,如Insert,Update,Delete语句列表 |
|
SubmitUploadDataSet |
提交自WinCE客户端上传的数据.此方法为预留方法,可以不使用 |
Web.Config
此文件为配置文件,用于配置数据库类型和连接字符串.配置如图-2所示

图-2
WinCEWebServiceTest
此项目专门用于测试WinCEWebService程序.测试页面只有一个
此项目需要引入WebService项目,在引用过程中,最好选择从本解决方案中引用WebService,这样的好处是可以直接调试.如图-3所示

图-3
pageTestWebService.aspx
测试页面中,创建若干按钮.分别调用WebService中方法.如图-4和图-5所示

图-4

图-5
若测试成功,则提示如图-6所示页面

图-6
2.2WinCEApp项目
2.2.1概述
客户端是WinCE类型的项目,即运行在WinCE设备上的应用程序,它与数据库交流通过WinCEService端生成的WebService交互,目前支持SQLServer和Oracle数据库.
在客户端应用程序中,采用ORM方式操作数据,弃用DataTable的ADO.Net数据结构,这样可以减少数据操作过程中出现的错误,如数据类型间转换,属性赋值等
2.2.2源码结构

图-7
QH.Core项目

图-8
核心类库,存储各种常用方法,通用接口等.是所有项目的基础
Base文件夹,存储基类文件.如实体基类,帮助基类等
Component文件夹,存储组件基类.目前仅包括数据库组件
根文件夹,存储各种帮助类.如DataTable对象帮助类,字符串对象帮助类等
QH.Component.DataBase

图-9
数据库组件,目前支持对SQLite数据库操作,同时将实体类转译为SQLServer和Oracle数据库的SQL语句,用于将业务实体保存至数据库,通过WebService
QH.Control.WinCE

图-10
存储对WinCE常用控件的操作.如ComboBox下拉菜单数据源加载,选中项的取值和赋值.Grid列表控件的数据源加载等.代码比较简单,不再描述
QH.Utility.WinCE

图-11
对设备各种功能的封装,还有对WebService的封装.WinCE设备主要用于各种扫描,包括RFID标签扫描和条形码描述,而每个设备,由于型号,厂商均不相同,它们的实现方式均不同.此处,设置一个通用接口和工厂和,来完成扫描功能
目前功能包括条形码扫描和RFID标签扫描.注:项目文件说明请参考:ReadMe文件
QH.Example.WinCE

图-12
此项目包括登录和主页面,可直接使用.App.Config.xml文件是描述应用程序各种配置选项,如WebService地址.设备编码等
Base文件夹
FormBase为所有页面基类,主要功能实现对条形码和RFID标签的扫描,直接在基类页面中封装
FormException为应用程序异常捕获页面,在系统遇到异常时,均调用此页面展示错误信息
Business文件夹
AppManager类为应用程序帮助类,用于存储通用的SQL语句,验证登录信息等
Entities文件夹
存储应用程序用到的实体类.如PM_User表示用户表实体类
Form文件夹
存储应用程序业务页面
Images文件夹
存储应用程序用到的图片
App.Config.xml
应用程序配置项

图-13
- DevCode:表示设备编码
- DevType:表示设备类型.包括真实设备型号和虚拟设备(virtual关键字).虚拟设备表示模拟真实设备功能,在没有真实设备的情况下,应用程序也可以运行
- DebugMode:调试模式.值为True或Flase.若为True,表示开启调试模式
- WSUrl:WebService地址
- SQLiteFileName:SQLite数据库文件名称
FormFrame和FormLogon类
系统主页面和登录页面

图-14

图-15
其他页面

图-16

图-17
3.源码解析
解析1

图-18
解析2

图-19
解析3

图-20
Navi.Soft20.WinCE使用手册的更多相关文章
- Navi.Soft31.WinCE框架.开发手册(含下载地址)
1.概述 1.1应用场景 随着物联网的普及,越来越多的制造商对货品从原料配备,加工生产,销售出库等环节的要求和把控越来越高.在此情况之下,传统的ERP软件已经无法满足现有的操作流程. 移动设备的应用, ...
- Navi.Soft31.阅读导航
Navi.Soft31.核心类库 Navi.Soft31.WinForm框架 Navi.Soft31.WebMVC框架 Navi.Soft31.微信WinForm框架 Navi.Soft31.Mobi ...
- Navi.Soft30.框架.WinForm.开发手册
阅读导航 Navi.Soft30.Core类库.开发手册 http://www.cnblogs.com/xiyang1011/p/5709489.html Navi.Soft30.框架.WinForm ...
- Navi.Soft30.产品.DataWindowNet.操作手册
1概述 1.1功能简介 Sybase公司的PowerBuilder开发工具,在以前VS工具没有成事以前,是相当风光的.微软都要与其合作,学习它Db方面的技术,才成就了SQLServer数据库.PB开发 ...
- Navi.Soft30.开放平台.聚合.开发手册
1系统简介 1.1功能简述 现在是一个信息时代,并且正在高速发展.以前获取信息的途径非常少,可能只有电视台,收音机等有限的来源,而现在的途径数不胜数,如:QQ,微信,官方网站,个人网站等等 本开发手册 ...
- Navi.Soft30.开放平台.腾讯.开发手册
1系统简介 1.1功能简述 现在是一个信息时代,并且正在高速发展.以前获取信息的途径非常少,可能只有电视台,收音机等有限的来源,而现在的途径数不胜数,如:QQ,微信,官方网站,个人网站等等 本开发手册 ...
- Navi.Soft30.开放平台.百度.开发手册
1系统简介 1.1功能简述 现在是一个信息时代,并且正在高速发展.以前获取信息的途径非常少,可能只有电视台,收音机等有限的来源,而现在的途径数不胜数,如:QQ,微信,官方网站,个人网站等等 本开发手册 ...
- Navi.Soft30.框架.Mobile.开发手册
1概述 1.1应用场景 互联网的发展,使用基于Web的软件异军突起,目前占据着相当大的市场份额,而手机,平板电脑等移动端设备的频繁使用,使移动端的软件快速发展,逐步有超越Web软件的趋势 移动软件中, ...
- Navi.Soft30.框架.WebMVC.开发手册
1概述 1.1应用场景 互联网高速发展,互联网软件也随之越来越多,Web程序越来越被广泛使用.它部署简单,维护方便,深得众多软件公司使用 Bootstrap前端框架,是最近非常流行的框架之一.它简洁, ...
随机推荐
- SCOM Visio监控 与sharepoint 2010 整合
激活sharepoint 2010的企业版网站功能 在sharepoint 前端服务器安装:OpsMgrDataModule.msi,安装好后可以看到如下东东: 在Sharepoint前端服务器中启动 ...
- Objective-C 理解之方括号[ ]的使用
1,用于通知某个对象该做什么,即通知对象去执行某动作. 在Objective-c中,“[]”的意义:它们用于通知某个对象该做什么.这种通知对象执行某中操作的行为被称为“发送消息”. 例如: [sh ...
- C语言中do...while(0)用法小结
在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 本文地址:http://www.cnblogs.com/archimedes/p/ ...
- C迷途指针
在计算机编程领域中,迷途指针,或称悬空指针.野指针,指的是不指向任何合法的对象的指针. 当所指向的对象被释放或者收回,但是对该指针没有作任何的修改,以至于该指针仍旧指向已经回收的内存地址,此情况下该指 ...
- android 音乐播放器简单实现
package com.zhangbz.musicplayer; import java.io.File; import android.app.Activity; import android.me ...
- Swift中的数组
学习来自<极客学院:Swift中的字符串和集合> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 import Foundation //数组: ...
- 饭团(1):用NABCD大法为项目奠基
上一篇文章:提升效率的开发工具 提到高效的开发工具就像催化剂,加速项目开发.这篇文章提到的NABCD大法,就像一份地图,指引项目往正确的方法上发展. 选择比努力更重要.一个项目成功自然离不开码农们的努 ...
- iOS 应用架构浅谈
当我们讨论客户端应用架构的时候,我们在讨论什么? 其实市面上大部分应用不外乎就是颠过来倒过去地做以下这些事情: 简单来说就是调API,展示页面,然后跳转到别的地方再调API,再展示页面. App确实就 ...
- setInterval setTimeout clearInterval
setTimeout() 只执行 code 一次.如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout(). //第一次load的时候就先刷新一次 ...
- fastCGI与PHP-fpm
fastCGI是nginx和php之间的一个通信接口,该接口实际处理过程通过启动php-fpm进程来解析php脚本,即php-fpm相当于一个动态应用服务器,从而实现nginx动态解析php.因此,如 ...