这是我7月26日Webcast Q&A内容,很多问题还是很有代表性的,给大家贴出来.
使用.NET CF开发Smartphone应用程序 ---Level 300
活动日期: 2005-07-26 14:30 -- 16:00
主 讲: 马宁
________________________________________
Q:新建项目的时候选择哪个项目类型才能创建刚才的应用程序呢?
A:在Visual Studio的新建项目对话框中选择Visual C#或者Visual Basic,选择“智能设备”,然后再选择相应的设备SDK,最后选择“Device Application”,就可以创建一个移动设备的应用程序了。
________________________________________
Q:那有一些smartphone的软硬件的介绍的文章?
A:Smartphone介绍方面的文章可以在MSDN网站上找到,也有许多第三方的网站,比如Smartphone Developer Network等。
________________________________________
Q:What's the difference between Managed code and Native code?
A:托管代码是指使用.NET CF开发的程序代码,可执行文件被编译成IL,执行时需要有.NET的运行时环境。而本地代码指用C++等语言开发的程序代码,可执行文件被编译成与CPU指令集有关的机器码,可以直接直接运行。
________________________________________
Q:能不能简要介绍一下Magneto里面对OTA和MMS的支持?
A:Magneto对OTA有很好的支持,你可以去看SDK文档中通讯部分,有针对OTA的专门介绍。MMS的应用程序基本都是由第三方开发的,因为MMS是基于WAP协议的,而Magneto本身对WAP的支持也很好,具体的协议也可以在SDK文档里找到。
________________________________________
Q:请问用Vb.net 开发PDA数据库程序能不能用Ado.net? 我看引用里没有system.data.oledb?
A:VB.NET开发PDA数据库不需要引用System.data.oledb,只需要引用System.Data.SqlServerCe命名空间就可以了。里边的数据库操作类和ADO.NET是基本一致的。你可以用他们来开发针对SQL Server CE的应用程序。
________________________________________
Q:在C++2005中,可以用.Net Compact Frame 吗?
A:不能,现在.NET CF只支持C#和VB.NET,而不支持C++/CLI。但是在VS.NET 2005中可以用C++来开发Native代码来支持移动设备。
________________________________________
Q:从什么地方可以得到smartphone开发环境?
A:Smartphone的SDK可以在微软网站上找到,而Visual Studio 2005 Beta 2可以通过参加微软活动的方式获得。MEDC 2005的参加者都获得了VS.NET 2005和Windows Mobile 5 SDK的开发光盘。
________________________________________
Q:请问什么时候可以讲解一下如何在PC端调用smartphone的api。尤其是RAPI的RapiInvoke()方法
A:好,稍后我会准备这方面的内容,如果有机会在以后的Webcast里会有专门的讨论。您可以关注一下我的BLOG,里边有一些介绍性的文章。
________________________________________
Q:托管性的代码执行效率怎么样。和VC++相比较。
A:托管代码的执行效率肯定是不如本地代码的。但是托管代码也有一些好处是无法取代的。
________________________________________
Q:目前手机开发种类很多有针对linux平台的、Symbian平台的、windows mobile的,那种开发前景最大?
A:开发前景是和手机平台的发展密切相关的。现在尽管Symbian平台市场占有率比较大,但是Windows Mobile平台和Linux平台发展也很快,将来如何,实在不好判断。
________________________________________
Q:Do you use C#.net to develop? Can I use VS.net2003 to develop Applications run on 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。
________________________________________
Q:就是pda上不能用pocket Access么?sqlce太大了。
A:可以使用Pocket Access来开发Windows Mobile上的应用程序。你可以采用C++调用OLEDB或者ADOCE的方式来访问Pocket Access数据库。
________________________________________
Q:vs2005的新功能是否只在windows mobile 5里受到支持,2003是否被支持?
A:新功能分两个部分,一部分是.NET CF 2.0的新功能,这部分的功能是被Windows Mobile 2003支持,但不被.NET CF 1.0支持;而另一部分是Windows Mobile 5的特有功能。教大家一个最简单的分辨方法:去看.NET CF 2.0和Windows Mobile 5开发文档的“What’s New”部分,那里边分别描述了上面的内容。
________________________________________
Q:写好的程序在那里用?
A:不但可以在Windows Mobile设备上运行,也可以直接运行在模拟器中。
________________________________________
Q:您的Blog地址是?
A:http://Blog.csdn.net/aawolf
________________________________________
Q:请问如何在模拟器里面配置连接到移动网络?如果模拟器不能连接到移动的网络,那你刚才的demo发短信是怎么成功的?
A:模拟器如果需要连接移动网络的话,必须有专门的硬件提供支持,可以在开发PC的串口上连一个GPRS的模拟器,SDK文档中有专门的说明。刚才DEMO中的通讯网络是虚拟的,由软件模拟的,并没有实际连接到无线网络上。
________________________________________
Q:sqlce 可以像pocket Access那样仅一个文件就能运行么? 不会像Pc上那样要安个服务器才能用吧?
A:不会的,你需要在Windows Mobile上安装SQL Server CE的支持库,就是一些DLL文件。而SQL Server CE的库文件是一个单独的文件,不需要安装一个服务器。
________________________________________
Q:现在市场上有Mobile 5 的手机吗?
A:现在还没有。HTC会在今年秋天的时候推出一款Windows Mobile 5的3G手机。
________________________________________
Q:开发的程序通过什么方式部署到手机上?对手机有什么要求?
A:开发的程序需要打包成cab文件部署到手机上。除了前边说到的,通过ActiveSync安装外,还可以通过网络下载、存储卡运行等方式来安装应用程序。对手机的要求是,必须和开发程序的目标平台相兼容。比如为Windows Mobile 5开发的应用程序,可能就没办法很好地运行在Windows Mobile 2003平台上。
________________________________________
Q:在模拟器上面开发程序,和真实环境有区别么?需要注意一些什么呢?
A:模拟器的仿真度十分的高,Windows Mobile 5的模拟器甚至可以支持ARM指令,所以基本不会遇到兼容性的问题。但是对于一些需要连接外部设备的应用场景,比如前边说的无线网络,还有GPS设备等,就需要用到实际设备了。
________________________________________
Q:What should we pay special attention to when develping globalized applications? Thanks
A:对于全球化的应用程序,.NET本身就已经提供了非常好的支持。你可以把用户界面的文字保存在相应的资源文件中,然后由应用程序判断操作系统的语言版本来调用相应的文字。
________________________________________
Q:用.net 开发ppc程序就不用管设备是什么cpu了吧?
A:是的,无论是在虚拟机上的x86指令集,还是实际设备上的ARM指令集,对.NET CF程序的运行来说都一样。
________________________________________