由於工作的關係,有一部分工作需要和PDA開發打交道,讓我漸漸地進入了移動開發的領域。相對於案頭應用來說,PAD應用的開發算是比較前衛的工作了。說它前衛,主要是由於其範圍沒有PC應用廣,實現技術比PC應用難,開發群體比PC開發少。為了能和大家進行廣泛的開發交流,我就做個引子吧,希望大家能踴躍地參與。
作為開篇,我還是希望能從基礎說起,能讓大家能由淺入深地瞭解、學習PDA開發。
平台
Windows Mobile是微軟公司作業系統產品線上重要的一環。與Windows 9x/NT/XP/2003相比,Windows Mobile作為完整產 品線出現在公眾面前的時間非常短,但它的發展卻異常迅速,而在這一發展過程中,開發人員提供了絕對關鍵的推動力。現在,越來越多的開發人員(特別是.NET 開發人員)希望能儘快進入Windows Mobile的開發領域。
因為Windows Mobile平台構建於微軟的Windows CE系列作業系統之上(當前正式商用版本為Windows CE .NET 5.0),而Windows CE作業系統具有非常良好的模組化特性,因此開發人員,特別是手機裝置廠商,可以通過微軟提供的Platform Builder及eMbedded Visual C++(以下簡稱為eVC)非常方便地定製自己所需的作業系統。
絕大多數的開發人員並不需要去構建一個全新的、個人化的系統,他們只需要關心如何構建能夠運行在Windows Mobile裝置上的應用程式。為此,微軟按主要智慧型裝置自身硬體裝置特性的不同以及使用者體驗的差異,定製出了Windows CE .NET 4.x系列作業系統的兩個主要分支,分別安裝在不同的Windows Mobile硬體裝置中,從而也就構成了我們通常所說的Pocket PC和Smartphone。以下內容中的Windows Mobile開發,除特指之外,均表示Pocket PC/Smartphone開發。
開發工具
常用的開發工具有eMbedded Visual C++(以下簡稱為EVC)、eMbedded Visual Basic 、VisualStudio.net,在VisualStudio.net2003中整合了Compact Framework1.0(以下簡稱.NET CF)。非常適合開發Pocket PC2002上的應用,而且其本身也整合了Pocket PC2002的模擬器,能非常方地進行調試工作。當然,現在VS2005出來後,支援CF2.0,且內建Pocket PC2003模擬器,同時提供了更多更豐富的組件。
不過現在還是有一些WinCE.net的核心功能沒有被封裝CF.net中,所以有時需要進行底層平台叫用,在vs2002的CF中不支援,不過到了VS2005開始提供了強大的平台叫用功能
如果需要進行資料庫方面的開發,可能你會需要使用Microsoft SQL 2000 Windows CE Edition(又稱為SQL Server CE),目前版本是2.0,該資料庫放在行動裝置上,作為一個檔案訪問 ,同時也提供了一些輔助程式,如SQLServer CE的查詢分析器,而且該資料庫可以很好地和SQLServer進行資料同步。
當然,如果你覺得上面提到的還不夠,比如你還想擁更豐富的組件,可以到網上找找,現在有很多開源的,基於CF的組建庫可以免費使用,這裡筆者推薦一個個人認為比較好的網站,上面也有開源的開發架構Smart Device Framework1.4,網址是http://www.opennetcf.org
常見應用及方案
應該說行動裝置的應用,應用範圍也隨著其處理能力的增強開始變的越來越廣。從個人助理,到公司專屬應用程式幾乎都能看到它的影子。
對於個人開發來說主要是集中在議程管理、郵件等簡單的資訊管理,對於企業來說,可能依賴其做少量的資料處理和隨處工作,或者是進行即時的資料擷取等等。
由於受到其處理能力和儲存能力的限制,很多時候我們都會利用現有的其他技術來擴充PDA的功能。如可能我們需要利用PDA的移動定性為我們完成即時的資料擷取,但採集的資料需要及時通過和背景大量資料進行對比分析來得到反饋,所以我們這時需要擴充其儲存能力,常用的方式就是通過一個Webservice和背景資料庫進行通訊,讓PDA的所有資料互動通過Webservice進行,PDA上不做資料存放區(其實它也沒那個能力來儲存)。再者,可能我們需要緩衝部分資料到PDA,然後定期和資料庫伺服器同步資料,這就要用到SQL Server CE了,他可以很好的通過SqlServer CE 用戶端代理和服務端代理和進行資料通訊。