内容简介
本文描述了如何搭建典型的Windows Mobile开发环境。介绍了相应的IDE、SDK及辅助开发工具的安装及常用配置,并对Windows Mobile下一代开发环境的发展前景做出展望。本文适合初次接触Windows Mobile开发的开发人员。
Windows Mobile开发简介
Windows Mobile是微软公司操作系统产品线上重要的一环。与Windows 9x/NT/XP/2003相比,Windows Mobile作为完整产品线出现在公众面前的时间非常短,但它的发展却异常迅速,而在这一发展过程中,开发人员提供了绝对关键的推动力。现在,越来越多的开发人员(特别是.NET开发人员)希望能尽快进入Windows Mobile的开发领域,而他们所面临的首要问题,除了熟悉Windows Mobile平台特性之外,便是如何搭建适合的开发环境。因此,本文就将从如何搭建一个Windows Mobile开发环境入手,对Windows Mobile平台的开发特性进行概要描述,以期帮助开发人员迅速进入Windows Mobile开发领域。
在展开本文的内容之前需要说明的一点是,Windows Mobile平台开发主要包含以下两方面内容:
l 平台级开发
l 应用级开发
因为Windows Mobile平台构建于微软的Windows CE系列操作系统之上(当前正式商用版本为Windows CE .NET 4.21),而Windows CE操作系统具有非常良好的模块化特性,因此开发人员,特别是手机设备厂商,可以通过微软提供的Platform Builder及eMbedded Visual C++(以下简称为eVC)非常方便地定制自己所需的操作系统。这对应的是上面所说的平台级开发。
然而,绝大多数的开发人员并不需要去构建一个全新的、个性化的系统,他们只需要关心如何构建能够运行在Windows Mobile设备上的应用程序。为此,微软按主要智能设备自身硬件设备特性的不同以及用户体验的差异,定制出了Windows CE .NET 4.x系列操作系统的两个主要分支,分别安装在不同的Windows Mobile硬件设备中,从而也就构成了我们通常所说的Pocket PC和Smartphone。以下内容中的Windows Mobile开发,除特指之外,均表示Pocket PC/Smartphone开发。
本文中提供的大量开发工具,除单独标出的以外,均可在http://msdn.microsoft.com/mobility/downloads/default.aspx下载。
迅速搭建开发环境
为了进行Windows Mobile开发,我们需要搭建相应的开发环境。所幸的是,这一环境搭建起来非常简单。
安装Visual Studio .NET 2003
为了降低Windows Mobile的开发难度,提高开发人员的开发效率,微软把.NET Framework移植到了Windows Mobile设备上,针对Windows Mobile设备及Windows CE .NET操作系统设计了.NET Compact Framework(以下简称.NET CF)。而Visual Studio .NET 2003正是开发.NET CF应用程序的最佳IDE。在Visual Studio .NET 2003的安装中默认集成了.NET CF 1.0,同时提供了Pocket PC 2002的开发模板,可以直接用来开发Pocket PC 2002应用程序。
您也可以选择Visual Studio 2005作为开发工具,目前最高版本为Beta 1 Refresh。在Visual Studio 2005中,默认提供了Pocket PC/Smartphone 2003 SE(第二版)的开发模板,同时将Pocket PC 2003 SE开发使用.NET CF版本升级到2.0 (beta)。
安装eVC (可选)
以上环境已经完全可以基于.NET CF开发Windows Mobile应用程序。但如果您想使用C/C++语言来进行native开发,或者想在Windows Mobile设备上开发COM组件及应用,那么可以选择eVC作为开发工具。目前eVC的最高版本为4.0 + SP4,请确保安装了最新的补丁包。
也许您会问:既然已经有了Visual Studio .NET环境,为什么还要使用eVC作为开发工具呢?这主要是因为,当前的.NET CF功能相对而言还很不完整,有很多Windows CE .NET操作系统的核心功能没有被封装入.NET CF,如:加密/解密、网络底层通讯、COM互操作、RAPI等等。为了完成上述操作,我们或者使用平台调用(P/Invoke)以托管方式开发,或者使用eVC直接针对系统底层进行native开发。对于COM互操作,目前.NET CF还不提供COM互操作(Interop)机制,只能使用eVC进行C/C++ COM开发。好消息是,在.NET CF 2.0中将提供功能强大的COM互操作特性支持,同时也将在Visual C++ 2005环境中同时提供managed及native开发功能,这样所有的开发工作将完全整合在Visual Studio 2005同一环境中。
安装Pocket PC/Smartphone 2003 SDK
为了开发Pocket PC 2003或Smartphone 2003应用程序,您还需要安装Pocket PC 2003 SDK或Smartphone 2003 SDK。值得注意的是,这两款SDK中所包含的模拟器均为英语环境,如果您想使用简体中文环境的模拟器,请去微软网站上单独下载。
如果您使用Visual Studio 2005开发Windows Mobile应用程序,则不需要单独安装相应的SDK,因为SDK已经被默认集成至了Visual Studio 2005环境中。
SQL Server CE (可选)
这是Pocket PC上推荐使用的嵌入式数据库产品,它与SQL Server桌面版之间可以实现良好的数据同步及互操作,目前正式版的最新版本为2.0。在SQL Server 2005 Beta 2测试版中,包含有SQL Server CE 2.0的升级版本SQL Server 2005 Mobile Edition——不过该版本目前只支持Pocket PC 2003系统。预计SQL Server Mobile Edition在下一个版本中才能提供对Smartphone的支持。
ActiveSync环境搭建
在完成了上述开发环境的搭建之后,您就可以在Visual Studio .NET中开发和调试应用程序,并在设备/模拟器中进行部署。但是,如果您还需要进一步执行下述操作,那么请按本节所述继续搭建ActiveSync环境。可能的执行操作包括(但不限于):
l 向设备/模拟器中复制文件
l 从设备/模拟器中删除文件
l 与设备/模拟器同步数据
l 开发和调试包含RAPI (Remote API)功能的应用
l ……
安装ActiveSync
ActiveSync是一款管理Windows Mobile设备连接、与PC进行数据同步的工具。如果您开发时使用的是真实设备,则最好事先安装ActiveSync使之与PC机连接。如果您使用的是模拟器,则除了安装ActiveSync以外,还需要安装下述工具。
安装Connect Emulator with ActiveSync
如果您使用的是模拟器软件,除了安装ActiveSync外,还必须安装Connect Emulator with ActiveSync这款工具软件。它将使您可以直接通过ActiveSync连接到模拟器上。
辅助工具介绍
除了上述基本开发工具以外,在Windows Mobile开发社区中还存在着大量的辅助工具,包括应用程序框架、工具、控件等等。其中有一些由于定位准确、制作优良、使用方便,已经成为Windows Mobile开发不可或缺的好助手。以下列出其中的一部分,更多的还存在于Windows Mobile开发者社区及互联网上,等待着您去发现。
OpenNETCF.org Smart Device Framework
由几位长年活跃于Windows Mobile开发者社区的MVP共同开发的OpenNETCF.org Smart Device Framework (以下简称为SDF),几天前刚刚获得了Pocket PC Magazine评出的2004年度最佳.NET开发框架大奖。熟悉SDF的开发者都会认为,对于这一奖项,OpenNETCF的确当之无愧,因为SDF几乎已经成了Windows Mobile开发者不可或缺的工具。他们对.NET CF的不足给出了及时的弥补,在SDF中,您可以找到Configuration、XML Serialization、 Notification、Interop Services、WSE 2.0等一系列.NET CF当前版本尚未提供的功能,以及诸如ListBoxEx等优秀的控件。更值得一提的是,SDF是一项完全免费的开源项目。这几位MVP为整个Windows Mobile开发者社区所做的贡献也许真的无法用金钱来衡量。
下载地址:http://www.opennetcf.org。
Windows Mobile Developer Power Toys
这是微软继Pocket PC/Smartphone 2003 SDK之后为开发人员提供的另一套开发辅助工具集。其中包含不少非常值得一用的优秀工具,如:
l ActiveSync Remote Display:把连接在PC上的智能设备影像通过PC屏幕放大显示
l CECopy:以命令行的方式向所连接的智能设备传输文件
l Hopper:用于Pocket PC 2003的用户输入压力测试工具
l PPC Command Shell:用于Pocket PC 2003的命令行工具
l TypeIt:用于Smartphone 2003的辅助文字输入工具
l ……
Mobile Application Development Toolkit 2004
这是微软近期推出的Windows Mobile开发工具及资料集,其中包含上述所有产品及工具,以及一系列相关的文档、教程及参考资料。
结束语
好了,对于如何搭建Windows Mobile的开发环境就介绍到这里了。可以肯定地说,随着微软公司支持力度的增加和Windows Mobile开发者社区的成熟,Windows Mobile开发将面临越来越有利的良好环境。
打印 | 张贴于 2004-11-07 04:36:00 | Tag:暂无标签
留言反馈
谁能帮我解决这个问题。
我的邮箱是hlb_06@163.com
fanny-lf@163.com
E-mail:lh8yyy@sina.com
希望大家能帮下忙好吗?
那个环境到底是如何配置的啊?
我的QQ:290097356
希望知道的联系下我
谢谢
woolik@163.com
在调用服务程序时(用winform写的)开始时是正常的,可是没调两次就会出现一个异常,而不能再调用服务程序上的函数,异常中出现的错误如下:
未处理的“System.Net.WebException”类型的异常出现在System.Web.Services.dll中。
其他信息:无法找到资源程序集
请各位高手帮帮忙,急用啊!谢谢了!
我的邮箱:xiaodianxin0102@163.com
我用.net2003智能设备应用程序中dataGrid绑定sqlce数据库中数据时总是在dataAdatpter da.fill那一行报:
未处理的“System.Data.SqlServerCe.SqlCeException”类型的异常出现在 System.Data.SqlServerCe.dll 中。
错误
我的代码是这样的:
private void button1_Click(object sender, System.EventArgs e)
{
SqlCeConnection conn = new SqlCeConnection("Data Source = \\My Documents\\sd.sdf");
DataSet ds = new DataSet();
SqlCeDataAdapter da = new SqlCeDataAdapter("Select * from tb_ProductMsg",con);
da.Fill(ds,"tb_ProductMsg");
dataGrid1.DataSource = ds.Tables["tb_ProductMsg"].DefaultView;
}
请问这是什么原因!谢谢
我的邮箱是zhangzh_911@tom.com期望着你的回答!
我用.net2003智能设备应用程序中dataGrid绑定sqlce数据库中数据时总是在dataAdatpter da.fill那一行报:
未处理的“System.Data.SqlServerCe.SqlCeException”类型的异常出现在 System.Data.SqlServerCe.dll 中。
错误
我的代码是这样的:
private void button1_Click(object sender, System.EventArgs e)
{
SqlCeConnection conn = new SqlCeConnection("Data Source = \\My Documents\\sd.sdf");
DataSet ds = new DataSet();
SqlCeDataAdapter da = new SqlCeDataAdapter("Select * from tb_ProductMsg",con);
da.Fill(ds,"tb_ProductMsg");
dataGrid1.DataSource = ds.Tables["tb_ProductMsg"].DefaultView;
}
请问这是什么原因!谢谢
直接选择VS2005+WINDOWS MOBILE 5.0 FOR PPC SDK+SQL SERVER MOBILE
顺便能否给我点开发资料julianhoo@126.com
是开发环境和模拟器上的cf版本不匹配的原因么,我该怎么解决
如果可以的话,还需要哪些开发包?
我的邮箱x_m1860@sohu.com
谢谢.
问一句,如果我想通过EVC来控制smartphone的mini SD接口(不仅用于文件读写,可能要扩展其它功能)能不能实现?
希望能和你讨论
chl85@163.com,
qq: 39460414
msn:chl85@163.com
安装:
VS2005.net ,
Server 2000 SP4,
sql server 2005 mobile edition
最后我安装SQL Server 2005 移动版服务器工具的时候提示警告我SQL Server 2000 复制组件没的安装,我又回去装Sql2KenSP3a.msi,可是最后依然示我没有安装SQL Server 2000 复制组件,请问那位高手能指点一下?
我试过SQL Server 2000的企业版和个人版都出现这个问题
我用的是DELL PDA X51,部署起来也很方面,可以用ACTIVE SYNC 或者在开发的PC上架设FTP Server,在设备上访问,下载需要的库和*。CAB,然后在安装,可以实现SQL CE 和 SQL SERVER 2000,正常的PULL AND PUSH操作。
MSN:skyyer1@hotmail.com
邮箱是jxm_010@163.com
我的msn jiangxiaogen516517@hotmail.com
希望能及时等到你回应,谢谢!
邮箱是jxm_010@163.com
我的msn jiangxiaogen516517@hotmail.com
我的MSN:njnulms@hotmail.com
希望高手指教.
我的MSN:zhangxiaogang25@hotmail.com;
静候佳音!
我们现在编译内核经常出现:res2res的错误。
开发所用到的软件有:
安装Microsoft Platform Builder for Windows Mobile 5.0 27
安装visual studio 2005和msdn 27
安装ActiveSync4.1_CHS 28
安装Windows Mobile 5.0 SDK for Smartphone 28
安装Windows Mobile 5.0 Emulator Images for Smartphone - CHS.msi 29
能详细讲一下平台开发么?
我用C#建了一个智能设备应用程序,去调用一个Web Service,每次调用一个方法(最基本HelloWorld)
时,都报错:
未处理的“System.Net.WebException”类型的异常出现在 System.Web.Services.dll 中。
其他信息: 无法连接到远程服务器或DNS错误.
如果我建一个Windows应用程序,去调用同一个Web Service的方法,运行结果正确. 这是为什么?
谢谢!
EMAIL:lxz79@sina.com
使用C++操作数据库在VS2005中是不是只能用OLE DB来进行连接,是不是还有其他方法?
可以提供用ICommandText使用的例程吗?我能够连接数据库,但使用ICommandText,执行SQL语句后,不能得到数据。很烦!谢谢,希望能得到你的帮助!
QQ:10903508
EMAIL:kxfwhnld@sina.com
There is a problem with this windows installer apckage. A script required for ths install to complete could not be runl. contact your support personnel or package vendor.
安装不成功呀. 有那位大哥知道是什么原因呢? 能帮帮小弟.
谢谢. 急等
QQ:59952418
Email:kellychengcn@163.com
另,我手机上网的时候,输入的服务器的IP地址,因为没有开通域名服务
我用C#建了一个智能设备应用程序,去调用一个Web Service,每次调用一个方法(一次加法运算)
时,都报错:
未处理的“System.Net.WebException”类型的异常出现在 System.Web.Services.dll 中。
其他信息: 无法连接到远程服务器.
如果我建一个Windows应用程序,去调用同一个Web Service的方法,运行结果正确.
我查询了很多,寻找解决问题的办法.我做了:IIS的设置(允许匿名访问,集成Windows身份验证)
,修改本地安全设置中用户权利指派,启用Guest用户,修改Web Service中的Web.config,没有在设备上使
用localhost来引用Web服务,使用机器名来引用Web服务。等等.问题还是没有解决.
有些问题看了很多网页始终搞不清楚,请你给我一些帮助。
首先,我看到ppc和smaptphone的开发sdk,选那个好呢?winbile比赛有没有限定是那个平台呢?
其次,winbile环境支持directX吗?我是做游戏的,已经学会用Managed DirectX,如果mobile环境也支持ManagedDirectX,那就太方便了。
第三,网站上说WinMobileSDK需要standard edition 的vs2005,我只有Express Edition,是不是没有肯能安装sdk了?
我的邮箱kezhongseu@gmai.com
mail:shelvenn@163.com
什么时候用Pocket PC ,什么时候用SmartPhone ??
急…………
我看了看MSDN所给的资料。发现它的解释根本对我作用不大。那位仁兄帮忙告诉我是不是PROJECT菜单需要设置啊!我的电子邮件是
jintian01@163.com
我有些问题想请教一下了。
1、VS.NET 2003 创建visual c++项目 里为什么没有“智能设备应用程序”这一项呢,其他的项目里为什么有呢?难道VS.NET 2003 里就不能创建c++的项目吗?
2、eVc4.0 + SP4 的标准模拟器为什么没有支持中文显示的映象文件,或者那个中文映象包下载的?弄的我用eVc写一个程序不能显示文字。
但是VS.NET 2003 的那个标准模拟器却支持中文。但VS.NET 2003 它有没有编译eVc 工程的功能!?
前来请教!
我的MSN :ljh_0110@hotmail.com
QQ : 41604333
E-MAIL: ljh_0110@163.com
期盼!
可以跟你取得联系吗?有一些问题想向您请教。
我的QQ:57487556
应该怎么解决呢...
我的qq 79609111
msn jackwang0728@hotmail.com
我想用evc,但是安装sp4后不能运行阿。错误是:
no CE platform SDK installed on the desktop
我因该安装什么?
我邮箱是boxsc@163.com, QQ是13863593.
谢谢~~~~~~
请问:我用VS2003开发的Windows CE程序,为什么在模拟器上能运行而在设备上总是提示:不是有效的Windows CE应用程序!!期待中................................
Answer:我想大概是因为你开发的WINCE程序没有把mfcce400.dll编译进去。有问题一起探讨:zhanghg@amoi.com.cn
whirlsun@163.com
原来我选错了 CPU。 呵呵
我装好eVC4.0后,在里面建立好一个"Hello World"工程。编译。程序没有错误,但是弹出一个ERROR的窗口,大概意思是说我建立的工程不能在模拟器上运行。要我另外再装和标准SDK兼容的SDK。当我点运行的时候可以connect...并且弹出window CE.net.
我想请问,是不是我还要装smartPhone or Packet pc的SDK?我的程序在WINODWS CE。NET 上不可以运行吗?
请赐教。
我的E-Mail:fupng@hotmail.com
error in starting activesync connection
不知道什么原因
很是头痛
错误,把杀毒软件卸载了还是不行,ms有一篇文章说是因为防火墙的原因.可是我的机子没有防火墙呀,还有其它什么原因吗
您好!
我是一个.NET的新手,现在在用C#.net开发PPC的软件。我最近装了Visual Studio 2005 Beta2,但是没办法将开发的程序部署到我的PPC中,报错说"The current version of ActiveSync is not supported. Install the latest version from www.microsoft.com."。但是,我到微软的网站下了ActiveSync3.8,安装了以后,仍然是报错。
您知道怎么解决这个问题吗,ActiveSync3.8应该是最新的版本了吧?
非常感谢!
我的E-mail: wisent@126.com
但是我查了一下资料应该使用CabWizSP编译!如何修改系统!2,另外我在调试时只要有菜单就会无法部署,把菜单(mainMenu)删除又能部署!
实在是头晕脑胀,望大侠指点!我用的是VS.2003 C#,模拟器都能够成功连上!
顺便提醒一下不能够连接的朋友:要安装Connect Emulator with ActiveSync这款工具软件,而且要由其中的连接工具启动模拟器,同时要有网卡(没有就用环路器或虚拟网卡),而且不能够有任何杀毒软件,要不然就会提示“关键服务无法开启...”有时侯会连上,但是看不见,没关系多试几次!-----------------这也是俺的经验,搞了N天才连上的!我的问题如果有谁知道一点要不吝惜赐教呀!
如蒙不弃,希望能分享您的考试经验。不过不论如何也希望与您交个朋友。
热切期待您的来信。
热切期待您的来信。
热切期待您的来信。
热切期待您的来信。
热切期待您的来信。
热切期待您的来信。
热切期待您的来信。
----一个.net的忠实拥护者
邮箱:zzffly9@yahoo.com.cn
想装WIN MOBILE
我的安装顺序:
activesync 3.7
eMbedded Visual c++ 4.0
VS.net 2003
pocket pc 2003
smartphone 2003
Windows Mobile Developer Power Toys(包括:Connect Emulator with ActiveSync,WindowsMobilePowerToys)
可是我用VS.net 2003对emulator进行连接时老出现错误:error in starting activesync connection
本人用想用sp做一个网络游戏,
目前遇到一个问题,
就是不能自动连接网络
请高手指教
想搞这方面 希望认识你
MSN edaier@hotmail.com
现在模拟器可以ping到pc得ip,但是pc却ping不到Pocket PC 2003。
因为要在外部调用Pocket PC 2003上面的web server,请问是不是设置有什么问题
或者其他的问题!
fansihong@hotmail.com
zhenhec@yahoo.com.cn
另外,可以获得你的msn或者email吗?我刚入门,很想多结交一些这方面的高人,我的msn ahfei2000(at)msn.com
因为你的程序要使用到.NET CF,所以从理论上来说,要比那些native的程序相对载入得慢。但以我的开发经验来看,这种速度上的差异并不够明显,而且更多地是表现在第一次使用基于.NET CF的程序之时。当.NET CF的CLR引擎已经运行过之后,这一速度就会大大提高了。
我用VS2003+sdk用c#弄了个简单的UI程序测试,发现我的程序在手机中启动比较慢,要等几圈才启动,而其它软件都比较快,是否smartphone中的.net程序就是这么慢的?
不知你指的是不是Smartphone。如果是的话,的确如此。目前SQL Server CE 2.0和SQL Server 2005 Mobile Edition (beta)均不支持Smartphone,微软给出的官方解释是在Smartphone的下一代版本中将会给SQL Server 2005 Mobile Edition予支持。
目前已经有一些第三方厂商就Smartphone开发出可用的数据库产品。开发人员也可以使用Xml、CSV、甚至txt等平面/结构化文件的方式来存储数据。
mail:duan.gan@gmail.com
已经给你发邮件了。
我的Email:skyline_forever@hotmail.com
我对你过MCSD For .NET非常钦佩,希望可以探讨一下,我决心把这给过了,如果不上培训班可以吗?
希望您看到回复能给我一个回复,谢谢!