NETCF V2 CABs – which one is for which device?
NETCF V2 currently includes seven CAB files. Table below describes platforms and CPUs supported by each CAB.
CAB name
Supported Platform(s)
Supported CPU(s)
NETCFv2.ppc.ARMV4.cab
Pocket PC 2003
Pocket PC 2003 SE
ARMV4
NETCFv2.wm.armv4i.cab
Windows Mobile 5.0 Pocket PC
Windows Mobile 5.0 Smart Phone
ARMV4I
NETCFv2.wce5.sh4.cab
Windows CE 5.0
SH4
NETCFv2.wce5.mipsii.cab
Windows CE 5.0
MIPS II
MIPS II FP
NETCFv2.wce5.mipsiv.cab
Windows CE 5.0
MIPS IV
MIPS IV FP
NETCFv2.wce5.armv4i.cab
Windows CE 5.0
ARMV4I
NETCFv2.wce5.x86.cab
Windows CE 5.0
X86
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的应用程序。 5、Q:在Visual C++2005中,可以使用.Net Compact Framework吗? A:不能,现在.NET Compact Framework只支持C#和VB.NET,而不支持C++/CLI。但是在VS.NET 2005中可以用C++来开发Native代码来支持移动设备。 6、Q:从什么地方可以得到Smartphone开发环境? A:Smartphone的SDK可以在微软网站上找到,而Visual Studio 2005 Beta 2可以通过参加微软活动的方式获得。MEDC 2005的参加者都获得了VS.NET 2005和Windows Mobile 5 SDK的开发光盘。 7、Q:托管性的代码执行效率怎么样?和使用Visual C++编写的代码相比较。 A:托管代码的执行效率肯定不如本地代码高,但是托管代码也有一些好处是无法取代的。 8、Q:是否可以使用Visual Studio .NET 2003来开发能够运行在Windows Mobile 2005上的应用程序? A:首先更正一下,Windows Mobile最新一代的操作系统叫做Windows Mobile 5,而不是Windows Mobile 2005。是的,使用VS.NET 2003开发的应用程序是可以在Windows Mobile 5上正常运行的,因为Windows Mobile 5 ROM中内置了.NET Compact Framewrok 1.0 SP3。 9、Q:PDA上不能用Pocket Access么?SQL CE太大了。 A:可以使用Pocket Access来开发Windows Mobile上的应用程序。可以采用C++调用OLEDB或者ADOCE的方式来访问Pocket Access数据库。 10、Q:Visual Studio 2005的新功能是否只在Windows Mobile 5里受到支持,2003是否支持? A:新功能分两个部分,一部分是.NET Compact Framework 2.0中提供的的新功能,这部分的功能可以被Windows Mobile 2003支持,但必须安装.NET Compact Framework 2.0;而另一部分是Windows Mobile 5的特有功能。.NET Compact Framework 2.0和Windows Mobile 5开发文档的“What’s New”部分,分别描述了这两方面的新特性。 11、Q:请问如何在模拟器里面配置连接到移动网络? A:模拟器如果需要连接移动网络的话,必须有专门的硬件提供支持。可以在开发PC的串口上连一个GPRS的模拟器,SDK文档中对此有专门的说明。 12、Q:SQL CE可以像Pocket Access那样仅使用一个文件就能运行么?是否需要像PC上那样安个服务器才能使用? A:不会的,只需要在Windows Mobile上安装SQL Server CE的支持库,也就是就是一些DLL文件。而SQL Server CE的库文件是一个单独的文件,不需要安装一个服务器。 13、Q:开发好的程序通过什么方式部署到手机上?对手机有什么要求? A:开发的程序需要打包成cab文件部署到手机上。除了通过ActiveSync安装外,还可以通过网络下载、存储卡运行等方式来安装应用程序。对手机的要求是,必须和开发程序的目标平台相兼容。比如为Windows Mobile 5开发的应用程序,可能就没办法很好地运行在Windows Mobile2003平台上。 14、Q:在模拟器上面开发程序,和真实环境有区别么?需要注意一些什么? A:模拟器的仿真度十分高,Windows Mobile 5的模拟器甚至可以支持ARM指令,所以基本不会遇到兼容性的问题。但是对于一些需要连接外部设备的应用场景,比如前边说的无线网络,还有GPS设备等,就需要用到实际设备了。 15、Q:当开发国际化应用程序时,应该特别注意哪些方面? A:对于国际化的应用程序,.NET本身就已经提供了非常好的支持。可以把用户界面的文字保存在相应的资源文件中,然后由应用程序判断操作系统的语言版本来调用相应的文字。 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.devbuzz.com、www.codeproject.com、www.msdn.com/mobility/、www.pocketpcdn.com 27、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的控件,可以直接拖放来使用。