Windows Mobile開發FAQ

常見問題

    問:什麼是Windows Mobile?

    答:Window Mobile是微軟公司Pocket PC以及Smartphone的軟件平臺。Windows Mobile把熟悉的Windows桌面系統擴展到了個人手持設備之上。

    問:Pocket PC與Smartphone區別何在?

    答:我們根據主要的使用用途來區分Pocket PC與Smartphone。Smartphone在外形和功能上都主要設計爲電話設備。它非常適合接打電話以及作爲信息管理設備。Pocket PC主要設計爲可以方便查看、管理數據以及增強信息管理功能的小型個人電腦。有些Pocket PC設備也會帶有電話功能。您可以根據您的Windows Mobile設備的不同用途來選擇您的應用程序。

    問:Pocket PC以及Smartphone的不同版本有何區別,比如2002與2003?

    答:每一個新的Windows Mobiles software版本都是構建在原有的強大的開發平臺之上。同時,對於開發者來說,每個新的Windows Mobile software版本都維持了原有核心的一致性以便更好的兼容設備。現在主要有如下三種Windows Mobile software版本:

  • Windows Mobile 2002 software:該軟件主要運行在被稱爲Pocket PC 2002以及Smartphone 2002的設備上。它包括了MAPI以及連接管理(Connection Manager)的新功能。
  • Windows Mobile 2003 software:該軟件版本在基於2003的設備中的ROM中附加了.NET CF。該功能可以讓開發者爲基於Windows Mobile 2003的設備編寫託管代碼(Managed Code)。它還包括了配置管理(Configuration Manager)、支持藍牙編程、以及支持SMS偵聽的新功能。
  • Windows Mobile 2003第二版:該版本提供瞭如支持屏幕橫向閱覽模式(Landscape)、爲Pocket PC提供的高分辨率屏幕支持以及Square屏幕支持、爲Smartphone提供的QVGA屏幕等革新功能。在該版本中所有開發平臺上的所有命名沒有做 任何改變,所有支持新屏幕方向和分辨率的API都已經成爲了該平臺的一部分。

    問:如何識別不同的軟件版本?

    答:不管是Pocket PC還是Smartphone在“設置”中都有“關於”面板。在兩種設備中都可以通過“開始”菜單來找到“設置”。

    在編程的代碼中,您可以使用GetVersionEx方法來獲得操作系統的主、次版本號以及軟件的具體編譯數據。具體如下:

  • Windows Mobile 2002–OS Version : 3.0
  • Windows Mobile 2003–OS Version : 4.20
  • Windows Mobile 2003第二版–OS Version : 4.21

