特点
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并没有什么特别含义 (是不是和GNU很像:GUN's Not UNIX) |
一般的建议是,使用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。
Marketplace会强制验证,确保Silverlight和XNA没有混合使用 |
HTML,CSS和JavaScript
这确实是可以用来开发WP7应用的第三种方式。在一个Silverlight的应用中,嵌入一个web浏览器控件,在这个控件里面,你就可以混合使用HTML,CSS和JavaScript来开发整个应用了。通过一些C#代码,你甚至可以在你的HTML UI中发起电话呼叫。
我能使用HTML5吗? |
我能使用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之前使用真机来测试你的程序。
Windows Phone Developer Tools中的模拟器在大多数情况下都很好用,但是还是有些是它没有模拟到的:
➔没有提供测试传感器的方法。(WP7.1中已附带)
➔没有提供模拟多点触摸的方法,除非你有台多点触摸的PC或者使用第三方的技术。
➔不能测试摄像头,只能提供内置的图片。
➔没有实现外部交互时需要的所有的功能,比如发送邮件。
➔没有实现内置的程序,可以用来学习标准应用的样式和习惯。
➔没法测试收音机功能。
如果只使用模拟器,你没法预知应用运行在真机上的表现 |
对我而言,在真机上跑我的应用可以确定哪些触摸的目标,不会太小,太近或者太靠近屏幕边缘。当我开发一款撞球游戏的时候,直到我在真机上进行了测试,才意识到用户的手指会挡住屏幕上的重要信息。总而言之,向Marketplace提交只在模拟器上测试过的应用是非常危险的。
当使用模拟器进行开发的时候,记得保持模拟器始终都是打开着的。你改动程序的时候也不需要关闭模拟器。启动模拟器相当的慢,如果你一直开着模拟器,重新发布和测试你的应用只需要1-2秒。 |
在大多数情况下,模拟器用起来都很简单。这里还有些很好用的快捷键: |