1、Q:新建項目的時候選擇哪個項目類型才能創建智能設備的應用程序?
A:在Visual Studio的新建項目對話框中選擇Visual C#或者Visual Basic項目類型,選擇智能設備模板,然后再選擇相應的設備SDK,最后選擇“Device Application”,就可以創建一個移動設備的應用程序了。
2、Q:托管代碼與本地代碼有哪些區別?
A:托管代碼是指使用.NET Compact Framework開發的程序代碼,可執行文件被編譯成IL,執行時需要有.NET的運行時環境。而本地代碼指用C 等語言開發的程序代碼,可執行文件被編譯成與CPU指令集有關的機器碼,可以直接運行。
3、Q:能不能簡要介紹一下Magneto里面對OTA和MMS的支持?
A:Magneto對OTA有很好的支持,SDK文檔的通訊部分中,有針對OTA的專門介紹。MMS的應用程序基本都是由第三方開發的,因為MMS是基于WAP協議的,而Magneto本身對WAP的支持也很好,具體的協議也可以在SDK文檔里找到。
4、Q:請問用Visual Basic .NET開發PDA數據庫程序能不能使用ADO.NET?
A:Visual Basic .NET開發PDA數據庫不需要引用System.data.oledb,只需要引用System.Data.SqlServerCe命名空間就可以了。 該命名空間中的數據庫操作類和ADO.NET是基本一致的。可以用它們來開發針對SQL Server CE的應用程序。
eveloper獲得。
5、Q:使用.Net開發的智能設備程序是否比用C語言開發的程序效率低很多?
A:使用.NET開發的程序會比使用C語言開發的本地程序要慢一些,不過對于一般的應用軟件來說,下率不會差太多,除非是需要實時處理硬件或 I/O的程序,必須要使用C語言進行開發之外,一般的應用程序用.NET Compact Framework開發即可,因為這樣可以獲得最好的靈活性和可移植性。
6、Q:用托管C 開發的應用程序執行效率會不會比用C#開發的應用程序高?
A:不會。由於托管C 與C#源代碼在經過編譯之后,都將成為IL代碼,由.NET Compact Framework來執行,因此在效率上不會有差別。
7、Q:請問.NET Compact Framework 2.0對于使用不同CPU的移動設備支持好嗎?.NET Compact Framework 2.0在GSM應用方面有沒有增強?
A:.NET Compact Framework具有Windows Mobile跨平臺的特性,因此開發時不需要考慮底層的OS、CPU和其它硬件因素。目前.NET Compact Framework對常見的CPU都能夠支持,例如ARM、MIPS、SH、x86等。另外在GSM應用方面,主要針對Smartphone的應用作了加 強。
8、Q:請問MFC在Windows Mobile Development中處于什么地位?Douglas Boling寫的Programming Microsoft Windows CE .NET一書中好像并不推崇使用MFC開發Windows Mobile應用程序。
A:MFC還是以本地C 的方式進行開發,其特點是執行效率高,但必須花費更多的心思在資源分配、回收等編程技巧上。如果使用.NET Compact Framework進行開發,雖然執行效率比本地程序略差,但整體而言,可移植性與靈活性都較好,而且不必為回收資源擔心,開發者能夠專注于真正重要的業 務邏輯流程。
9、Q:.NET Compact Framework 2.0與1.0有什么區別?
A:.NET Compact Framework 2.0主要針對1.0原有的控件及類庫進行了改善,提供了更多的支持,并新增了許多類型和控件,.NET Compact Framework 2.0更加接近.NET Framework,同時在效率上也相對1.0有所提升。
10、Q:在制作安裝程序的時候,如何在start->program菜單中生成程序的快捷方式?
A:在VS 2005中建立Smart Device Cab Project,在File System頁面中,可以看到Application Folder,這就是Start->Program的位置,可以先建立Primary Output的快捷方式,然后將此快捷方式移到Programs Folder,并構建Cab文件即可。
11、Q:移動設備與WEB網頁設計有什么主要區別?
A:Visual Studio開發環境中移動設備與Web設計是非常類似的 ,可以使用同樣的語言進行設計, 不同的只是能夠使用的類以及控件有所區別。
12、Q:.NET Compact Framework中可以實現鼠標的雙擊、右擊、中間鍵單擊等用戶事件嗎?
A:運行Windows Mobile的設備沒有鼠標,所以這些事件也不存在。對于常用的右鍵彈出上下文相關菜單,在觸摸屏上一般用單擊并且按住一段時間來實現。
13、Q:Mobile應用程序的界面處理可以使用CSS樣式表嗎?
A:不可以。
14、Q:Smartphone上面能夠支持橫屏幕嗎?
A:不支持。
15、Q:如何在Pocket PC中調整控件的位置使得應用程序可以支持橫向屏幕?
A:可通過設置控件的Anchor和Dock屬性來自適應屏幕。
16、Q:用.NET開發Pocket PC程序需要考慮設備具體使用的是哪種CPU嗎?
A:不必。無論是在虛擬機上的x86指令集,還是實際設備上的ARM指令集,對.NET Compact Framework程序的運行來說都一樣。
17、Q:Windows Mobile 5 是否支持通過語音控制新的開發程序?
A:現在還不支持。
18、Q:可以在vwd2005 bata2中開發Pocket PC程序嗎?Pocket PC是否具有瀏覽器?
A:可以,Pocket PC平臺是內置瀏覽器的。
19、Q:Visual Studio 2005的Mobile開發,支持Mobile 2003的設備嗎?
A:支持,VS 2005本身就自帶Windows Mobile 2003的SDK。
20、Q:Windows Mobile 5.0 for Smartphone較之前的版本有何明顯的區別?對于測試這一領域,我們需要注意些什么?
A:Windows Mobile 5的Smartphone平臺更多的變化是在API層面,比如對數據庫的支持、對GPS API的支持等, Windows Mobile 5 SDK文檔中對此有詳細地說明。
21、Q:對開發來說CDMA和GPRS的數據傳輸是透明的嗎?
A:對于軟件開發來說數據傳輸是透明的,CDMA和GPRS對于上層應用程序來說,只要支持HTTP協議或者TCP/IP協議就可以進行數據傳輸的操作。
22、Q:Visual Studio .NET能否支持Nokia的S60系列系統開發?
A:可以,Visual C 能支持Nokia S60的開發。
23、Q:Pocket PC與Mobile開發的主要區別在哪里?
A:Window Mobile是微軟公司基于Windows CE.NET的一個平臺。它包含Pocket PC和Smartphone兩個版本。
24、Q:SDE從哪里可以下載?Pocket PC 2005的模擬器可以從哪里下載?
A:SDE是早期用來開發移動設備程序的VS擴展,目前網上似乎很難找到。其實不用安裝它,安裝所需版本的Pocket PC或者Smartphone的SDK即可。各個版本的Windows Mobile開發的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必須手動安裝到Windows Mobile 2003的機器上。
26、Q:請問有沒有好的Windows Mobile編程的網站或者論壇?
A:OpenNETCF.org、、
www.ojct.com27、Q:Windows Mobile 2003上的.NET Compact Framework能升級到.NET Compact Framework 2.0嗎?
A:可以。.NET Compact Framework 2.0必須手動安裝到Windows Mobile 2003的機器上。
28、Q:請問編寫WML文件與使用.NET Compact Framework進行開發有什么聯系和區別?
A:WML是能夠利用WAP瀏覽器進行瀏覽的文件,是一種基于Web的開發方式。.NET Compact Framework是在設備上運行的程序,是基于應用的開發方式。
29、Q:在使用.NET Compact Framework 1.0進行開發時,用EVC直接調用Native代碼與使用C#通過P/Invoke在性能上有什么差別?在.NET Compact Framework 2.0上,用C 直接調用和用C#通過P/Invoke又如何呢?
A:用EVC調用Native API的效率,會比使用.NET Compact Framework通過P/Invoke調用Native API要高,這是.NET Compact Framework本身的特性。在從托管代碼中調用Native API時,其內部會進行一些額外的類型轉換動作,這會導致效率的降低。
30、Q:有沒有支持顯示HTML文本的控件?
A:WebBrowser控件可以用于HTML文本。
31、Q:CAB安裝后會在Pocket PC上自動生成“卸載程序”,如何制作安裝包,才能不自動產生“卸載程序”?
A:利用VS 2005建立Smart Device Cab Project,在Solution Explorer的Cab Project上點擊鼠標右鍵選擇Property,即可看到有一個選項為NoUninstall,默認為False,改為True就可以了。
32、Q:OpenNETCF能運行在.NET Framework 1.1環境下嗎?其中的控件可以與.NET Framework 1.1控件混合使用嗎?怎樣在Visual Studio .NET 2003中加入OpenNETCF控件?
A:當初在設計NET Compact Framework 1.0/1.1時,由于考慮到移動設備的資源有限,所以有些原本.NET Framework 1.1中已經提供的類和控件就被刪除了,OpenNETCF Smart Device Framework主要是針對.NET Compact Framework 1.0/1.1中沒有的功能,開發出來的類似的類型和額外的功能,以彌補.NET Compact Framework 1.0/1.1不足之處。這套Framework主要是供.NET Compact Framework程序開發所用,除了少部份針對PC與Pocket PC的同步功能所編寫的類之外,大部分都是在.NET Compact Framework上執行的,一般不支持.NET Framework。OpenNETCF的Smart Device Framework安裝完畢之后,可以在VS 2003左側的工具箱中看到OpenNETCF的控件,可以直接拖放來使用。
1、Q:請問如何才能保證應用程序能夠及時地釋放系統資源?
A:由于.NET Compact Framework所運行的移動設備,受限于CPU、內存、電源,因此其中的Garbage Collection時經過調整的,垃圾回收的速度比.NET Framework更快。通過調用Dispose()方法,可以立即釋放掉對象所占用的非托管資源。
2、Q:在Visual Studio中可以定義一個所有文件都可以使用的宏嗎?比如:#define AA,要求在所有的.cs文件中都可以使用#if AA public class A() #else public class B();
A:可以。在VS 2005的解決方案資源管理器中,用鼠標右鍵單擊項目,選擇其屬性。在屬性對話框的Build頁中,可以找到conditional compilation symbol,在其中輸入AA,即可在該項目的所有C#源代碼文件中使用這個符號。
3、Q:可以將Smartphone應用程序轉換為Pocket PC應用程序嗎?
A:可以。在.NET Compact Framework 2.0中,只要您沒有用到某些特殊的API,Pocket PC應用程序與Smartphone程序是可以互相轉換的,只需要在控件上做些調整即可。
4、Q:.Net Framework 2.0有沒有對Media coder/decoder的支持?開發第三方的媒體播放程序可以不依賴.Net CF2.0嗎?
A:.NET Compact Framework 2.0本身可以開發Direct3D Mobile的應用程序。也可以在VS 2005中以C 開發Native Code的媒體播放程序,而無須依賴.NET Compact Framework 2.0。
5、Q:使用.Net開發的智能設備程序是否比用C語言開發的程序效率低很多?
A:使用.NET開發的程序會比使用C語言開發的本地程序要慢一些,不過對于一般的應用軟件來說,下率不會差太多,除非是需要實時處理硬件或 I/O的程序,必須要使用C語言進行開發之外,一般的應用程序用.NET Compact Framework開發即可,因為這樣可以獲得最好的靈活性和可移植性。
6、Q:用托管C 開發的應用程序執行效率會不會比用C#開發的應用程序高?
A:不會。由於托管C 與C#源代碼在經過編譯之后,都將成為IL代碼,由.NET Compact Framework來執行,因此在效率上不會有差別。
7、Q:請問.NET Compact Framework 2.0對于使用不同CPU的移動設備支持好嗎?.NET Compact Framework 2.0在GSM應用方面有沒有增強?
A:.NET Compact Framework具有Windows Mobile跨平臺的特性,因此開發時不需要考慮底層的OS、CPU和其它硬件因素。目前.NET Compact Framework對常見的CPU都能夠支持,例如ARM、MIPS、SH、x86等。另外在GSM應用方面,主要針對Smartphone的應用作了加 強。
8、Q:請問MFC在Windows Mobile Development中處于什么地位?Douglas Boling寫的Programming Microsoft Windows CE .NET一書中好像并不推崇使用MFC開發Windows Mobile應用程序。
A:MFC還是以本地C 的方式進行開發,其特點是執行效率高,但必須花費更多的心思在資源分配、回收等編程技巧上。如果使用.NET Compact Framework進行開發,雖然執行效率比本地程序略差,但整體而言,可移植性與靈活性都較好,而且不必為回收資源擔心,開發者能夠專注于真正重要的業 務邏輯流程。
9、Q:.NET Compact Framework 2.0與1.0有什么區別?
A:.NET Compact Framework 2.0主要針對1.0原有的控件及類庫進行了改善,提供了更多的支持,并新增了許多類型和控件,.NET Compact Framework 2.0更加接近.NET Framework,同時在效率上也相對1.0有所提升。
10、Q:在制作安裝程序的時候,如何在start->program菜單中生成程序的快捷方式?
A:在VS 2005中建立Smart Device Cab Project,在File System頁面中,可以看到Application Folder,這就是Start->Program的位置,可以先建立Primary Output的快捷方式,然后將此快捷方式移到Programs Folder,并構建Cab文件即可。
11、Q:移動設備與WEB網頁設計有什么主要區別?
A:Visual Studio開發環境中移動設備與Web設計是非常類似的 ,可以使用同樣的語言進行設計, 不同的只是能夠使用的類以及控件有所區別。
12、Q:.NET Compact Framework中可以實現鼠標的雙擊、右擊、中間鍵單擊等用戶事件嗎?
A:運行Windows Mobile的設備沒有鼠標,所以這些事件也不存在。對于常用的右鍵彈出上下文相關菜單,在觸摸屏上一般用單擊并且按住一段時間來實現。
13、Q:Mobile應用程序的界面處理可以使用CSS樣式表嗎?
A:不可以。
14、Q:Smartphone上面能夠支持橫屏幕嗎?
A:不支持。
15、Q:如何在Pocket PC中調整控件的位置使得應用程序可以支持橫向屏幕?
A:可通過設置控件的Anchor和Dock屬性來自適應屏幕。
16、Q:界面開發完成后,在移植方面需要注意些什么?
A:一般來說,要移植到不同平臺上必需要重新設計用戶界面;可以重用的只是業務邏輯,不是用戶界面。
17、Q:我在移動開發過程中用到了很多控件,難以在一頁之內顯示,如何為它們添加一個滾動條?
A:可以將這些控件放到一個Panel中,并設置其AutoScroll屬性為true即可;如果使用VS2005,拖拽數據源到窗體上時,會自動將所有控件包括在一個Panel里。
18、Q:TableAdapter在.NET Compact Framework 1.0中從未出現過,是新特性嗎?
A:是的,TableAdapter是.NET Compact Framework 2.0中新增加的。
19、Q:SQL Mobile帶有像SQL Server那樣企業管理器嗎?Visual Studio 2005支持在桌面上直接查看SQL Mobile的數據庫嗎?
A:您可以通過SQL Server 2005的企業管理器連接到SQL Mobile數據庫進行編輯。Visual Studio 2005也支持在桌面上創建或修改SQL Mobile數據庫文件。
20、Q:提交成功后如何取消保存?
A:目前BindingSource尚不支持事務,因此提交成功后是沒有辦法再undo的
21、Q:移動設備內存較小,填充DataSet是否有大小限制?
A:DataSet在邏輯上并沒有對大小的限制。但是DataSet的大小必須小于當前前的可用內存,否則會有內存分配不成功的異常出現。
22、Q:如果數據源中的數據在顯示前需要處理(例如格式轉換),可以使用DataBinging嗎?
A:BindingSource是直接將DataSet與控件進行關聯,所以如果需要進行其他操作的話,就不能使用 BindingSource。或者,可以在訪問數據庫后,先在DataSet里對需要轉換的數據進行必要的處理之后,再進行顯示。
23、Q:DataSet實際上在內存中產生了一套數據副本,如何解決版本控制的問題?
A:DataSet本身不存在版本控制的問題。在把數據提交回SQL Mobile的時候,的確需要有一些機制來保證修改完成的數據應該是最新的,但是DataSet本身的數據結構是不會發生變化的。
24、Q:能否通過Pocket PC上的程序更新服務器上的數據庫信息?
A:可以。可以使用SQL Mobile中的RDA或者是合并復制的方法和遠程SQL Server數據庫進行數據同步或更新。具體的實現可以參考SQL Server相關部分的文檔。
25、Q:SQL Mobile一定要要安裝在移動設備上嗎?
A:是的。SQL Mobile需要安裝在Windows Mobile或者Windows CE設備上。
26、Q:SQL Moble支持存儲過程嗎?
A:目前還不支持。
27、Q:SQL Mobile必須和應用程序部署在同一臺設備上嗎?可否遠程連接?它是否是一個文本數據庫?
A:是的。SQL Mobile必須和應用程序部署在同一個設備上,現在還不支持遠程連接。SQL Mobile是一個文件數據庫,但不是一個文本數據庫。
28、Q:能不能在一些應用中以XML替代SQL的作用?
A:可以的。XML的查詢效率比SQL Mobile要低,但是在數據比較少的情況下不需要安裝更多的組件,這是XML的一個優勢。
29、Q: Tableadapter與DataAdapter之間有何區別?DataAdapter是多個TableAdapter的組合嗎?
A:不是的,TableAdapter是對DataAdapter的一個擴展,TableAdapter本身包括了對應數據表的信息。 TableAdapter完成從數據庫連接、執行SQL語句到將結果填充到DataSet中的一個完整操作,而DataAdapter只支持數據填充的操 作。
30、Q:做了SQL Moblie的sdf文件后,Publications后的數據庫表中會出現msrepl_tran_version或rowguid字段,這是為什么?
A:這兩個字段是為了保證數據同步,由系統自動添加的,請不要進行修改。
31、Q:網上出了個Reflector反編譯工具,可以99%反編譯用C#開發的EXE和DLL,怎么才能更好地保護應用程序?
A:目前大部分應用程序采用混淆和對關鍵字符串加密的方式,更好的方式可能還要繼續探討。
1、Q:SQL Mobile的SQL語法和SQL Server的語法有差異么?
A:SQL Mobile的語法和SQL Server的語法略有差異,可以從SQL Mobile的文檔中查找SQL Mobile具體支持哪些SQL語句?偟膩碚f,對絕大部分的開發來說,這些差異不會造成影響。
2、Q:SQL Mobile支持B/S模式嗎?
A:不支持。
3、Q:可以在.NET Compact Framework 1.0上訪問由.NET Compact Framework 2.0產生的數據庫嗎?
A:SQL Mobile數據庫的格式和SQL Server CE 2.0是相同的,因此可以直接在.NET Compact Framework 1.0中進行訪問。
4、Q:SQL Mobile數據庫文件支持XCOPY嗎?可以簡單地復制到其他Windows Mobile設備上嗎?
A:是的。SQL Mobile數據庫本身是一個文件數據庫,直接復制到其他安裝了SQL Mobile支持組件的Windows Mobile設備或模擬器上就可以使用了。
5、Q:Visual Studio .NET 2003是否支持Windows Mobile 5.0的開發?
A:不可以,如果開發基于Windows Mobile 5.0的應用程序請使用Visual Studio 2005。
6、Q:要想從傳統的PC程序員轉向到移動設備的開發上來,需要在技術上作哪些準備?
A:移動設備的開發對于基礎開發語言和開發技術的要求與PC上是相同的,只需要了解移動設備在哪些方面與PC平臺有所不同即可。
7、Q:C#可以開發Windows Moblie應用程序嗎?
A:可以。
8、Q:如果獲取.NET Compact Framework 2.0的安裝程序并將其安裝到Windows Mobile 5.0設備中?
A:Visual Studio 2005提供了.NET Compact Framework 2.0安裝程序,在開發部署時會自動部署到移動設備上。
9、Q:Windows Mobile 5.0中沒有集成.NET Compact Framework 2.0,是不是生成的應用程序安裝包就應該帶上.NET Compact Framework 2.0?
A:技術上來說是的。但能否在應用程序中提供.NET Compact Framework 2.0取決于微軟對此的授權情況。