前言
前 言
2003年4月,作为Microsoft Visual Studio .NET 2003产品的一部分,Microsoft发布了.NET Compact Framework的1.0版。.NET Compact Framework将托管代码的优势带到了移动设备上,类库进行了精简,执行引擎也为基于Microsoft Windows CE的操作系统进行了优化。不是桌面框架的所有功能.NET Compact Framework都支持,但那是专门为使用电池的小型设备所设计的,大多数移动应用程序开发者认为1.0是一个非常好的产品。智者千虑,必有一失——如今,在.NET Compact Framework小组中,“DateTimePicker”变成了“any dumb decision to leave out an essential feature”(不明智的决策会忽视重要功能)的代名词,例如:“Is that a DateTimePicker feature?”
2005年11月,与Visual Studio 2005一起,.NET Compact Framework的2.0版发布。这个核心版本添加了许多新功能,实现了一些1.0版缺少的一直困扰着开发者的功能(包括前面所说的DateTimePicker控件)。虽然一些大型企业通过.NET Compact Framework 1.0构建了功能强大的应用程序,但新版本的改进、性能的提升和广泛的适用性(能够适应于不同厂商硬件的设备)使其越来越适合企业级应用程序的开发。
本书将重点放在.NET Compact Framework 2.0托管代码的开发上,这个框架支持运行Windows Mobile 2003或更新版本的Pocket PC设备、运行Windows Mobile 5.0和更新版本的Smartphone设备,以及定制的运行Windows CE 4.2和更新版本的硬件。本书讲解了针对设备的托管应用程序编程接口(API)编程(例如,运行于Windows Mobile 5.0的Microsoft.WindowsMobile API)。还对Microsoft SQL Server 2005 Compact Edition编程做了介绍——一个既可以运行在设备上,也可以运行在桌面计算机上的轻型关系数据库。
如果您刚刚成为移动应用程序开发者,欢迎您来到这个充满活力与激情的开发者社区!几年前,microsoft.public.dotnet.compactframework新闻组是.NET Framework新闻组第二繁忙的(有时甚至比microsoft.public.dotnet.framework还要繁忙)!可以以两种方式来诠释这个结果:一方面,可以表明构建.NET Compact Framework应用程序的人很多,而另一方面,人们频繁地提出问题,或许说明他们发现那很难使用!虽然,这两方面原因可能都存在,但本书的出现很有希望从某种程度上削弱后者。
本书适合哪些读者
本书适用于刚刚接触或已经接触过移动应用程序的开发者,但要有一定的.NET Framework(桌面版或精简版)应用程序开发经验。如果您对.NET完全陌生,我们推荐您开始时在下面两本书中选择一本:John Sharp的Microsoft Visual C# 2005 Step By Step与Michael Halvorson的Microsoft Visual Basic 2005 Step By Step (都是由微软出版社出版①)。它们会使您掌握基本的编程技巧,让您可以更充分地利用本书揭开移动应用程序开发的 面纱。
如果您是一名有经验的开发者,使用过.NET Compact Framework 1.0开发移动应用程序,或者有.NET Framework 1.x或2.0桌面应用程序开发经验,那么,本书会帮助您快速上手.NET Compact Framework 2.0应用程序开发,还会带您了解一些.NET Compact Framework 3.5的新功能(与Visual Studio 2008一起发布,代号“Orcas”)。
本书不介绍所有控件和语言的功能,而是将重点放在.NET Compact Framework 2.0版本的新功能上,这样,有过1.0版本开发应用程序经验的开发者会更容易发现这些新功能,帮助他们构建新的应用程序。然而,本书的主要目的是提供一些基本信息,帮助您更好地设计与构建针对受限设备(例如,Pocket PC、Smartphone或嵌入式硬件)的应用程序。它会告诉您如何对应用程序进行构建与调试,如何设计运行在小型设备上的图形用户接口(GUI,也称界面),如何部署应用程序。针对某些移动设备应用程序所特有的问题,它也进行了详细的探讨,例如,如何设计与构建工作在不可靠、低速网络连接上的应用程序(正是拥有电话功能的移动设备要处理的常见问题)。这是一本为移动开发者准备的宝典,解释了移动应用程序开发者会遇到的一般性问题。
本书的组织
本书分为三部分。
* 第Ⅰ部分“移动应用程序开发基础”包含6章。每章都很重要,是所有移动应用程序开发者的“必修课”。
第1章介绍了.NET Compact Framework,讲述了为智能设备构建应用程序所需使用的工具。第2章解释了如何针对个人数字助理(PDA)和Smartphone构建优秀应用程序。第3章扩展了这个主题,讲解了如何将数据存储在设备上的SQL Server 2005 Compact Edition数据库中,如何创建绑定到数据上的图形用户界面。第4章将介绍如何在实际设备和仿真器上对程序进行测试和调试,如何发现和处理运行时错误。第5章将介绍如何创建良好性能的应用程序,与桌面应用程序相比,设备应用程序更需要管理RAM和存储。第6章重点介绍打包与部署,Visual Studio 2005使构建安装程序包的过程变得非常简单,这样您可以将应用程序部署在目标设备上。
* 第Ⅱ部分“移动应用程序高级开发”包含10章,剖析了目前运行在智能设备上的应用程序存在的一些特殊问题。
内容包括如何与后端服务器进行数据交换,如何使存储在设备上的本地数据副本与位于服务器上的主副本进行同步。网络连接也存在着一些问题,因为移动设备一般会配备许多不同类型的网络硬件(包括通用串行总线(USB)连接、WiFi、蓝牙和移动电话网络),但往往可能所有的网络都无法使用。有两章专门介绍各种网络编程及建立可用网络连接的方法。
第10章是关于安全编程的,对于任何软件开发者来说,这都是一个重要的话题,但这里主要面向移动应用程序开发者,他们除了确保设备上重要数据的安全(因为移动设备可能遗失或被盗),还需要确保数据通过公共通信网络(例如Internet)发送的数据安全。第11章讲解了如何使用.NET Compact Framework进行多线程编程,第12章和第13章介绍图形编程。第14章讲解了如何调用Windows CE操作系统底层的本地API,只靠.NET Compact Framework中的API,有些任务是不可能完成的。第15章介绍如何构建用于.NET Compact Framework应用程序中的自定义Windows窗体控件,介绍如何创建易于本地化的应用程序,使之可以适应于不同地域和语言。这部分的最后一章会帮助您挖掘Windows Mobile 5.0托管API和一组移动设备特有的API,后者暴露了系统信息,允许您以编码方式访问数据存储(例如,Microsoft Office Outlook Mobile的联系人、日历和任务列表)。
* 第Ⅲ部分“.NET Compact Framework 3.5新功能”仅有一章内容,它会带您预览Visual Studio下一个版本和.NET Compact Framework 3.5的新功能。这个新版本框架在本书截稿前还是测试版,它基于2.0版构建,添加了数据集合的查询、消息通信、测试和很多令人瞩目的创新功能及改进。
系 统 要 求
需要以下硬件和软件来生成和运行本书的示例代码。
* 操作系统:Windows Vista、Microsoft Windows XP(并安装Service Pack 2[SP2]),Microsoft Windows Server 2003(并安装Service Pack 1)或Windows 2000(并安装Service Pack 4)。
* Microsoft Visual Studio 2005标准版或更高版本。
* Microsoft .NET Compact Framework Service Pack 1或Service Pack 2。如果安装的是Service Pack 1,那么要确保您已下载并安装.NET Compact Framework 2.0 Service Pack 1 Patch,对Visual Studio使用的Compact Framework二进制文件进行升级。如果您在没有进行这个更新的情况下通过Visual Studio 2005运行示例代码,可能会遇到编译错误。
* 如果在Microsoft Windows XP中开发,您还需要:Microsoft ActiveSync 4.0或更新版本。
* 如果在Windows Vista中开发,您还需要以下软件。
- Microsoft Windows Mobile Device Center Driver for Windows Vista
- Visual Studio 2005 SP1
- Visual Studio 2005 SP1 Update for Windows Vista
- Microsoft Device Emulator(“设备仿真程序”)2.0或更新版本(Visual Studio 2005中自带的Device Emulator为1.0版,在Windows Vista上无法正确执行)。如果您安装了任何一个版本的Windows Mobile 6软件开发包(SDK),就无需单独安装Device Emulator 2.0了,因为它会自动为您安装
* Microsoft Windows Mobile 5.0 SDK for Pocket PC和/或Microsoft Windows Mobile 6 Professional SDK。
* Microsoft Windows Mobile 5.0 SDK for Smartphone和/或Microsoft Windows Mobile 6 Classic SDK。
* Microsoft SQL Server 2005 Express(Visual Studio 2005中附带)或Microsoft SQL Server 2005。
* 600?MHz奔腾或兼容的处理器(推荐用1?GHz奔腾或更快的处理器)。
* 对于Microsoft Windows XP,需要256?MB的RAM(推荐512?MB以上)。对于Windows Vista,需要512?MB的RAM(推荐1?GB以上)。
* 显示器(800×600或更高的分辨率),至少256色(推荐1024 × 768真彩16位)。
* Microsoft鼠标或兼容指针设备。
SQL Server 2005 Express Edition的配置
本书的某些章节需要对SQL Server 2005 Express Edition(或SQL Server 2005)进行访问。如果您使用的是SQL Server 2005 Express Edition,请遵照以下步骤,为书中练习所使用的账户授予访问权限。
(1) 使用具有管理员权限的账户登录到Windows上。
(2) 在“开始”菜单上,单击“所有程序”|“附件”|“命令提示符”,打开一个“命令提示符”窗口。
(3) 在这个“命令提示符”窗口中,键入以下命令(区分大小写):
sqlcmd -S YourServer\SQLExpress -E
将YourServer替换为计算机名。
可以在运行sqlcmd命令前,在“命令提示符”窗口输入hostname命令来查询计算机名。
(4) 在“1>”提示下,键入以下命令(包括方括号):
sp_grantlogin [YourServer\UserName]
然后按回车键。将YourServer替换为计算机名,将UserName替换为您将使用的账户名。
(5) 在“2>”提示下,键入以下命令:
go
然后按回车键。如果出现错误消息,确认自己正确输入了包括方括号在内的sp_grantlogin命令。
(6) 在“1>”提示下,键入以下命令(包括方括号):
sp_addsrvrolemember [YourServer\UserName ], dbcreator
然后按回车键。
(7) 在“2>”提示下,键入以下命令:
go
然后按回车键。如果出现错误消息,确认自己正确输入了包括方括号在内的sp_addsrvrolemember命令。
(8) 在“1>”提示下,键入以下命令:
exit
然后按回车键。
(9) 关闭“命令提示符”窗口。
(10) 注销管理员账号。
示 例 代 码
本书配套代码(包括项目)涵盖了大多数章节的代码和相关示例。本书讨论的所有示例代码都可以到本书的配套内容页面下载,地址如下:
http://www.microsoft.com/mspress/companion/9780735623583/
对本书的支持
我们尽了最大的努力确保本书以及配套内容的准确性,但仍不能确保没有错误。任何错误或增补将添加到微软知识库文章中。
微软出版社在下面网站上对所有书籍及配套内容提供支持:
http://www.microsoft.com/learning/support/books/
问题与建议
如果您对本书或配套内容有意见、疑问或看法,或者通过访问上述站点仍无法解决问题,请通过以下电子邮件地址将其发给微软出版社:
mspinput@microsoft.com
也可以通过邮局寄送到微软出版社,地址如下:
Microsoft Press
Attn: Microsoft Mobile Development Handbook Editor
One Microsoft Way
Redmond, WA 98052-6399
请注意,上述地址不提供微软软件产品的支持。
① 译者注:这两本书的中文版已由清华大学出版社出版,书名分别为《Visual C# 2005从入门到精通》和《Visual Basic 2005从入门到精通》。
??
??
??
??
XIV
Microsoft Mobile移动应用开发宝典
XV
前言