1、Q:新建項(xiàng)目的時(shí)候選擇哪個(gè)項(xiàng)目類型才能創(chuàng)建智能設(shè)備的應(yīng)用程序?
A:在Visual Studio的新建項(xiàng)目對(duì)話框中選擇Visual C#或者Visual Basic項(xiàng)目類型,選擇智能設(shè)備模板,然后再選擇相應(yīng)的設(shè)備SDK,最后選擇“Device Application”,就可以創(chuàng)建一個(gè)移動(dòng)設(shè)備的應(yīng)用程序了。
2、Q:托管代碼與本地代碼有哪些區(qū)別?
A:托管代碼是指使用.NET Compact Framework開發(fā)的程序代碼,可執(zhí)行文件被編譯成IL,執(zhí)行時(shí)需要有.NET的運(yùn)行時(shí)環(huán)境。而本地代碼指用C++等語言開發(fā)的程序代碼,可執(zhí)行文件被編譯成與CPU指令集有關(guān)的機(jī)器碼,可以直接運(yùn)行。
3、Q:能不能簡要介紹一下Magneto里面對(duì)OTA和MMS的支持?
A:Magneto對(duì)OTA有很好的支持,SDK文檔的通訊部分中,有針對(duì)OTA的專門介紹。MMS的應(yīng)用程序基本都是由第三方開發(fā)的,因?yàn)镸MS是基于WAP協(xié)議的,而Magneto本身對(duì)WAP的支持也很好,具體的協(xié)議也可以在SDK文檔里找到。
4、Q:請(qǐng)問用Visual Basic .NET開發(fā)PDA數(shù)據(jù)庫程序能不能使用ADO.NET?
A:Visual Basic .NET開發(fā)PDA數(shù)據(jù)庫不需要引用System.data.oledb,只需要引用System.Data.SqlServerCe命名空間就可以了。該命名空間中的數(shù)據(jù)庫操作類和ADO.NET是基本一致的。可以用它們來開發(fā)針對(duì)SQL Server CE的應(yīng)用程序。
5、Q:在Visual C++2005中,可以使用.Net Compact Framework嗎?
A:不能,現(xiàn)在.NET Compact Framework只支持C#和VB.NET,而不支持C++/CLI。但是在VS.NET 2005中可以用C++來開發(fā)Native代碼來支持移動(dòng)設(shè)備。
6、Q:從什么地方可以得到Smartphone開發(fā)環(huán)境?
A:Smartphone的SDK可以在微軟網(wǎng)站上找到,而Visual Studio 2005 Beta 2可以通過參加微軟活動(dòng)的方式獲得。MEDC 2005的參加者都獲得了VS.NET 2005和Windows Mobile 5 SDK的開發(fā)光盤。
7、Q:托管性的代碼執(zhí)行效率怎么樣?和使用Visual C++編寫的代碼相比較。
A:托管代碼的執(zhí)行效率肯定不如本地代碼高,但是托管代碼也有一些好處是無法取代的。
8、Q:是否可以使用Visual Studio .NET 2003來開發(fā)能夠運(yùn)行在Windows Mobile 2005上的應(yīng)用程序?
A:首先更正一下,Windows Mobile最新一代的操作系統(tǒng)叫做Windows Mobile 5,而不是Windows Mobile 2005。是的,使用VS.NET 2003開發(fā)的應(yīng)用程序是可以在Windows Mobile 5上正常運(yùn)行的,因?yàn)閃indows Mobile 5 ROM中內(nèi)置了.NET Compact Framewrok 1.0 SP3。
9、Q:PDA上不能用Pocket Access么?SQL CE太大了。
A:可以使用Pocket Access來開發(fā)Windows Mobile上的應(yīng)用程序。可以采用C++調(diào)用OLEDB或者ADOCE的方式來訪問Pocket Access數(shù)據(jù)庫。
10、Q:Visual Studio 2005的新功能是否只在Windows Mobile 5里受到支持,2003是否支持?
A:新功能分兩個(gè)部分,一部分是.NET Compact Framework 2.0中提供的的新功能,這部分的功能可以被Windows Mobile 2003支持,但必須安裝.NET Compact Framework 2.0;而另一部分是Windows Mobile 5的特有功能。.NET Compact Framework 2.0和Windows Mobile 5開發(fā)文檔的“What’s New”部分,分別描述了這兩方面的新特性。
11、Q:請(qǐng)問如何在模擬器里面配置連接到移動(dòng)網(wǎng)絡(luò)?
A:模擬器如果需要連接移動(dòng)網(wǎng)絡(luò)的話,必須有專門的硬件提供支持。可以在開發(fā)PC的串口上連一個(gè)GPRS的模擬器,SDK文檔中對(duì)此有專門的說明。
12、Q:SQL CE可以像Pocket Access那樣僅使用一個(gè)文件就能運(yùn)行么?是否需要像PC上那樣安個(gè)服務(wù)器才能使用?
A:不會(huì)的,只需要在Windows Mobile上安裝SQL Server CE的支持庫,也就是就是一些DLL文件。而SQL Server CE的庫文件是一個(gè)單獨(dú)的文件,不需要安裝一個(gè)服務(wù)器。
13、Q:開發(fā)好的程序通過什么方式部署到手機(jī)上?對(duì)手機(jī)有什么要求?
A:開發(fā)的程序需要打包成cab文件部署到手機(jī)上。除了通過ActiveSync安裝外,還可以通過網(wǎng)絡(luò)下載、存儲(chǔ)卡運(yùn)行等方式來安裝應(yīng)用程序。對(duì)手機(jī)的要求是,必須和開發(fā)程序的目標(biāo)平臺(tái)相兼容。比如為Windows Mobile 5開發(fā)的應(yīng)用程序,可能就沒辦法很好地運(yùn)行在Windows Mobile2003平臺(tái)上。
14、Q:在模擬器上面開發(fā)程序,和真實(shí)環(huán)境有區(qū)別么?需要注意一些什么?
A:模擬器的仿真度十分高,Windows Mobile 5的模擬器甚至可以支持ARM指令,所以基本不會(huì)遇到兼容性的問題。但是對(duì)于一些需要連接外部設(shè)備的應(yīng)用場景,比如前邊說的無線網(wǎng)絡(luò),還有GPS設(shè)備等,就需要用到實(shí)際設(shè)備了。
15、Q:當(dāng)開發(fā)國際化應(yīng)用程序時(shí),應(yīng)該特別注意哪些方面?
A:對(duì)于國際化的應(yīng)用程序,.NET本身就已經(jīng)提供了非常好的支持。可以把用戶界面的文字保存在相應(yīng)的資源文件中,然后由應(yīng)用程序判斷操作系統(tǒng)的語言版本來調(diào)用相應(yīng)的文字。
16、Q:用.NET開發(fā)Pocket PC程序需要考慮設(shè)備具體使用的是哪種CPU嗎?
A:不必。無論是在虛擬機(jī)上的x86指令集,還是實(shí)際設(shè)備上的ARM指令集,對(duì).NET Compact Framework程序的運(yùn)行來說都一樣。
17、Q:Windows Mobile 5 是否支持通過語音控制新的開發(fā)程序?
A:現(xiàn)在還不支持。
18、Q:可以在vwd2005 bata2中開發(fā)Pocket PC程序嗎?Pocket PC是否具有瀏覽器?
A:可以,Pocket PC平臺(tái)是內(nèi)置瀏覽器的。
19、Q:Visual Studio 2005的Mobile開發(fā),支持Mobile 2003的設(shè)備嗎?
A:支持,VS 2005本身就自帶Windows Mobile 2003的SDK。
20、Q:Windows Mobile 5.0 for Smartphone較之前的版本有何明顯的區(qū)別?對(duì)于測(cè)試這一領(lǐng)域,我們需要注意些什么?
A:Windows Mobile 5的Smartphone平臺(tái)更多的變化是在API層面,比如對(duì)數(shù)據(jù)庫的支持、對(duì)GPS API的支持等, Windows Mobile 5 SDK文檔中對(duì)此有詳細(xì)地說明。
21、Q:對(duì)開發(fā)來說CDMA和GPRS的數(shù)據(jù)傳輸是透明的嗎?
A:對(duì)于軟件開發(fā)來說數(shù)據(jù)傳輸是透明的,CDMA和GPRS對(duì)于上層應(yīng)用程序來說,只要支持HTTP協(xié)議或者TCP/IP協(xié)議就可以進(jìn)行數(shù)據(jù)傳輸?shù)牟僮鳌?nbsp;
22、Q:Visual Studio .NET能否支持Nokia的S60系列系統(tǒng)開發(fā)?
A:可以,Visual C++能支持Nokia S60的開發(fā)。
23、Q:Pocket PC與Mobile開發(fā)的主要區(qū)別在哪里?
A:Window Mobile是微軟公司基于Windows CE.NET的一個(gè)平臺(tái)。它包含Pocket PC和Smartphone兩個(gè)版本。
24、Q:SDE從哪里可以下載?Pocket PC 2005的模擬器可以從哪里下載?
A:SDE是早期用來開發(fā)移動(dòng)設(shè)備程序的VS擴(kuò)展,目前網(wǎng)上似乎很難找到。其實(shí)不用安裝它,安裝所需版本的Pocket PC或者Smartphone的SDK即可。各個(gè)版本的Windows Mobile開發(fā)的SDK和模擬器的地址可以從這篇Blog上下載(http://twodays.cnblogs.com/archive/2005/06/30/184107.htm)。
25、Q:.NET Compact Framework 2.0能裝在Windows Mobile 2003上嗎?
A:可以。.NET Compact Framework 2.0必須手動(dòng)安裝到Windows Mobile 2003的機(jī)器上。
26、Q:請(qǐng)問有沒有好的Windows Mobile編程的網(wǎng)站或者論壇?
A:OpenNETCF.org、www.devbuzz.com、www.codeproject.com、www.msdn.com/mobility/、www.pocketpcdn.com
27、Q:Windows Mobile 2003上的.NET Compact Framework能升級(jí)到.NET Compact Framework 2.0嗎?
A:可以。.NET Compact Framework 2.0必須手動(dòng)安裝到Windows Mobile 2003的機(jī)器上。
28、Q:請(qǐng)問編寫WML文件與使用.NET Compact Framework進(jìn)行開發(fā)有什么聯(lián)系和區(qū)別?
A:WML是能夠利用WAP瀏覽器進(jìn)行瀏覽的文件,是一種基于Web的開發(fā)方式。.NET Compact Framework是在設(shè)備上運(yùn)行的程序,是基于應(yīng)用的開發(fā)方式。
29、Q:在使用.NET Compact Framework 1.0進(jìn)行開發(fā)時(shí),用EVC直接調(diào)用Native代碼與使用C#通過P/Invoke在性能上有什么差別?在.NET Compact Framework 2.0上,用C++直接調(diào)用和用C#通過P/Invoke又如何呢?
A:用EVC調(diào)用Native API的效率,會(huì)比使用.NET Compact Framework通過P/Invoke調(diào)用Native API要高,這是.NET Compact Framework本身的特性。在從托管代碼中調(diào)用Native API時(shí),其內(nèi)部會(huì)進(jìn)行一些額外的類型轉(zhuǎn)換動(dòng)作,這會(huì)導(dǎo)致效率的降低。
30、Q:有沒有支持顯示HTML文本的控件?
A:WebBrowser控件可以用于HTML文本。
31、Q:CAB安裝后會(huì)在Pocket PC上自動(dòng)生成“卸載程序”,如何制作安裝包,才能不自動(dòng)產(chǎn)生“卸載程序”?
A:利用VS 2005建立Smart Device Cab Project,在Solution Explorer的Cab Project上點(diǎn)擊鼠標(biāo)右鍵選擇Property,即可看到有一個(gè)選項(xiàng)為NoUninstall,默認(rèn)為False,改為True就可以了。
32、Q:OpenNETCF能運(yùn)行在.NET Framework 1.1環(huán)境下嗎?其中的控件可以與.NET Framework 1.1控件混合使用嗎?怎樣在Visual Studio .NET 2003中加入OpenNETCF控件?
A:當(dāng)初在設(shè)計(jì)NET Compact Framework 1.0/1.1時(shí),由于考慮到移動(dòng)設(shè)備的資源有限,所以有些原本.NET Framework 1.1中已經(jīng)提供的類和控件就被刪除了,OpenNETCF Smart Device Framework主要是針對(duì).NET Compact Framework 1.0/1.1中沒有的功能,開發(fā)出來的類似的類型和額外的功能,以彌補(bǔ).NET Compact Framework 1.0/1.1不足之處。這套Framework主要是供.NET Compact Framework程序開發(fā)所用,除了少部份針對(duì)PC與Pocket PC的同步功能所編寫的類之外,大部分都是在.NET Compact Framework上執(zhí)行的,一般不支持.NET Framework。OpenNETCF的Smart Device Framework安裝完畢之后,可以在VS 2003左側(cè)的工具箱中看到OpenNETCF的控件,可以直接拖放來使用。