随着物聯網的普及,越來越多的制造商對貨品從原料配備,加工生産,銷售出庫等環節的要求和把控越來越高.在此情況之下,傳統的ERP軟體已經無法滿足現有的操作流程.
移動裝置的應用,在很大程度上彌補了傳統ERP軟體的不足,在物聯網中,也起着非常重要的角色.
移動裝置目前包括微軟WinCE系統,谷歌的Android系統和蘋果的IOS系統.Android和IOS系統目前在個人消費領域應用非常廣泛,但在應用軟體領域目前使用不多.WinCE系統出道較早,也屬于名門之後.在此系統中開發的應用軟體也很多
在此背景環境下,開發出基于微軟WinCE系統的一套架構,供程式開發員使用
Net程式開發員
本架構包含2部分
程式名稱
開發環境
描述
WinCEFrame
VS2008+STANDARD_SDK.msi+
必須是VS2008和WinCE項目開發包.注:必須安裝開發包,否則無法建立WinCE項目
WinCEFrame_WebService
VS2010或以上
建立項目類型是WebService.建立WebService項目類型必須是Net3.5,建立成功後,再更新至4.0即可
l 短小精悍, 通俗易懂,上手容易,入手簡單
l 采用WebService橋接用戶端和資料庫,接口通用,可同時用于Net和Java
l 操作資料采用ORM,降低出錯機率
l 統一錯誤捕捉機制
2.1.1概述
服務端以WebService為主,用于與WinCE互動.WinCE軟體中,根據業務邏輯代碼,拼接好待上傳至資料庫的資料,通過服務端的WebService程式,儲存至資料庫.實作WinCE系統與資料庫的互動
服務端程式目前支援SQLServer和Oracle這2種資料源.與用戶端通過DataSet或DataTable這種ADO.Net結構傳輸資料.
2.1.2源碼結構
如圖2-1所示
圖2-1
l WinCEWebService
此項目為WebService類型項目.提供與資料庫互動的各種操作
n Provider檔案夾:提供對每個資料庫的操作.其中,對Oracle操作是采用Oracle.DataAccess.dll檔案.并不是微軟提供的
n 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用戶端上傳的資料.此方法為預留方法,可以不使用
n Web.Config
此檔案為配置檔案,用于配置資料庫類型和連接配接字元串.配置如圖2-2所示
圖2-2
l WinCEWebServiceTest
此項目專門用于測試WinCEWebService程式.測試頁面隻有一個
n 此項目需要引入WebService項目,在引用過程中,最好選擇從本解決方案中引用WebService,這樣的好處是可以直接調試.如圖2-3所示
圖2-3
n PageTestWebService.aspx
測試頁面中,建立若幹按鈕.分别調用WebService中方法.如圖2-4和圖2-5所示
圖2-4
圖2-5
若測試成功,則提示如圖2-6所示頁面
圖2-6
2.2.1概述
用戶端是WinCE類型的項目,即運作在WinCE裝置上的應用程式,它與資料庫交流通過WinCEService端生成的WebService互動,目前支援SQLServer和Oracle資料庫.
在用戶端應用程式中,采用ORM方式操作資料,棄用DataTable的ADO.Net資料結構,這樣可以減少資料操作過程中出現的錯誤,如資料類型間轉換,屬性指派等
2.2.2源碼結構
圖2-7
2.2.2.1NS.Core項目
圖2-8
核心類庫,存儲各種常用方法,通用接口等.是所有項目的基礎
n Base檔案夾,存儲基類檔案.如實體基類,幫助基類等
n Component檔案夾,存儲元件基類.目前僅包括資料庫元件
n 根檔案夾,存儲各種幫助類.如DataTable對象幫助類,字元串對象幫助類等
2.2.2.2NS.Component.DataBase項目
圖2-9
資料庫元件,目前支援對SQLite資料庫操作,同時将實體類轉譯為SQLServer和Oracle資料庫的SQL語句,用于将業務實體儲存至資料庫,通過WebService
2.2.2.3NS.Control.WinCE項目
圖2-10
存儲對WinCE常用控件的操作.如ComboBox下拉菜單資料源加載,選中項的取值和指派.Grid清單控件的資料源加載等.代碼比較簡單,不再描述
2.2.2.4NS.Utility.WinCE項目
圖2-11
對裝置各種功能的封裝,還有對WebService的封裝.WinCE裝置主要用于各種掃描,包括RFID标簽掃描和條形碼描述,而每個裝置,由于型号,廠商均不相同,它們的實作方式均不同.此處,設定一個通用接口和工廠和,來完成掃描功能
目前功能包括條形碼掃描和RFID标簽掃描.注:項目檔案說明請參考:ReadMe檔案
目前已内置部分硬體廠商的條碼掃描裝置和RFID掃描裝置.分别如下圖所示
圖2-11-1
圖2-11-2
2.2.2.5NS.Soft30.Frame.WinCEApp項目
圖2-12
此項目包括登入和首頁面,可直接使用.App.Config.xml檔案是描述應用程式各種配置選項,如WebService位址.裝置編碼等
n Base檔案夾
u FormBase為所有頁面基類,主要功能實作對條形碼和RFID标簽的掃描,直接在基類頁面中封裝
u FormException為應用程式異常捕獲頁面,在系統遇到異常時,均調用此頁面展示錯誤資訊
n Business檔案夾
u AppManager類為應用程式幫助類,用于存儲通用的SQL語句,驗證登入資訊等
n Entities檔案夾
u 存儲應用程式用到的實體類.如ba_user表示使用者表實體類
n Form檔案夾
u 存儲應用程式業務頁面
n Images檔案夾
u 存儲應用程式用到的圖檔
n App.Config.xml
u 應用程式配置項
圖-13
Ø DevCode:表示裝置編碼.整個區域網路内此值必須唯一
Ø DevType:表示裝置類型.包括真實裝置型号和虛拟裝置(virtual關鍵字).虛拟裝置表示模拟真實裝置功能,在沒有真實裝置的情況下,應用程式也可以運作
Ø DebugMode:調試模式.值為True或Flase.若為True,表示開啟調試模式
Ø WSUrl:WebService位址
Ø SQLiteFileName:SQLite資料庫檔案名稱.注:檔案名稱,不含路徑
n FormFrame和FormLogon類
u 系統首頁面和登入頁面
圖2-14
圖2-15
n 其他頁面
圖2-16
圖2-17
圖-18
圖-19
圖-20
<a href="http://www.navisoft.com.cn/Document/Help/WinCEFrame.pdf" target="_blank">線上幫助</a>