Pocket PC開發

    問:有哪些工具可以支持Pocket PC 2003開發?

    答:如果使用C++爲Pocket PC 2003開發程序,您需要使用Microsoft eMbedded Visual C++ 4.0,Microsoft eMbedded Visual C++ 4.0 Service Pack 3,以及Pocket PC 2003 SDK。

    您可以使用Windows Mobile 2003第二版的模擬器工具包來在模擬在第二版的設備上測試您的程序。

    請注意:Pocket PC 2003 SDK中不支持Microsoft eMbedded Visual Basic開發。您將需要使用Visual Studion.NET 2003以及Pocket PC 2003 SDK來編譯託管代碼(Managed Code)編寫的程序。

    問:Pocket PC 2002上的應用程序也適用於Pocket PC 2003嗎?

    答:一般來說,使用文檔中註明的API開發的能在Pocket PC 2002上正常工作的程序,可以不用重新編譯直接在Pocket PC 2003上運行。

    問:爲什麼Pocket PC 2003不再提供對eVB開發環境的支持?

    答:我們在Pocket PC 2003設備上將一直支持作爲在RAM上的安裝組件方式來支持eVB運行,因此舊版本的eVB程序也可以在新設備上運行。但是我們不再爲Pocket PC 2003設備提供新的eVB開發環境的支持,因爲我們提供了更爲強大也更爲健壯的Visual Basic .NET,Visual C# .NET以及Microsoft.NET Compact Framework。

    根據用戶的反饋,Pocket PC 2003設備中將在ROM中包括.NET CF。.NET CF是.NET Framework完整版的一個子集,它是專門爲智能設備開發而設計的。它不僅僅是類似在Pocket PC 2000以及Pocket PC 2002設備中提供的eVB運行環境這麼簡單,它同樣也是一個完備的語言中立的程序引擎。

    問:如何由eVB向Visual Basic .NET遷移?

    答:雖然由eVB向Visual Basic .NET遷移並不容易,但是您絕對值得這麼做。

  • 更加豐富的數據類型;eVB僅僅提供了16位的VARIANT;Visual Basic NET可以使用.NET Framework中的所有基礎數據類型。
  • 更快的執行速度:eVB是解釋執行的;Visual Basic .NET通過JIT(Just-In-Time)在執行前先編譯爲本地代碼。
  • 更好的錯誤處理機制:eVB僅僅支持“ON Error”;Visual Basic .NET支持結構化的錯誤處理。
  • 提供對結構(structures)支持:eVB沒有結構的概念;Visual Basic .NET中支持命名空間(namespaces),類(classes),以及結構(structures)。
  • 對面向對象的支持:eVB是基於過程的;Visual Basic .NET完全支持OOP(Object-Orientated Programming)
  • 更好的特性:eVB僅僅支持MFC;Visual Basic .NET是純.NET
  • 與生俱來的XML支持:eVB不支持XML;Visual Basic.NET支持XML以及XML Web Services。
  • 更好的數據模型:作爲我們最好的數據模型,ADO.NET遠遠超過了ADOCE。
  • 更加安全、可靠的執行:eVB是腳本語言;Visual Basic .NET是託管代碼(Managed Code)。

    同樣,從範例到技術文章,我們有各種豐富的資源協助開發者完成這個轉變。

    問:如果需要爲Pocket PC開發基於.NET CF的程序,可以採用何種開發工具?

    答:Microsoft Visual Studio .NET 2003可以讓Visual Basic .NET或C#開發者爲Pocket PC 2000,Pocket PC 2002,Pocket PC 2003等相關設備編寫託管代碼(Managed Code,也就是所這些程序將在.NET CLR下運行)。毫無疑問,您可以使用Visual Studio .NET 2003爲Pocket PC 2000以及Pocket PC 2002的相關設備開發託管代碼程序。Visual Studio .NET 2003可以自動在開發中在這些設備的RAM上安裝.NET CF。在Pocket PC 2003的ROM中已經存在了.NET CF,同時也通過Pocket PC 2003 SDK被Visual Studio .NET 2003支持。

    問:有哪些相關資源是關於Windows Mobile 2003第二版開發的?

    答:下載新的Windows Mobile 2003 Second Edtion Developer Resources Kit,裏面包括了最新以及更新的代碼例子以及白皮書。並且這個版本不需要新的SDK。您可以通過使用新的模擬器工具包來測試您的程序。eMbedded Visual C++ 4.0開發者應該先下載eMbedded Visual C++ 4.0 Service Pack 3

