WinCEService项目

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

时间: 2025-01-13 12:42:37

WinCEService项目的相关文章

Win10下IIS配置、项目发布、添加网站

Win10下IIS配置 1.找到控制面板:[开始]菜单鼠标右击,打开[控制面板] 2.打开控制面板,点击[程序],点击[启用或关闭Windows功能] 下一步,点击[启用虎关闭Windows功能] 3. 开始修改IIS了,我是这样勾上的,有可能比较多. 4. 验证IIS是否正确安装,等待几分钟后IIS配置完成.在浏览器输入http://localhost/iisstart.htm会出现 IIS安装成功页面.第一次修改的时候出现了成功页面,但是后来删除了IIS中默认的网站就打不开了,但是不影响的.

使用 IDEA 创建 Maven Web 项目 (异常)- Disconnected from the target VM, address: '127.0.0.1:59770', transport: 'socket'

运行环境: JDK 版本:1.8 Maven 版本:apache-maven-3.3.3 IDEA 版本:14 maven-jetty-plugin 配置: <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <configuration> <webAppSourceDirectory>${pro

MyEclipse建立SpringMVC入门HelloWorld项目

一.首先,建立空的web project项目: 1. 2. 3. 二.其次,导入先关jar包 1.将jar包导入SpringMVCHelloWorld\WebRoot\WEB-INF\lib目录下 三.接下来修改web.xml文件,在web中,指定我们的DispatcherServlet.(从这里进入SpringMVC的可控范围). 1. 2.web.xml中的内容如下: <?xml version="1.0" encoding="UTF-8"?> &l

如何用 Android Studio 导入开源项目以及常见错误的解决办法

声明:这篇文章完全来自这篇文章,感谢大神的相助.这篇文章纯粹是为了备份. 本篇以Github上最热门的MaterialDesign库,MaterialDesignLibrary来介绍怎样使用Android Sudio导入开源项目的,如果你和我一样刚刚从Eclipse转到AS,那本篇文章非常适合你. 如果不引入任何第三方库,不做自动化分渠道打包等操作,那可以在完全不了解Gradle的情况下进行Android项目的开发.但如果要想导入Github上的热门项目,必须首先熟悉Gradle. 1. Gra

【机器学习实战】Machine Learning in Action 代码 视频 项目案例

MachineLearning 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远 Machine Learning in Action (机器学习实战) | ApacheCN(apache中文网) 视频每周更新:如果你觉得有价值,请帮忙点 Star[后续组织学习活动:sklearn + tensorflow] ApacheCN - 学习机器学习群[629470233] 第一部分 分类 1.) 机器学习基础 2.) k-近邻算法 3.) 决策树 4.) 基于概率论的分类方法:朴素

git 把本地创建的项目放到github上

很早之前就注册了Github,但对其使用一直懵懵懂懂,很不熟练.直到昨天做完百度前端技术学院的task,想把代码托管到Github上的时候发现自己对于Git的操作是如此之愚钝,所以今天决定把Git好好学习一遍,好让自己以后能更好地使用Github,主要还是通过Git教程 - 廖雪峰的官方网站来学习.简要步骤可以直接看最后的总结. Git的安装就不说了. 第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹). 你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创

eclipse部署tomcat修改项目访问路径(虚拟路径)

原文参考: http://www.educity.cn/wenda/147993.html http://blog.163.com/java_zf/blog/static/19926038420129240314546/ tomcat部署web项目(eclipse自动部署项目到tomcat,访问URL中不包含部署名) 最近项目中需要把项目部署到tomcat中,并且访问路径中不包含不署名,且想实现Eclipse中的自动部署,扒了好久资料,最终实现了自己的需求,呵呵,如下: 1. 把项目contex

配置resin web方式部署项目

写在前面,推荐下载resin4.0.47版本.其它版本没有测试 最近打算做一个小项目,然后容器选用了resin.想通过web提交war文件的方式 进行部署,更新代码也方便. 试了resin最新的版本(目前最新版本为4.0.53),提交war文件到webapps下面都是.tmp文件.百度google一通还是没找到解决办法. 看了下公司用的resin版本,选择4.0.47.下载后发现没最新版本的上传问题. 通过web提交war文件方式步骤如下: 步骤一:修改resin.properties.推荐配置

jsp获取当前项目跟路径

在jsp中获取当前项目的根路径: <% String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";%> 可以使用${basePath}获取.