在Windows Phone 7的开发中,不可避免地需要使用到很多方面的技术和资料。轩辕在这里给你总结下Windows Phone 7开发中对你有帮助的开发框架、控件和开源项目,以便以后的学习和开发过程中作为参考。
Neurons是一个聚合了TED Talks, The RSA ,FORA.tv 和Science Dump几大栏目的的多媒体软件,我们可以通过该客户端查看视频信息、观看视频,还可以将喜欢的视频分享到facebook和twitter等社交平台。
目前Neurons已经登录微软软件商店,作为一个国际的雷锋同学,Neurons的作者已经开放了其源代码。这是非常难得的,有兴趣的同学可以下载学习下。
Be a Martian是美国国家宇航局(NASA)开发的一个WP7项目,我们可以通过该软件探索火星的山脉、卫星图,此外该软件还包含了一系列关于火星的知识,致力于成为火星公民的你们可以把玩把玩。这款应用也已经在微软软件商店上架,大家可以下载这个项目看看美国国家宇航局的项目开发实力。
MSDN Code Samples for Windows Phone 7
MSDN上为大家提供了一个学习WP7 API的入口,我们可以通过下面这些示例切入WP7的开发:
1.Music + Videos Hub Sample
2.Panorama/Pivot Sample
3.Tilt Effect Sample
4.Bing Maps Sample
5.Globalization Sample
6.Settings Sample
7.Weather Forecast Sample
8.Photos Sample
9.Splash Screen Sample
10.Mini-Browser Sample
11.Application Bar Sample
12.Location Service Sample
13.Accelerometer Sample
14.Hello XNA Framework Sample
15.Reactive Extensions Location Service Emulation Sample
Silverlight for Windows Phone 7 Toolkit
最出名的第三方当属微软之家的Silverlight for Windows Phone 7 Toolkit了,它包含下图所示的10个控件。这里轩辕之所以重点推荐是因为该控件集是开源的,致力于控件开发和界面设计的程序员可以重点研究下内部实现。
Microsoft Silverlight Media Framework
该框架已经支持 Windows Phone 7平台了,提供了WP7的视频播放控制、在线流媒体播放、字幕,播放列表等等。
目前已经有一些项目使用了该框架作为项目的流媒体播放器,据轩辕所知的就包括WP7版的PDC10会议程序。
MVVM Light Toolkit
MVVM Light Toolkit是一个支持WP7/Silverlight/WPF的MVVM框架,它提供了VS和Blend的模板及智能感知的支持。
Caliburn.Micro也是WP7上的一个MVVM框架,它支持导航, 墓碑机制、Actions等特性。
一个Silverlight版的3D框架,目前已经支持WP7。有需要3D呈现效果的同学可以参考下该框架。
该项目附带了一个实用的多点触控库,让我们可以在Windows Phone 7模拟器上也可以仿真实际设备上的多点触控效果。
Microsoft Silverlight Analytics Framework
这个框架集成了多个数据统计服务,比较出名的有Google Analytics。目前Microsoft Silverlight Analytics Framework也支持WP7了,下面是该框架具体支持的服务和平台清单。
Microsoft Advertising SDK for Windows Phone 7
Microsoft Advertising SDK for Windows Phone 7引入了一个广告控件,这样我们就可以在WP7开发的应用程序和XNA游戏中加入广告,用展现的次数来获得收入。这样对于国内玩家倾向于免费的国情来说,未尝不是一种好的选择。
Windows Phone 7 菜鸟路——入门
接触这个平台已经有一段时间了,由于基础比较低,走了不少弯路。现在就把自己入门的经验分享出来,给之后像我一样基础较低的人一个参考。
1. 准备
A Windows Phone Developer Tools RTW
l 在线安装包
l 离线安装包(推荐)
B Windows Phone 7 Training Course
C SilverLight 4 脱机文档
注:WP7使用SilverLight 3,但是SL4脱机文档向下兼容,所有适用于WP7的内容,文档中都有所标记。
2. 参考资料
A MSDN Windows Phone 7中文开发中心
http://msdn.microsoft.com/zh-cn/windowsphone/default.aspx
注:MSDN上有一篇文章与此内容相关——Windows Phone 7精品实验文档推荐;同时该内容包含上面1.B的“Windows Phone 7 Training Course”。
B 一些资料集合
l Resource for Windows Phone 7(微软亚洲研究院整理发布)
http://blog.sina.com.cn/s/blog_6c72aa3d0100mvut.html
l Windows Phone 7常用资源大集合(姜泳涛整理发布)
http://blog.csdn.net/jiangyongtao/archive/2010/10/19/5952294.aspx
l Windows Phone 7 开发资源大全(来自CNBlogs)
http://www.cnblogs.com/imobiler/archive/2010/12/11/1902845.html
注:以上文章各自内涵大量资料链接,同时有部分重叠;下文中笔者会从中挑选出来部分链接。
C Silverlight for Windows Phone Toolkit
http://silverlight.codeplex.com/
关于微软技术的开源资料,本链接提供了一些非官方的额外控件,在下文提到的Windows Phone 7 开发 31 日谈——第21日:Silverlight Toolkit for Windows Phone中对其有详细介绍;关于非官方控件,张崟的Windows Phone 7 第3方控件集概览很值得参考。
D Free ebook: Programming Windows Phone 7, by Charles Petzold
http://charlespetzold.com/phone/index.html
Windows Phone 7领域内最经典的书之一,你可以免费获得它的电子版。感谢作者Charles Petzold。文章由英文撰写,但是其语言浅显易懂。推荐所有WP7开发者,花费一段时间将其全本阅读。
注:关于WP7的书籍,Jake Lin曾在早些时候写过一篇文章,推荐一看 http://www.cnblogs.com/procoder/archive/2010/07/22/Windows-Phone-7-Books.html。
3. 入门学习
笔者掌握了很粗浅的C/C++语法知识,懂一点MFC。假设您跟我有一样的知识储备。
A 首先,我从上文1.B TrainingKit入手,按照实验文档中的内容一步一步完成。
这部分可以学到三点:
l 首先是对整个开发环境(包括对VS2010,Expression Blend 4工具;对SilverLight,C#语言)的一个初步印象
l 对一些WP7的基本知识有一个简单的概念
l 对简单WP7应用开发流程有初步了解
B 假如你同我一样,在上面的练习中,被各种代码段搞得一头雾水。通过研读下文入门也是不错的方法:
Windows Phone 7 开发 31 日谈 (31 Days of Windows Phone 7)
Jeff Blankenburg著,张崟译。每一篇文章都较为短小精悍,同时附有示例代码。
C 如果还是觉得看起来头大的话,林永坚(Jake Lin)出品的
《Silverlight for Windows Phone开发》系列视频
形式独特,内容丰富,并且在不断更新中。
现在进入正题,我在CodePlex网站中精心挑选了一些与Windows Phone 7相关的开源项目,这些项目对我们开发人员来说是宝贵的资料,从中可以学习很多知识。我选择的这些项目都是Stable版的,可以直接用在项目当中,列表如下:
Open Data Protocol:此框架现在已经支持Windows Phone 7,更多的信息可以参见http://www.odata.org/。
Microsoft Silverlight Analytics Framework:这个优秀的Web扩展分析框架现也已支持Windows Phone 7了。
Silverlight for Windows Phone Toolkit:我在这篇文章中已经介绍过了,官方出品的开源控件库,详情可以参见这里。
Microsoft Silverlight Media Framework :Silverlight中大名鼎鼎的开源媒体播放框架,业已支持Windows Phone 7。
Silverlight SharpZiplib:从C# library SharpZiplib移植而来的Silverlight压缩库,支持Windows Phone 7。
Visifire:著名的Silverlight图表控件,支持Windows Phone 7,我也在这里介绍过了。
patterns & practices Windows Phone 7 Developer Guide:这是微软官方的模式与实践的社区站点。详情请参见我的这篇文章。
UnitDriven:这是一个跨平台的CLR测试框架。它允许你编写一个可以在Silverlight,,Windows Phone 7和其他.NET平台中同步或异步运行的独立测试。
HugeFlow MVVM Library:这个框架可以使你更轻松地在Silverlight或Windows Phone 7应用程序中运用MVVM模式,同时它可以与Expression Blend进行交互。
CodeTitans:CodeTitans代表了一系列的类库,包括JSON@CodeTitans,它可以使你更轻松地使用JSON库,还包括IoC@CodeTitans,一个很有特点的反转控制的实现,这个类库可以用于.NET 2.0+,.NET CF 2.0以及Mono 2.0+,当然还有Silverlight和Windows Phone 7。
MVVM Light Toolkit:这是一个支持Windows Phone 7/Silverlight/WPF的MVVM框架,由微软的MVP Laurent Bugnion提供,此框架还提供了Visual Studio和Expression Blend的模板及智能感知支持。
Daenet:这是.NET Compact Framework和Windows Phone 7平台上第一个支持RSS 2.0 和Atom 1.0聚合反馈的类库。
Windows Phone 7 Multi-Touch Manipulation:该项目附带了一个实用的多点触控库,并实现了惯性效果和单手转动,即便在Windows Phone 7模拟器上也可以模仿实际设备上的多点触控效果(前提是你的电脑能识别多点触摸)。
Independ:Independ是一个Windows Phone 7平台上的轻量级依赖注入容器。
ESRI ArcGIS Silverlight Toolkit:这个项目是ArcGIS API的Silverlight/WPF扩展,目前已经支持Windows Phone 7。它包含了大量控件,小部件和工具。
WriteableBitmapEx:这是Silverlight中WriteableBitmap类的一系列扩展方法,支持Windows Phone 7平台。
Windows Phone 7 Accelerometer Simulator Kit:这是一个可以在Windows Phone 7模拟器中体验重力感应器的类库。
WP7 GPS Simulator:通过使用这个项目我们可以在Windows Phone 7模拟器或设备中模拟GPS数据。
Bewise Phone Controls:为Windows Phone 7开发人员提供了大量的控件,组件和工具,它同时支持Silverlight for Windows Phone和XNA平台。
Quebec:这个项目包含了很多Silverlight,WPF和Windows Phone 7平台的扩展工具。就Windows Phone 7而言,包含以下内容:
l Quebec.Phone
l Quebec.Phone.Animations
l Quebec.Phone.Behaviors
l Quebec.Phone.Controls
l Quebec.Phone.Converters
l Quebec.Phone.Extentions
l Quebec.Phone.Transitions
l Quebec.Phone.Utilities
下面是一些开源的程序,可以作为例程,供我们学习:
Fake Call for Windows Phone 7:这个程序可以生成假冒的来电从而可以让你在开会时找个理由离开或者退出一场无趣的辩论!很好玩儿的程序,由Coding4Fun团队提供。
Windows Phone 7 Neurons app:这是一个聚合了TED Talks, The RSA ,FORA.tv 和Science Dump几大栏目的的多媒体软件,可以通过该客户端查看视频信息、观看视频,还可以将喜欢的视频分享到facebook和twitter等社交平台。
PicFx:PicFx是一个提供图像效果的Windows Phone 7程序。用户可以从图片库或照相机中获取图片。然后在图片上应用效果再保存到媒体库中。程序的UI使用了Pivot模板,包含了很多图像效果,同样由Coding4Fun团队提供。
Tally Marks for Windows Phone 7:Tally Marks是一个计数应用程序。可以用它来数任何你想数的东西,比如有多少人开会,从酒店房间到会议室有多少步等等。
Gas Mileage for Windows Phone 7:它可以让你在手机上查看你的车子每英里汽油的消耗量。很有趣的小程序!
Windows Phone 7 Analog Clock:一个Windows Phone 7平台的模拟时钟。