Smartphone開發

    問:有哪些工具可以支持Smartphone 2002開發?

    答:您可以使用eMbedded Visual C++ 3.0以及Smartphone 2002 SDK來爲Microsoft Smartphone 2002開發程序。這些軟件都可以從MSDN網站上獲得。

    問:什麼時候會有支持Smartphone 2002開發的.NET CF?

    答:第一個版本的.NET Compact Framework主要是爲了更好的支持比較成功的Pocket PC相關的智能設備上程序開發。我們將在Smartphone的Smartphone 2003的版本中增加.NET CF。我們暫時沒有計劃發佈支持Smartphone 2002的.NET CF。

    問:是否有支持Smartphone 2002開發的MFC或ATL?

    答:沒有,MFC或者ATL都不支持Smartphone 2002。

    問:可以使用eMbedded Visual Basic 3.0爲Smartphone 2002開發程序嗎?

    答:不行。沒有針對於Smartphone 2002的eVB開發環境。

    問:有哪些工具可以支持Microsoft的Smartphone 2003編程?

    答:隨着Smartphone 2003的發佈,您將有兩項開發工具可供選擇:使用帶有Server Pack 3的eMbedded Visual C++ 4.0(採用本地代碼)或者使用Visual Studio .NET 2003(使用託管代碼)。不管怎樣,您都必須下載Smartphone 2003 SDK。同時,使用Windows Mobile 2003第二版的模擬器可以讓你模擬在第二版的設備上測試程序。

    這些軟件都可以從MSDN網站上獲得。

    問:在Smartphone 2003上可以使用哪個版本的.NET CF?

    答:Smartphone 2003允許開發者使用.NET Compact Framework 1.0 Service Pack 1來開發程序。.NET Compact Framework將被包括在Smartphone 2003的ROM中。同時.NET Compact Framework 1.0 Service Pack 2將在Smartphone 2003第二版的ROM中存在。

    問:Smartphone 2002上的應用程序也適用於Smartphone 2003的相關設備嗎?

    答:一般來說,使用文檔中註明的API開發的能在Smartphone 2002上正常工作的程序,可以不用重新編譯直接在Smartphone 2003上運行。

    問:有哪些典型的基於Smartphone 2002以及Smartphone 2003的設備?

    答:最初的Orange SPV以及Orange SPV e100都是運行在Windows Mobile 2002之上。MPX200同樣基於Orange,AT&T也構建在基於Windows Mobile 2002的Smpartphone上。Orange SPV e200運行在Windows Mobile 2003之上。

    問:是否有支持Smartphone 2003開發的MFC或ATL?

    答:MFC不支持Smartphone 2003。您可以使用ATL 4.0來爲Smartphone 2003做開發。請查看SDK文檔來獲得更多關於ATL 4.0的信息。

    問:哪裏可以獲得關於Smartphone應用程序安全模型的更多信息?

    答:爲了便於開發者理解基於Windows Mobile的Smartphone的應用程序安全模型,我們創建了相關的白皮書。具體可以參考:http://msdn.microsoft.com/library/en-us/dnsmtphn2k3/html/smartphone_security.asp

    問:什麼是命令行模式?

    答:OEM或者操作者可以在程序中提供命令行模式。可以通過設置他們的Smartphone應用程序安全策略中來讓使用者在安裝或者運行程序時決定是否安裝或者運行程序的方式來提供命令行模式。

    問:eMbedded Visual Basic 3.0可以爲Smartphone 2003開發程序嗎?

    答:不行。沒有支持Smartphone的eVB開發環境。如果您希望使用您的Visual Basic的開發技巧,您可以考慮採用Visual Basic .NET以及.NET CF。

    問:有哪些相關資源是關於Windows Mobile 2003第二版開發的?

    答:下載新的Windows Mobile 2003 Second Edtion Developer Resources Kit,裏面包括了最新以及更新的代碼例子以及白皮書。並且這個版本不需要新的SDK。您可以通過使用新的模擬器工具包來測試您的程序。eMbedded Visual C++ 4.0開發者應該先下載eMbedded Visual C++ 4.0 Service Pack 3。

