介绍

特点
I wrote this book with the following goals in mind:
➔ To be insanely practical, with examples that you can credibly ship as complete apps
➔ To provide a solid grounding in the underlying concepts in an approachable fashion
➔ To answer the questions most people have when learning Windows Phone development
and to show how commonly desired tasks are accomplished
➔ To be an authoritative source, thanks to input from many members of the Windows
Phone team who designed, implemented, and tested the technology
➔ To help you write apps that look great and follow Windows Phone design guidelines
➔ To help you follow best practices but not shy away from hacks if they’re needed to
get the job done
➔ To not limit the book to the functionality that ships with Windows Phone, but to
also include interesting open source libraries
➔ To optimize for concise, easy-to-understand code rather than enforcing architectural
patterns that can be impractical or increase the number of concepts to understand
➔ To be fun to read!
对许多学习Windows Phone的同学可能会提出的问题进行了解答。
帮助大家编写符合Windows Phone指导方针的APP。
将每一章的重点专注于APP上,而没有刻意使用设计模式。

适合的读者
This book is for software developers of all skill levels who want to write apps for Windows
Phone. It is certainly not just a book for beginners; even developers who are Silverlight
pros and/or Windows Phone pros should be able to get a lot out of it.
This book does not teach you how to program, nor does it teach the basics of the C#
language. However, it is designed to be understandable even for folks who are new to the
.NET Framework and does not require previous experience with Silverlight or with
Windows Phone.
适合于各层次想要进行Windows Phone开发的开发人员。不止适合新手,即使是Silverlight或者Windows Phone的高手,也可以学到很多新东西。
本书不会教你如何编程,不会教你C#基础。但是,即使对.NET FrameWork不熟,以前也没有Silverlight或者Windows Phone的相关经验,也不影响你对本书的理解。

选择一种技术
WP7支持两种开发方式:Silverlight和XNA。

Silverlight最初是设计成Web浏览器的插件,可以快速开发富客户端应用。现在Windows Phone上的Silverlight版本第三版,与PC机上版本类似,只是移除了与手机不相关的一些特性,同时也加入了手机独有的一些特性。

XNA最初是为Xbox设计的。可以实现各种2D,3D的游戏。Windows Phone支持的是XNA 4.0,但是不支持着色器(shaders)。

XNA并没有什么特别含义
    尽管如此,一般都认为XNA是“XNA is Not an Acrinym.”的缩写。

是不是和GNU很像:GUN's Not UNIX

appbar.overflowdots

一般的建议是,使用Silverlight开发应用,使用XNA开发游戏。但也不是必须如此。

使用Silverlight开发游戏
使用Silverlight编写游戏有许多好处,比如可以很方便地使用类似于Facebook或者Twitter之类的服务,可以使用所有的Silverlight标准控件来做菜单,高分榜等等。但如果尝试用Silverlight开发一个复杂的游戏就显得不明智了。3D游戏是个难题,Xbox LIVE的特性只针对于XNA游戏。

使用XNA开发应用
用XNA写非游戏会显得很奇怪。一方面,你不得不重新发明轮子,来编写基础控件。另一方面,目前你也不能在XNA中获取用户的手机主题,使用应用程序工具栏,web浏览器控件等。

Silverlight和XNA混合开发
尽管本书的50个App都是用Silverlight开发的,但其中也使用了不少XNA中的功能,比如使用手机,发出音效等。尽管XNA中不能嵌入web浏览控件,依然可以使用Silverlight中的网络类来发出web请求。到目前为止,唯一的限制在于你不能混合Silverlight和XNA的UI。

appbar.basecircle.rest

Marketplace会强制验证,确保Silverlight和XNA没有混合使用
    即使你找出了在Silverlight应用中使用XNA UI的方法,你的App也无法通过Marketplace的验证。你必须确保你的Silverlight应用中没有引用Microsoft.Xna.Framework.Game.dll和Microsoft.Xna.Framework,Graphics.dll。

HTML,CSS和JavaScript
这确实是可以用来开发WP7应用的第三种方式。在一个Silverlight的应用中,嵌入一个web浏览器控件,在这个控件里面,你就可以混合使用HTML,CSS和JavaScript来开发整个应用了。通过一些C#代码,你甚至可以在你的HTML UI中发起电话呼叫。

