2009-10-27 93 views
0

我需要設置一個應用程序來掃描裝箱單上的條形碼和windows CE 5.0設備上的相關配送項目,並更新服務器上的清單。我正在使用VB.NET。但是,與數據庫交互的最佳方式是什麼? Integration Services,ADO.NET,RDA等等......試圖找出我應該用來與數據庫進行交互的內容有點壓倒一切。它目前是一個Access數據庫,但我想我可能需要將它遷移到SQL Server或SQL Server Express。Windows CE - 數據庫

我還需要將裝箱單從設備打印到網絡打印機。有沒有辦法做到這一點?

回答

1

Sql CE是一個很好的選擇如果您的設備必須在斷開連接的狀態下(即未連接到服務器)運行。但是,如果您確實使用Sql CE,則強烈建議使用而不是使用RDA將本地更改保留回服務器數據庫(請參閱this answer)。無論如何,RDA合併複製都需要您的服務器數據庫爲Sql Server。

如果您的設備始終通過無線網絡連接到服務器,則根本不需要設備上的本地數據庫。您的設備可以通過運行在服務器上的ASP.Net Web服務上傳和下載數據。使用DataSets進行這種通信是一個不錯的選擇,因爲它們本質上是與數據庫無關的(因此你的PDA代碼不會特別在意你在服務器上使用的數據庫)。

Web服務方法還可以讓您處理打印要求。 PDA會將相關信息發送到Web服務方法,然後該方法將處理打印到網絡打印機。

0

在所有今天的場景中,我會推薦使用SQLite。這是今天使用最多的數據庫。不要將自己綁定到數據庫生態系統。只需go here並搜索「Windows CE(.NET Compact Framework)的預編譯二進制文件」。然後你有一個SQLite.Interop.*.dllSystem.Data.SQLite.dllSQLite.Interop.*.dll必須放置並部署在您的EXE文件之外。 System.Data.SQLite.dll是託管包裝器,您必須在項目中引用它。示例:Create SQLite Database and table

SQL Server Compact與大多數移動平臺(如iOS,Android等)不兼容。對舊版目標平臺的微軟支持很差,只讓Windows CE只有SQL Server Compact 3.5 SP2,而你沒有像「LIMIT」這樣的重要SQL函數。由於MS在桌面和Windows CE上使用不同的代碼頁,桌面操作系統(> Windows XP)上生成的數據庫也需要在設備上進行轉換(長時間延遲,當您第一次打開數據庫時)。

這是關於RDA微軟聲明:

由於設計上的限制,遠程數據訪問(RDA)將在未來的版本中刪除。如果您當前正在使用RDA,則應考慮過渡到ADO.NET的Microsoft同步服務。如果您打算在新應用程序中使用RDA,則應考慮合併複製或同步服務。請注意,Sync Services目前僅適用於Windows桌面操作系統。

與數據庫交互的最佳方式就是在服務器上構建數據庫,並將其壓縮(通過System.IO.Compression在桌面和Compact下提供)並將其發送到整個設備。平原和愚蠢。大多數設備的導入性能較差,因此即使您有一個奇特的同步框架,在本地執行導入操作可能會花費太多時間。

要傳輸數據庫,您可以使用WCF服務或僅使用HTTPS GET的任何Web服務器。像這樣:

// ppp_peer is in most cases the active sync connected pc 
string url = @"https://ppp_peer/export/database.db.gz"; 
string html = string.Empty; 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
using (Stream stream = response.GetResponseStream()) 
using (FileStream fs = new FileStream(stream)) 
{ 
    // Decompress your database here 
} 

要ORM您POCO對象只是使用類似https://bitbucket.org/twincoders/sqlite-net-extensions

但是,如果你有WLAN接入無處不在,我會考慮與Web服務器寫一個瀏覽器應用程序,並通過手機瀏覽器一起滿足您的需求。請記住,基於Windows CE 5的設備不具備開箱即用的HTML 5支持。如果您有選擇,請考慮切換到基於Android的設備。