WindowsMobile开发常见问题集(转载)
1、Q:新建项目的时候选择哪个项目类型才能创建智能设备的应用程序?
A:在VisualStudio的新建项目对话框中选择VisualC#或者VisualBasic项目类型,选择智能设备模板,然后再选择相应的设备SDK,最后选择“DeviceApplication”,就可以创建一个移动设备的应用程序了。
2、Q:托管代码与本地代码有哪些区别?
A:托管代码是指使用.NETCompactFramework开发的程序代码,可执行文件被编译成IL,执行时需要有.NET的运行时环境。而本地代码指用C++等语言开发的程序代码,可执行文件被编译成与CPU指令集有关的机器码,可以直接运行。
3、Q:能不能简要介绍一下Magneto里面对OTA和MMS的支持?
A:Magneto对OTA有很好的支持,SDK文档的通讯部分中,有针对OTA的专门介绍。MMS的应用程序基本都是由第三方开发的,因为MMS是基于WAP协议的,而Magneto本身对WAP的支持也很好,具体的协议也可以在SDK文档里找到。
4、Q:请问用VisualBasic.NET开发PDA数据库程序能不能使用ADO.NET?
A:VisualBasic.NET开发PDA数据库不需要引用System.data.oledb,只需要引用System.Data.SqlServerCe命名空间就可以了。该命名空间中的数据库操作类和ADO.NET是基本一致的。可以用它们来开发针对SQLServerCE的应用程序。
5、Q:在VisualC++2005中,可以使用.NetCompactFramework吗?
A:不能,现在.NETCompactFramework只支持C#和VB.NET,而不支持C++/CLI。但是在VS.NET2005中可以用C++来开发Native代码来支持移动设备。
6、Q:从什么地方可以得到Smartphone开发环境?
A:Smartphone的SDK可以在微软网站上找到,而VisualStudio2005Beta2可以通过参加微软活动的方式获得。MEDC2005的参加者都获得了VS.NET2005和WindowsMobile5SDK的开发光盘。
7、Q:托管性的代码执行效率怎么样?和使用VisualC++编写的代码相比较。
A:托管代码的执行效率肯定不如本地代码高,但是托管代码也有一些好处是无法取代的。
8、Q:是否可以使用VisualStudio.NET2003来开发能够运行在WindowsMobile2005上的应用程序?
A:首先更正一下,WindowsMobile最新一代的操作系统叫做WindowsMobile5,而不是WindowsMobile2005。是的,使用VS.NET2003开发的应用程序是可以在WindowsMobile5上正常运行的,因为WindowsMobile5ROM中内置了.NETCompactFramewrok1.0SP3。
9、Q:PDA上不能用PocketAccess么?SQLCE太大了。
A:可以使用PocketAccess来开发WindowsMobile上的应用程序。可以采用C++调用OLEDB或者ADOCE的方式来访问PocketAccess数据库。
10、Q:VisualStudio2005的新功能是否只在WindowsMobile5里受到支持,2003是否支持?
A:新功能分两个部分,一部分是.NETCompactFramework2.0中提供的的新功能,这部分的功能可以被WindowsMobile2003支持,但必须安装.NETCompactFramework2.0;而另一部分是WindowsMobile5的特有功能。.NETCompactFramework2.0和WindowsMobile5开发文档的“What’sNew”部分,分别描述了这两方面的新特性。
11、Q:请问如何在模拟器里面配置连接到移动网络?
A:模拟器如果需要连接移动网络的话,必须有专门的硬件提供支持。可以在开发PC的串口上连一个GPRS的模拟器,SDK文档中对此有专门的说明。
12、Q:SQLCE可以像PocketAccess那样仅使用一个文件就能运行么?是否需要像PC上那样安个服务器才能使用?
A:不会的,只需要在WindowsMobile上安装SQLServerCE的支持库,也就是就是一些DLL文件。而SQLServerCE的库文件是一个单独的文件,不需要安装一个服务器。
13、Q:开发好的程序通过什么方式部署到手机上?对手机有什么要求?
A:开发的程序需要打包成cab文件部署到手机上。除了通过ActiveSync安装外,还可以通过网络下载、存储卡运行等方式来安装应用程序。对手机的要求是,必须和开发程序的目标平台相兼容。比如为WindowsMobile5开发的应用程序,可能就没办法很好地运行在WindowsMobile2003平台上。
14、Q:在模拟器上面开发程序,和真实环境有区别么?需要注意一些什么?
A:模拟器的仿真度十分高,WindowsMobile5的模拟器甚至可以支持ARM指令,所以基本不会遇到兼容性的问题。但是对于一些需要连接外部设备的应用场景,比如前边说的无线网络,还有GPS设备等,就需要用到实际设备了。
15、Q:当开发国际化应用程序时,应该特别注意哪些方面?
A:对于国际化的应用程序,.NET本身就已经提供了非常好的支持。可以把用户界面的文字保存在相应的资源文件中,然后由应用程序判断操作系统的语言版本来调用相应的文字。
16、Q:用.NET开发PocketPC程序需要考虑设备具体使用的是哪种CPU吗?
A:不必。无论是在虚拟机上的x86指令集,还是实际设备上的ARM指令集,对.NETCompactFramework程序的运行来说都一样。
17、Q:WindowsMobile5是否支持通过语音控制新的开发程序?
A:现在还不支持。
18、Q:可以在vwd2005bata2中开发PocketPC程序吗?PocketPC是否具有浏览器?
A:可以,PocketPC平台是内置浏览器的。
19、Q:VisualStudio2005的Mobile开发,支持Mobile2003的设备吗?
A:支持,VS2005本身就自带WindowsMobile2003的SDK。
20、Q:WindowsMobile5.0forSmartphone较之前的版本有何明显的区别?对于测试这一领域,我们需要注意些什么?
A:WindowsMobile5的Smartphone平台更多的变化是在API层面,比如对数据库的支持、对GPSAPI的支持等,WindowsMobile5SDK文档中对此有详细地说明。
21、Q:对开发来说CDMA和GPRS的数据传输是透明的吗?
A:对于软件开发来说数据传输是透明的,CDMA和GPRS对于上层应用程序来说,只要支持HTTP协议或者TCP/IP协议就可以进行数据传输的操作。
22、Q:VisualStudio.NET能否支持Nokia的S60系列系统开发?
A:可以,VisualC++能支持NokiaS60的开发。
23、Q:PocketPC与Mobile开发的主要区别在哪里?
A:WindowMobile是微软公司基于WindowsCE.NET的一个平台。它包含PocketPC和Smartphone两个版本。
24、Q:SDE从哪里可以下载?PocketPC2005的模拟器可以从哪里下载?
A:SDE是早期用来开发移动设备程序的VS扩展,目前网上似乎很难找到。其实不用安装它,安装所需版本的PocketPC或者Smartphone的SDK即可。各个版本的WindowsMobile开发的SDK和模拟器的地址可以从这篇Blog上下载(http://twodays.cnblogs.com/archive/2005/06/30/184107.htm)。
25、Q:.NETCompactFramework2.0能装在WindowsMobile2003上吗?
A:可以。.NETCompactFramework2.0必须手动安裝到WindowsMobile2003的机器上。
26、Q:请问有没有好的WindowsMobile编程的网站或者论坛?
A:OpenNETCF.org、[url]www.devbuzz.com[/url]、[url]www.codeproject.com[/url]、[url]www.msdn.com/mobility/[/url]、[url]www.pocketpcdn.com[/url]
27、Q:WindowsMobile2003上的.NETCompactFramework能升级到.NETCompactFramework2.0吗?
A:可以。.NETCompactFramework2.0必须手动安裝到WindowsMobile2003的机器上。
28、Q:请问编写WML文件与使用.NETCompactFramework进行开发有什么联系和区别?
A:WML是能够利用WAP浏览器进行浏览的文件,是一种基于Web的开发方式。.NETCompactFramework是在设备上运行的程序,是基于应用的开发方式。
29、Q:在使用.NETCompactFramework1.0进行开发时,用EVC直接调用Native代码与使用C#通过P/Invoke在性能上有什么差别?在.NETCompactFramework2.0上,用C++直接调用和用C#通过P/Invoke又如何呢?
A:用EVC調用NativeAPI的效率,会比使用.NETCompactFramework通过P/Invoke调用NativeAPI要高,这是.NETCompactFramework本身的特性。在从托管代码中调用NativeAPI时,其内部会进行一些额外的类型转换动作,这会导致效率的降低。
30、Q:有没有支持显示HTML文本的控件?
A:WebBrowser控件可以用于HTML文本。
31、Q:CAB安装后会在PocketPC上自动生成“卸载程序”,如何制作安装包,才能不自动产生“卸载程序”?
A:利用VS2005建立SmartDeviceCabProject,在SolutionExplorer的CabProject上点击鼠标右键选择Property,即可看到有一个选项为NoUninstall,默认为False,改为True就可以了。
32、Q:OpenNETCF能运行在.NETFramework1.1环境下吗?其中的控件可以与.NETFramework1.1控件混合使用吗?怎样在VisualStudio.NET2003中加入OpenNETCF控件?
A:当初在设计NETCompactFramework1.0/1.1时,由于考虑到移动设备的资源有限,所以有些原本.NETFramework1.1中已经提供的类和控件就被删除了,OpenNETCFSmartDeviceFramework主要是针对.NETCompactFramework1.0/1.1中没有的功能,开发出来的类似的类型和额外的功能,以弥补.NETCompactFramework1.0/1.1不足之处。这套Framework主要是供.NETCompactFramework程序开发所用,除了少部份针对PC与PocketPC的同步功能所编写的类之外,大部分都是在.NETCompactFramework上执行的,一般不支持.NETFramework。OpenNETCF的SmartDeviceFramework安装完毕之后,可以在VS2003左侧的工具箱中看到OpenNETCF的控件,可以直接拖放来使用。
zhu1234 发表于 2008-4-7 09:34
(二)
1、Q:请问如何才能保证应用程序能够及时地释放系统资源?
A:由于.NETCompactFramework所运行的移动设备,受限于CPU、内存、电源,因此其中的GarbageCollection时经过调整的,垃圾回收的速度比.NETFramework更快。通过调用Dispose()方法,可以立即释放掉对象所占用的非托管资源。
2、Q:在VisualStudio中可以定义一个所有文件都可以使用的宏吗?比如:#defineAA,要求在所有的.cs文件中都可以使用#ifAApublicclassA()#elsepublicclassB();
A:可以。在VS2005的解决方案资源管理器中,用鼠标右键单击项目,选择其属性。在属性对话框的Build页中,可以找到conditionalcompilationsymbol,在其中输入AA,即可在该项目的所有C#源代码文件中使用这个符号。
3、Q:可以将Smartphone应用程序转换为PocketPC应用程序吗?
A:可以。在.NETCompactFramework2.0中,只要您没有用到某些特殊的API,PocketPC应用程序与Smartphone程序是可以互相转换的,只需要在控件上做些调整即可。
4、Q:.NetFramework2.0有没有对Mediacoder/decoder的支持?开发第三方的媒体播放程序可以不依赖.NetCF2.0吗?
A:.NETCompactFramework2.0本身可以开发Direct3DMobile的应用程序。也可以在VS2005中以C++开发NativeCode的媒体播放程序,而无须依赖.NETCompactFramework2.0。
5、Q:使用.Net开发的智能设备程序是否比用C语言开发的程序效率低很多?
A:使用.NET开发的程序会比使用C语言开发的本地程序要慢一些,不过对于一般的应用软件来说,下率不会差太多,除非是需要实时处理硬件或I/O的程序,必须要使用C语言进行开发之外,一般的应用程序用.NETCompactFramework开发即可,因为这样可以获得最好的灵活性和可移植性。
6、Q:用托管C++开发的应用程序执行效率会不会比用C#开发的应用程序高?
A:不会。由於托管C++与C#源代码在经过编译之后,都将成为IL代码,由.NETCompactFramework来执行,因此在效率上不会有差别。
7、Q:请问.NETCompactFramework2.0对于使用不同CPU的移动设备支持好吗?.NETCompactFramework2.0在GSM应用方面有没有增强?
A:.NETCompactFramework具有WindowsMobile跨平台的特性,因此开发时不需要考虑底层的OS、CPU和其它硬件因素。目前.NETCompactFramework对常见的CPU都能够支持,例如ARM、MIPS、SH、x86等。另外在GSM应用方面,主要针对Smartphone的应用作了加强。
8、Q:请问MFC在WindowsMobileDevelopment中处于什么地位?DouglasBoling写的ProgrammingMicrosoftWindowsCE.NET一书中好像并不推崇使用MFC开发WindowsMobile应用程序。
A:MFC还是以本地C++的方式进行开发,其特点是执行效率高,但必须花费更多的心思在資源分配、回收等编程技巧上。如果使用.NETCompactFramework进行开发,虽然执行效率比本地程序略差,但整体而言,可移植性与灵活性都较好,而且不必为回收资源担心,开发者能够专注于真正重要的业务逻辑流程。
9、Q:.NETCompactFramework2.0与1.0有什么区别?
A:.NETCompactFramework2.0主要针对1.0原有的控件及类库进行了改善,提供了更多的支持,并新增了许多类型和控件,.NETCompactFramework2.0更加接近.NETFramework,同时在效率上也相对1.0有所提升。
10、Q:在制作安装程序的时候,如何在start->program菜单中生成程序的快捷方式?
A:在VS2005中建立SmartDeviceCabProject,在FileSystem页面中,可以看到ApplicationFolder,这就是Start->Program的位置,可以先建立PrimaryOutput的快捷方式,然后将此快捷方式移到ProgramsFolder,并构建Cab文件即可。
11、Q:移动设备与WEB网页设计有什么主要区别?
A:VisualStudio开发环境中移动设备与Web设计是非常类似的,可以使用同样的语言进行设计,不同的只是能够使用的类以及控件有所区别。
12、Q:.NETCompactFramework中可以实现鼠标的双击、右击、中间键单击等用户事件吗?
A:运行WindowsMobile的设备没有鼠标,所以这些事件也不存在。对于常用的右键弹出上下文相关菜单,在触摸屏上一般用单击并且按住一段时间来实现。
13、Q:Mobile应用程序的界面处理可以使用CSS样式表吗?
A:不可以。
14、Q:Smartphone上面能够支持横屏幕吗?
A:不支持。
15、Q:如何在PocketPC中调整控件的位置使得应用程序可以支持横向屏幕?
A:可通过设置控件的Anchor和Dock属性来自适应屏幕。
16、Q:界面开发完成后,在移植方面需要注意些什么?
A:一般来说,要移植到不同平台上必需要重新设计用户界面;可以重用的只是业务逻辑,不是用户界面。
17、Q:我在移动开发过程中用到了很多控件,难以在一页之内显示,如何为它们添加一个滚动条?
A:可以将这些控件放到一个Panel中,并设置其AutoScroll属性为true即可;如果使用VS2005,拖拽数据源到窗体上时,会自动将所有控件包括在一个Panel里。
18、Q:TableAdapter在.NETCompactFramework1.0中从未出现过,是新特性吗?
A:是的,TableAdapter是.NETCompactFramework2.0中新增加的。
19、Q:SQLMobile带有像SQLServer那样企业管理器吗?VisualStudio2005支持在桌面上直接查看SQLMobile的数据库吗?
A:您可以通过SQLServer2005的企业管理器连接到SQLMobile数据库进行编辑。VisualStudio2005也支持在桌面上创建或修改SQLMobile数据库文件。
20、Q:提交成功后如何取消保存?
A:目前BindingSource尚不支持事务,因此提交成功后是没有办法再undo的。
21、Q:移动设备内存较小,填充DataSet是否有大小限制?
A:DataSet在逻辑上并没有对大小的限制。但是DataSet的大小必须小于当前前的可用内存,否则会有内存分配不成功的异常出现。
22、Q:如果数据源中的数据在显示前需要处理(例如格式转换),可以使用DataBinging吗?
A:BindingSource是直接将DataSet与控件进行关联,所以如果需要进行其他操作的话,就不能使用BindingSource。或者,可以在访问数据库后,先在DataSet里对需要转换的数据进行必要的处理之后,再进行显示。
23、Q:DataSet实际上在内存中产生了一套数据副本,如何解决版本控制的问题?
A:DataSet本身不存在版本控制的问题。在把数据提交回SQLMobile的时候,的确需要有一些机制来保证修改完成的数据应该是最新的,但是DataSet本身的数据结构是不会发生变化的。
24、Q:能否通过PocketPC上的程序更新服务器上的数据库信息?
A:可以。可以使用SQLMobile中的RDA或者是合并复制的方法和远程SQLServer数据库进行数据同步或更新。具体的实现可以参考SQLServer相关部分的文档。
25、Q:SQLMobile一定要要安装在移动设备上吗?
A:是的。SQLMobile需要安装在WindowsMobile或者WindowsCE设备上。
26、Q:SQLMoble支持存储过程吗?
A:目前还不支持。
27、Q:SQLMobile必须和应用程序部署在同一台设备上吗?可否远程连接?它是否是一个文本数据库?
A:是的。SQLMobile必须和应用程序部署在同一个设备上,现在还不支持远程连接。SQLMobile是一个文件数据库,但不是一个文本数据库。
28、Q:能不能在一些应用中以XML替代SQL的作用?
A:可以的。XML的查询效率比SQLMobile要低,但是在数据比较少的情况下不需要安装更多的组件,这是XML的一个优势。
29、Q:Tableadapter与DataAdapter之间有何区别?DataAdapter是多个TableAdapter的组合吗?
A:不是的,TableAdapter是对DataAdapter的一个扩展,TableAdapter本身包括了对应数据表的信息。TableAdapter完成从数据库连接、执行SQL语句到将结果填充到DataSet中的一个完整操作,而DataAdapter只支持数据填充的操作。
30、Q:做了SQLMoblie的sdf文件后,Publications后的数据库表中会出现msrepl_tran_version或rowguid字段,这是为什么?
A:这两个字段是为了保证数据同步,由系统自动添加的,请不要进行修改。
31、Q:网上出了个Reflector反编译工具,可以99%反编译用C#开发的EXE和DLL,怎么才能更好地保护应用程序?
A:目前大部分应用程序采用混淆和对关键字符串加密的方式,更好的方式可能还要继续探讨。
zhu1234 发表于 2008-4-7 09:35
(三)
1、Q:SQLMobile的SQL语法和SQLServer的语法有差异么?
A:SQLMobile的语法和SQLServer的语法略有差异,可以从SQLMobile的文档中查找SQLMobile具体支持哪些SQL语句。总的来说,对绝大部分的开发来说,这些差异不会造成影响。
2、Q:SQLMobile支持B/S模式吗?
A:不支持。
3、Q:可以在.NETCompactFramework1.0上访问由.NETCompactFramework2.0产生的数据库吗?
A:SQLMobile数据库的格式和SQLServerCE2.0是相同的,因此可以直接在.NETCompactFramework1.0中进行访问。
4、Q:SQLMobile数据库文件支持XCOPY吗?可以简单地复制到其他WindowsMobile设备上吗?
A:是的。SQLMobile数据库本身是一个文件数据库,直接复制到其他安装了SQLMobile支持组件的WindowsMobile设备或模拟器上就可以使用了。
5、Q:VisualStudio.NET2003是否支持WindowsMobile5.0的开发?
A:不可以,如果开发基于WindowsMobile5.0的应用程序请使用VisualStudio2005。
6、Q:要想从传统的PC程序员转向到移动设备的开发上来,需要在技术上作哪些准备?
A:移动设备的开发对于基础开发语言和开发技术的要求与PC上是相同的,只需要了解移动设备在哪些方面与PC平台有所不同即可。
7、Q:C#可以开发WindowsMoblie应用程序吗?
A:可以。
8、Q:如果获取.NETCompactFramework2.0的安装程序并将其安装到WindowsMobile5.0设备中?
A:VisualStudio2005提供了.NETCompactFramework2.0安装程序,在开发部署时会自动部署到移动设备上。
9、Q:WindowsMobile5.0中没有集成.NETCompactFramework2.0,是不是生成的应用程序安装包就应该带上.NETCompactFramework2.0?
A:技术上来说是的。但能否在应用程序中提供.NETCompactFramework2.0取决于微软对此的授权情况。
10、Q:如何把.NETCompactFramework2.0与应用程序一同打包发布?
A:.NETCompactFramework2.0有一个单独的CAB安装包,可以把此文件与应用程序打成一个安装包。
11、Q:用VisualStudio2003开发可以获得很好的兼容性吗?
A:用VisualStudio2003开发的基于.NETCompactFramework2.0的程序可以在WindowsMobile5.0的设备上运行。
12、Q:在WindowsMobile上面是否开发COM+或者DLL?
A:可以开发DLL动态共享库。
13、Q:C#是否支持WindowsMobile5.0的DirectX开发?
A:支持。
14、Q:现有的使用VisualStudio开发的Smartphone2003应用程序,可以移植到WindowsCE5.0平台上吗?
A:可以。
15、Q:WindowsMobile5.0内置红外线接口API吗?
A:WindowsMobile5.0对红外接口的支持并没有更新,需要采用之前的方法进行红外接口的开发,例如与串口通信等。
16、Q:如何开发手机游戏,特别是能够交互的网络游戏?
A:WindowsMobile对游戏开发的支持是比较充分的,可以采用DirectX技术进行3D或2D界面的开发;对于网络部分,WindowsMobile可以支持socket通信方式。所以,从技术上来讲,开发网络游戏是完全没有问题的。
17、Q:我们公司目前更多关注的是嵌入式领域,也就是WindowsCE,而非WindowsMobile。我们主要是在关注IPTV领域,在这方面有哪些的资源?
A:WindowsCE是一种可自定义的嵌入式操作系统,适用于各种内存很少的设备。OEM可以使用WindowsCE设计平台和自定义应用程序,使用户可以获得各种设备的最佳体验,例如手持设备、瘦客户机、逻辑控制器以及各种高级消费类电子产品。WindowsMobile是基于WindowsCE构建的一种完善的软件平台。与WindowsCE不同,WindowsMobileSmartphone和PocketPC操作系统专为要求特殊硬件配置的设备而设计。该软件包括标准化的接口和应用程序,可确保在各种硬件设计中的兼容性。所以WindowsMobile和WindowsCE的资源是通用的,您可以在http://www.microsoft.com/china/mobile、http://www.microsoft.com/windowsmobile/,以及微软社区http://www.microsoft.com/china/windowsmobile/communities/default.mspx获得相应的资源和帮助。
18、Q:我们在WindowsMobile上进行应用开发遇到一些底层的接口问题,如何取得微软的技术支持?
A:微软将一如既往地对基于WindowsMobile操作系统开发的独立软件开发商和开发人员进行支持,可以直接向800-820-3800全球技术支持中心寻求支持,或者提供具体问题细节,我们将给出相应的解决方案。
19、Q:如何才能将我们的软件放到微软的Mobile2Market项目中去?对MVP有没有什么优惠?
A:Mobile2Markert项目在中国是非常优惠的,目前对MVP没有特别优惠。另外,如何将软件放到微软的Mobile2Market中请参考http://www.microsoft.com/china/mobile/developer/developerprograms/mobile2market/default.asp。
20、Q:哪些工具可用于PocketPC2003开发?
A:要构建PocketPC2003本机C++应用程序,您需要MicrosofteMbeddedVisualC++4.0、MicrosofteMbeddedVisualC++4.0ServicePack3,以及PocketPC2003SDK。
21、Q:为了支持WindowsMobile2003SecondEdition的增强功能(例如高分辨率或横向屏幕),应该在应用程序中做些什么?
A:WindowsMobile2003SecondEdition提供了全新的屏幕方向和分辨率,包括针对PocketPC的横向、方形和VGA支持以及针对Smartphone的QVGA支持。这种版本不需要新的SDK。
22、Q:PocketPC2002应用程序可以在PocketPC2003设备上工作吗?
A:使用文档化API且功能良好的PocketPC2002应用程序无需重新编译即可在PocketPC2003设备上运行。
23、Q:如何从eVB迁移到VisualBasic.NET?
A:从eVB迁移到VisualBasic.NET并不容易,但迁移的好处远远超过了成本:?数据类型更丰富:eVB只有16字节的VARIANT;VisualBasic.NET使用.NETFramework通用类型系统。?执行更快:eVB需要解释;VisualBasic.NET在执行前由JIT(实时)编译器编译为本机代码。?错误处理更完善:eVB仅支持“OnError”;VisualBasic.NET支持结构化异常处理。?支持结构:eVB不支持;VisualBasic.NET支持命名空间、类和结构。?面向对象:eVB是面向过程的;VisualBasic.NET支持完全的OOP(面向对象编程)。?“一等公民”:eVB总是希望迎头赶上MFC;VisualBasic.NET则是.NET的核心。?本机XML支持:eVB不支持;VisualBasic.NET支持本机XML和XMLWeb服务。?数据模型更完善:ADO.NET远远超过了ADOCE;它是最好的数据模型。?执行更安全、更可靠:eVB是一种脚本语言;VisualBasic.NET为托管代码。?还有许许多多!同时,还有各种各样的资源(从移植实验到技术文章)可以帮助开发人员进行这种过渡。
24、Q:应该使用什么开发工具来编写基于.NETCompactFramework的PocketPC应用程序?
A:MicrosoftVisualStudio.NET2003允许VisualBasic.NET或C#编程人员创建PocketPC2000、PocketPC2002和PocketPC2003设备的托管代码应用程序(即那些以.NET公共语言运行库为目标的应用程序)。要开发PocketPC2000和PocketPC2002设备的托管代码应用程序,您可以使用即装即用的VisualStudio.NET2003。在开发过程中,VisualStudio.NET2003将会自动地将.NETCompactFramework安装到这些设备的RAM中。.NETCompactFramework已经在所有PocketPC2003设备的ROM中,而且VisualStudio.NET2003通过PocketPC2003SDK支持它。
25、Q:有什么资源可以用于进行WindowsMobile2003SecondEdition的开发?
A:下载新的WindowsMobileDeveloper资源包,其中包括白皮书以及新的和更新的代码示例。该版本不需要全新的SDK。可以用新的模拟器软件包对应用程序进行测试。eMbeddedVisualC++4.0开发人员应当下载eMbeddedVisualC++4.0ServicePack3。
26、Q:什么工具可用于Smartphone2002开发?
A:要开始开发MicrosoftSmartphone2002应用程序,您需要eMbeddedVisualC++3.0和Smartphone2002SDK。两者都可以在WindowsMobileDeveloper获得。
27、Q:MFC或ATL可用于Smartphone2002开发吗?
A:不可以,Smartphone2002不支持MFC与ATL开发。
28、Q:可以使用eMbeddedVisualBasic3.0来构建Smartphone2002应用程序吗?
A:不可以,不支持以Smartphone2002为目标的eVB开发。
29、Q:哪些工具可用于进行MicrosoftSmartphone2003开发?
A:对于Smartphone2003,有两种开发选择,或者通过带有ServicePack3的eMbeddedVisualC++4.0开发本机代码,或者通过VisualStudio.NET2003开发托管代码。这两种情况都需要下载Smartphone2003SDK。WindowsMobile2003SecondEdition模拟器软件包使您可以在SecondEdition设备上测试应用程序。eMbeddedVisualC++4.0和Smartphone2003SDK都可以在WindowsMobileDeveloper获得。
zhu1234 发表于 2008-4-7 12:09
(四)
1、Q:在Smartphone 2003上可以使用.NET Compact Framework的哪一个版本?
A: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 Second Edition的ROM中。
2、Q:什么是示例Smartphone 2002设备和Smartphone 2003设备?
A:原始的Orange SPV与Orange SPV e100运行Windows Mobile 2002。Orange和AT&T上的MPX200都是基于Windows Mobile 2002的Smartphone。Orange SPV e200运行Windows Mobile 2003。
3、Q:MFC或ATL可用于Smartphone 2003开发吗?
A:MFC不可用于Smartphone 2003。可以使用ATL 4.0进行Smartphone 2003开发。有关ATL 4.0的更多信息,请参阅SDK文档。
4、Q:从哪里可以找到更多有关Smartphone应用程序安全模型的信息?
A:为了帮助开发人员了解基于Windows Mobile的Smartphone应用程序安全模型,我们创作了一本白皮书。请参见http://msdn.microsoft.com/library/en-us/dnsmtphn2k3/html/smartphone_security.asp。
5、Q:可以使用eMbedded Visual Basic 3.0来构建Smartphone 2003应用程序吗?
A:不可以,不支持以Smartphone 2003为目标的eVB开发。如果您希望利用Visual Basic的开发技巧,可以考虑使用Visual Basic .NET并以.NET Compact Framework为目标。
6、Q:什么是Microsoft eMbedded Visual Tools 3.0?
A:eMbedded Visual Tools 3.0是一种集成开发环境(IDE),用来为基于Microsoft Windows CE操作系统的32位设备编写软件应用程序。其中包括完整版的Microsoft eMbedded Visual C++ 3.0语言、Microsoft eMbedded Visual Basic 3.0语言、特定于平台的SDK、远程工具和文档。
7、Q:eMbedded Visual Tools 3.0支持哪些设备平台?
A:eMbedded Visual Tools 3.0 - 2002 Edition附带于Pocket PC 2000、Pocket PC 2002和Smartphone 2002的SDK,并支持开发自定义的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 支持。
8、Q:什么是eMbedded Visual C++ 4.0?
A:eMbedded Visual C++ 4.0是一种强大的开发工具,在为下一代基于Windows CE的设备(包括Pocket PC 2003和Smartphone 2003)构建本机代码应用程序时可以为企业提供相当大的好处。这种独立的集成开发环境(IDE)带来了新水平的Windows CE开发效率,但却没有牺牲灵活性、性能或控制能力。要使用eMbedded Visual C++工具构建Pocket PC 2003与Smartphone 2003应用程序,还需要安装eMbedded Visual C++ 4.0 Service Pack 3和Pocket PC 2003以及Smartphone 2003 SDK。
9、Q:我可以使用eMbedded Visual C++ 4.0开发Pocket PC或Smartphone应用程序吗?
A:可以使用带有Service Pack 2的eMbedded Visual C++ 4.0来开发包括Windows Mobile 2003 Second Edition在内的Pocket PC 2003与Smartphone 2003应用程序。也可以用它来开发Pocket PC 2002或Smartphone 2002应用程序。
10、Q:我可以使用Windows CE Standard SDK开发Pocket PC或Smartphone应用程序吗?
A:Windows CE SDK提供了一个通用的功能子集,使得编写的应用程序能够符合Standard SDK,以便运行在基于自定义显示的Windows CE .NET平台上。为了构建Pocket PC和Smartphone智能设备应用程序来利用这些平台提供的丰富的设备功能集,需要使用特定于设备的SDK。
11、Q:eMbedded Visual Tools 3.0和Visual Studio .NET之间有什么不同?
A:eMbedded Visual Tools 3.0是一种专门针对移动与嵌入式技术开发人员的独立开发环境。对于Pocket PC和Smartphone,都可以利用eMbedded Visual Tools和适当的平台SDK来构建丰富的“本机代码”客户端应用程序。Visual Studio .NET是Microsoft的最流行桌面开发工具的最新版本。可以使用Visual Studio .NET 2003来构建基于.NET Compact Framework的Pocket PC智能客户端应用程序。同时,还可以使用Visual Studio .NET和ASP.NET移动控件构建以各种设备(包括Pocket PC和Smartphone类别的设备)为目标的基于浏览器的应用程序。
12、Q:为什么没有将eMbedded Visual C++集成到Visual Studio .NET中?
A:根据客户的反馈,我们最初的工作主要集中于使Visual Basic .NET开发人员能够更轻松地对设备进行编程。但是,利用本机代码(C++)创建设备应用程序的功能将会集成到Visual Studio的下一个版本中。
13、Q:什么是.NET Compact Framework?
A:.NET Compact Framework是.NET Framework的子集,设计为能运行在资源受限的设备上,以便为托管代码和XML Web服务提供支持。.NET Compact Framework大大降低了编写运行在诸如Pocket PC设备上的应用程序和服务的开发成本。由于.NET Compact Framework是开发人员用来编写桌面和服务器应用程序的.NET Framework的一个子集,所以他们已经具备了编写Pocket PC和Smartphone 2003设备应用程序所必需的全部技巧。
14、Q:使用.NET Compact Framework的主要好处是什么?
A:目前编写设备应用程序的一个最大障碍在于,大多数设备都要求开发人员了解不同的API和使用不同的编程工具(与用于桌面应用程序相比)。由于.NET Compact Framework使用的.NET Framework编程模型和Visual Studio .NET开发工具与开发人员已经在桌面和服务器上使用的相同,所以它可以大大降低开发设备应用程序的成本,并提高开发人员的工作效率。而这些好处又能够使企业以新的方式使用智能设备,从而改进他们的业务。.NET Compact Framework也是唯一带有XML Web服务本机支持的移动开发平台。
15、Q:什么设备可以运行.NET Compact Framework?
A:NET Compact Framework 1.0可以用作Pocket PC 2000和Pocket PC 2002设备(包括Phone Edition)的RAM安装,并且可以放在Pocket PC 2003的ROM中。Smartphone 2003设备包含.NET Compact Framework 1.0 Service Pack 1。所有的Windows Mobile 2003 Second Edition设备均包含.NET Compact Framework 1.0 Service Pack 2。
16、Q:何时可以使用.NET Compact Framework?
A:.NET Compact Framework的1.0版可以作为Visual Studio .NET 2003版本的一部分使用。有关更多信息,请参阅Device Development。
17、Q:.NET Compact Framework可以运行所有的.NET语言吗?
A:最初,.NET Compact Framework可以运行Visual C#和Visual Basic。只要其他.NET语言符合.NET Compact Framework支持的公共语言运行库子集,它们就可以运行。
18、Q:.NET Compact Framework应用程序和eMbedded Visual C++应用程序的执行情况一样吗?
A:在大多数情况下,用eMbedded Visual C++编写的应用程序的运行速度比用Visual Basic .NET或Visual C# .NET编写的应用程序快。但是,对于应用程序计算密集的部分,开发人员将会看到他们的Visual Basic .NET应用程序比他们的eMbedded Visual Basic应用程序有实质性的改善。
19、Q:.NET Compact Framework与ASP.NET移动控件之间有什么不同?
A:对设备进行编程有两种不同的方法。一种方法是将应用程序放置在智能设备上。另一种方法是将代码放置在服务器上,并通过浏览器呈现用户界面。.NET Compact Framework支持前者,而ASP.NET移动控件(以前称为Microsoft Mobile Internet工具包)则支持后者。使用设备上的代码构建移动应用程序使应用程序在没有Internet连接的情况下可以继续工作。直接在设备上运行的应用程序还支持更丰富的用户界面,以及与操作系统上的可用资产(例如多媒体和其他的应用程序)进行集成的可能性。可以使用.NET Compact Framework将高效模型用于构建智能设备应用程序。构建代码位于服务器的移动应用程序也有其优点。在必须使用Internet支持的各种移动设备时,这种体系结构非常有用。这些应用程序也不受资源的限制,因为它们作为桌面Web应用程序运行在相同的服务器上。在Visual Studio .NET中使用ASP.NET移动控件可以完成这些应用程序的编写。
20、Q:Visual Studio .NET 2003和Visual Studio 2005开发的Mobile在部署(方法和平台)上面有什么具体的不同?
A:从Visual Studio 2005 beta版的情况来看,和Visual Studio .NET 2003的部署过程是相同的。在开发方面,Visual Studio 2005直接提供了Skin功能,可以使开发者在设计界面时能够更加直观。并且在调试时,其调试环境不再是在模拟器环境当中,而直接使用本地计算机的资源,调试速度更快。
21、Q:我想使用GPS采集数据,然后将数据实时显示在客户机屏幕上,采用什么连接方式比较好?
A:数据连接的方式主要取决于GPS的类型。目前GPS接收器有两种方式,串口或USB连接和蓝牙连接。如果是串口和USB连接,你可以使用CreateFile或者OpenNETCF中的串口类进行操作;而蓝牙设备,就需要使用Windows CE的Bluetooth API了。
22、Q:怎样生成一个像PC上Setup一样的安装程序在Pocket PC上来完成安装工作?
A:Windows Mobile设备的标准安装文件是CAB格式的。您可以在Visual Studio.NET中选择“生成CAB文件”,或者直接使用命令行工具cabwiz生成CAB文件。
23、Q:用Windows Mobile把一个XML传入Web Service,处理后返回一个XML。传入的XML可有多种形式,请问共有哪几种写法?他们有什么区别?例子:1.public XmlDo***ent GetXml(XmlDo***ent xmlfile);2.public XmlElement GetXml(XmlElement xmlfile)...返回的XML其实是个SOAP消息,如何去掉SOAP?
A:1)建议传递参数直接传递XML格式的字符串而不要传递对象。2)Web Service传递的信息中必定有SOAP消息,如果只想传递XML实体内容的话,建议通过Http请求直接POST数据,然后返回订制好的XML格式的实体数据。