appbar.questionmark.rest

我能使用HTML5吗?
    目前还不可以,不过在2011年底应该就可以了。微软会在那个时候发布针对Windows Phone的IE9。

appbar.questionmark.rest

我能使用OpenGL开发游戏吗?
    不能。

软件需求
本书针对的是Windows Phone,所有应用都运行在Windows Phone OS 7.0下。
Windows Phone相关的软件基本都是免费的:
Windows Phone Developer Tools 包括:
Visual Studio 2010 Express for Windows Phone,用于开发Silverlight应用
Expression Blend 4 for Windows Phone,用于设计基于Silverlight的矢量图形,动画和控件模板。
XNA Game Studio 4.0,用于开发XNA应用
Windows Phone Emulator,WP7的模拟器,代替真机来测试你的程序。

点击这里可以下载上面的工具。


硬件需求
你需要一台能运行以上软件的计算机。另外,尽量在上传你的应用到Marketplace之前使用真机来测试你的程序。

appbar.questionmark.rest

作为一个开发人员,我应该购买什么样的手机来测试我的程序
    WP7的美妙之处就在于你不用关心这个问题。抛开外观上的不同,对开发人员来说,各种手机的特性都是一致的。比如说,某些型号的手机拥有更高配置的摄像头,对于使用摄像头的你来说,这些根本不用关心。为了保持一致性,除非你是手机开发商,否则你也不能编写使用了特殊硬件的手机应用。
    各个手机型号之间最直观的区别就在于是否存在物理键盘及其布局。尽管我没有在这些具有物理键盘上的手机进行过测试,但是一旦我学会了它们是如何工作的,这些就没有必要了。第三章中会有讲到相关信息。所以不需要买个具有物理键盘的手机来进行测试。模拟器已经能很好地对这种手机进行测试了。
    随着时代的进步,手机也会具备更强力的性能。在最低性能的手机上测试你的应用可以保证它们运行起来足够快。
    尽管WP7的屏幕分辨率都是相同的(480x800像素),但是屏幕的尺寸各有不同。所以当你的应用依赖于物理尺寸时(比如第五章的Ruler),一定要记住这点。解决方法就是在应用中提供校准功能,让用户可以校准自己的设备。

Windows Phone Developer Tools中的模拟器在大多数情况下都很好用,但是还是有些是它没有模拟到的:
➔没有提供测试传感器的方法。(WP7.1中已附带)
➔没有提供模拟多点触摸的方法,除非你有台多点触摸的PC或者使用第三方的技术。
➔不能测试摄像头,只能提供内置的图片。
➔没有实现外部交互时需要的所有的功能,比如发送邮件。
➔没有实现内置的程序,可以用来学习标准应用的样式和习惯。
➔没法测试收音机功能。

appbar.basecircle.rest

如果只使用模拟器,你没法预知应用运行在真机上的表现
    运行在模拟器上的应用会显得时快时慢。尽管你可能确信你对相关的性能已经做了足够的改进,在真机上进行实际的测试仍然是无可替代的。

对我而言,在真机上跑我的应用可以确定哪些触摸的目标,不会太小,太近或者太靠近屏幕边缘。当我开发一款撞球游戏的时候,直到我在真机上进行了测试,才意识到用户的手指会挡住屏幕上的重要信息。总而言之,向Marketplace提交只在模拟器上测试过的应用是非常危险的。

appbar.favs.rest

    当使用模拟器进行开发的时候,记得保持模拟器始终都是打开着的。你改动程序的时候也不需要关闭模拟器。启动模拟器相当的慢,如果你一直开着模拟器,重新发布和测试你的应用只需要1-2秒。

appbar.favs.rest

   在大多数情况下,模拟器用起来都很简单。这里还有些很好用的快捷键:
    F1代表物理上的后退键。
    F2(或者是Win键)代表物理上的Home键。
    Pause键用于切换是否模拟物理键盘。当它激活的时候,你可以直接使用你电脑上的键盘。你也可以用Page Up来打开物理键盘,使用Page Down来关闭物理键盘。

posted @ 2011-08-17 20:33  penbox  阅读(424)  评论(0编辑  收藏  举报