Mobile開發工具

    問:什麼是Microsoft eMbedded Visual Tools 3.0?

    答:eMbedded Visual Tools 3.0是一個集成化開發工具。該開發工具主要針對基於使用Microsoft Windows CE操作系統的32位設備移動應用程序的開發者而提供的開發工具。該開發環境的完全版包括了Microsoft eMbedded Visual C++ 3.0語言,Microsoft eMbedded Visual Basic 3.0語言,專有平臺SDK,遠程工具以及文檔。

    問:eMbedded Visual Tools 3.0支持哪些設備平臺?

    答:eMbedded Visual Tools 3.0 - 2002 Edition以及SDK主要支持Pocket PC 2000、Pocket PC 2002、Smartphone 2002以及其他基於Windows CE 3.0的設備。

    請注意:Pocket PC 2002 SDK可以使用eMbedded Visual Basic 3.0或者eMbedded Visual C++ 3.0,而不論Smartphone 2002 SDK是否僅僅支持eMbedded Visual C++ 3.0。

    問:什麼是eMbedded Visual C++ 4.0?

    答:eMbedded Visual C++ 4.0是一個強大的開發工具。它爲使用本地代碼(Native Code)開發下一代的基於Windows CE設備,包括Pocket PC 2003以及Smartphone 2003的程序提供了最大的便利。這個獨立的集成化開發工具爲Windows CE程序開發帶來了更高水平的生產力,同時在開發的靈活性、性能以及控制上卻沒有任何損失。如果使用eMbedded Visual C++工具爲Pocket PC 2003或Smartphone 2003開發,您同樣需要下載eMbedded Visual C++ 4.0。Service Pack 3、Pocket PC 2003 SDK以及Smartphone 2003 SDK。

    問:可以使用eMbedded Visual C++ 4.0爲Pocket PC或Smartphone開發程序嗎?

    答:您可以使用eMbedded Visual C++ 4.0加上Service Pack 2來爲Pocket PC 2003以及包括了Windows Mobile 2003第二版的Smartphone 2003開發應用程序。但它不能用於Pocket PC 2002以及Smartphone 2002的開發。

    問:可以使用Windows CE標準SDK爲Pocket PC或Smartphone開發程序嗎?

    答:Windows CE SDK提供了一組特性的公共子集。這些子集可以允許遵照標準SDK開發的程序在基於Windows CE .NET平臺上運行。爲了更好的爲Pocket PC以及Smartphone這樣的智能設備開發程序,建議最好使用提供了更多特性的專有設備SDK。

    問:eMbedded Visual Tools 3.0和Visual Studio.NET有何區別?

    答:eMbedded Visual Tools 3.0是一個獨立的開發環境。它主要面向於移動或者是嵌入式開發者。對於Pocket PC以及Smartphone,可以使用eMbedded Visual工具加上合適了平臺SDK來構建強大的本地代碼(Native Code)客戶端程序。使用Visual Studio .NET 2003可以構建基於.NET Compact Framework的Pocket PC智能客戶端程序。同樣使用Visual Studio .NET以及ASP.NET移動開發控件可以開發基於瀏覽器的程序,這種程序可以支持更多的設備,其中包括向Pocket PC以及Smartphone這樣的設備。

    問:爲什麼Visual Studion.NET中沒有整合eMbedded Visual C++4.0?

    答:根據用戶反饋,我們最初的努力都集中在如何讓Visual Basic .NET開發者能夠更加便利的開發程序。然而,我們將在下一個版本的Visual Studio中集成使用本地代碼(C++)開發移動設備程序的能力。

    問:什麼是.NET Compact Framework(簡稱.NET CF)?

    答:.NET Compact Framework是.NET Framework的一個子集。它的主要目標針對於資源有限設備而設計,提供對託管代碼(Managed Code)以及XML Web Services的支持。.NET Compact Framework大大的介紹了開發者在開發運行在類似Pocket PC這樣的設備的程序的代碼量。因爲.NET Compact Framework是.NET Framework的一個子集,因此如果開發者有開發桌面或服務器應用程序的經驗,他們同樣也可以應用相應的技巧來爲Pocket PC以及Smartphone 2003相關設備開發程序。

    問:使用.NET CF的最大優點何在?

    答:爲不同設備開發程序最大的障礙在於,大多數設備都需要開發者學習比開發桌面程序更多的API以及編程工具。因爲.NET CF採用與.NET Framework同樣的編程模型以及採用與開發桌面程序或服務器程序相同的開發工具,因此,它大大的提高的開發者的生產力。反過來,同樣爲會促進公司使 用智能設備開闢新的途徑提高業務量。同樣,.NET CF也是唯一的爲本地代碼提供XML Web Services支持的移動開發平臺。

    問:.NET CF可以在哪些設備上運行?

    答:.NET Compact Framework可以安裝在Pocket PC 2000或者Pocket PC 2002相關設備(包括智能手機版本)的RAM中。同時在Pocket PC 2003相關設備的ROM中以及包括了.NET CF。Smartphone 2003設備中以及包括了.NET CF 1.0以及Server pack 1。所有的Windows Mobile 2003第二版的設備中都包括了.NET CF 1.0 Server Pack 2。

    問:.NET CF將在什麼時候可以使用?

    答:.NET CF 1.0的版本已經作爲了Visual Studio .NET 2003的一部分。

    問:.NET CF上可以支持所有的.NET語言嗎?

    答:最初的.NET CF可以支持Visual C#以及Visual Basic。只要採用了遵照.NET CF支持的CLR語言,其他語言一樣也可以運行。

    問:.NET CF將會和eMbedded Visual C++一樣出色嗎?

    答:在大部分情況下,使用eMbedded Visual C++開發的程序將比使用Visual Basic .NET或者Visual C# .NET開發的程序運行速度要快。但是,在程序中的某些地方進行詳細的比較,會發現使用Visual Basic .NET的應用程序將比eMbedded Visual Basic相同的應用程序的性能有實質上的提升。

    問:.NET CF和ASP.NET Mobile Controls的區別何在?

    答:有兩種不同的方案爲移動設備開發程序。一種是直接讓程序在智能設備上運行;另外一種是讓程序在服務器端運行,而通過瀏覽器在客戶端顯示。.NET CF支持前者,而ASP.NET Mobile Controls(即Microsoft Mobile Internet toolkit)支持後者。

    如果開發的程序需要在沒有網絡連接的情況下運行或者要求有更強大的用戶界面支持或者需要與操作系統緊密相關,比如多媒體或者其他設備,那麼使用.NET CF將爲開發這類智能設備程序提供最大的便利。

    當然,開發在服務器段運行的程序也有相應的好處。這種結構尤其對需要有大範圍的需要通過網絡訪問的程序最有價值。因爲服務器端採用與臺式機相同的設備,因 此這些程序不會受到資源的限制。我們一般利用Visual Studio .NET中的ASP.NET Mobile Controls來開發相關程序。

 轉自:http://blog.csdn.net/axes/articles/327497.aspx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章