Windows Phone 7.1的开发工具发布了,一直对WP7很关注,现在终于可以开始学习了。其实09年就学习过silverlight,看过3的SDK文档,当时因为工作,断断续续也没有坚持下来,所以这次学习WP7顺便重新学习SL。

上周安装了WP7.1的开发环境,工作之余看了一周文档。目前关于WP的学习文档大多是英文的,chian-pub上出现了一本中文的书,不过还是推荐看MSDN,上面有最新的WP7.1的内容,毕竟7.1进行了较大的更新。我写Windows Phone开发的文章主要是对自己看的文档进行一个提炼和记录,主要针对wp7.1Beta。

一 Windows Phone 学习资料

目前主要的学习资料还是来至于微软MSDN和《Programming Windows Phone 7》,其中MSDN包含了最新的7.1Beta特性的介绍和使用。一些中文网站和原创的BLOG文章基本也是来自这些地方。而MSDN杂志每期有对Windows Phone介绍的文章。关于界面开发可以参考Silverlight开发。

Windows Phone 中文开发中心

Windwos Phone Development

Silverlight for Windows Phone

Phone Platform Development

Windows Phone developer documentation

Programming Windows Phone 7

视屏学习资料

Windows Phone 7 中文开发资料概览

MSDN杂志

二 Windows Phone 开发环境

微软在5月份发布了代号Mango的最新开发工具,Windows Phone Developer Tools 7.1 Beta (点击下载ISO文件)

系统要求:

  • 操作系统:Windows Vista SP2 / Windows 7
  • 硬件要求:4G硬盘空间 3G内存
  • 手机模拟器:DirectX10以上显卡,WDDM1.1驱动

安装准备:

  • 如果没有安装VS2010,可以直接安装Windows Phone Developer Tools 7.1 Beta,他会自带Express版本的VS2010 for Windows Phone
  • 如果安装了VS2010专业版或者更高版本,可以直接安装,但是必须把VS2010的语言修改成同Windows Phone Developer Tools 7.1 Beta相同的语言
  • 如果安装了VS2010 RTM版本,必须先安装VS2010 SP1(点击下载ISO文件)
  • 如果安装了非英文版本的Windows Phone Developer Tools 7.0或 Expression Blend,必须先卸载在进行安装

PS:我之前安装了VS2010中文旗舰版,所以先安装了SP1(安装SP1时第一次到了一半就停住了,后来我查了说可能缺少文件,就把VS2010的ISO也加载到虚拟光驱中然后就通过了),但是因为Windows Phone Developer Tools 7.1 Beta目前只有英文版的,所以安装完成后,并没有在VS2010中集成WP7开发模板,但集成了XNA Game Studio的开发环境;而是安装了VS2010 Express for Windows Phone。

三 第一个Windows Phone 7程序

我们可以看到其中有很多模板可以选择,下面进行简单介绍,具体可以建立相应项目查看

  • Windwos Phone Application: 创建一个普通的Windows Phone应用程序
  • Windwos Phone Databound Application: 创建一个和数据绑定有关的项目,使用列表和导航控件
  • Windows Phone Class Library:创建一个类库项目
  • Windwos Phone Panorama Application: 创建一个全景应用项目,使用全景Panorama控件
  • Windwos Phone Pivto Application:创建一个枢轴应用项目,使用Pivto控件
  • Windwos Phone 3D Graphics Application: 创建一个XNA框架支持的项目(WP7.1可以silverlight和XNA集成)
  • Windwos Phone Audio Playback Application:创建一个音频播放的类库项目
  • Windwos Phone Audio Streaming Application:创建一个音频流的类库项目
  • Windwos Phone Task Scheduler Agent:创建一个后台任务代理项目(WP7.1中新增了后台多任务代理)

选择了项目模板之后,就要选择Windows Phone的开发版本,目前有7.0和7.1可以进行选择。

上图就是WP7的开发环境,如果有开发过silverlight,应该不会陌生。左边是图形的界面环境,其他.NET其他开发环境一样,可以拖控件来布局。而右侧是页面的XAML代码,可以通过编写XAML来布局。关于XAML可以参见MSDN(点击打开)

我们的第一个程序要实现的是点击页面上的一个按钮导航到下一个页面:

1 在MainPage.xaml中添加一个按钮,并且添加触屏事件,代码如下

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">    <Button Width="250" Height="75" Content="Next Page" ManipulationStarted="Button_ManipulationStarted"/></Grid>

2 为项目添加一个新的页面,鼠标右键--ADD--New Item--Windows Phone Portrait Page,名字为Page1.xaml,在次页面中添加一个文本和一个返回按钮,代码如下:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">    <TextBlock VerticalAlignment="Top" HorizontalAlignment="Center" Margin="166,143,178,0">Hello World!</TextBlock>    <Button Width="200" Height="75" Content="Back" ManipulationStarted="Button_ManipulationStarted"/> </Grid>

3 为MainPage.xaml的触屏事件和Page1.xaml触屏事件添加代码(和C#其他项目一样,也是采用code-behind,代码在xaml页面的cs文件中)

//MainPage.xaml
private void Button_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
this.NavigationService.Navigate(new Uri("/Page1.xaml",UriKind.Relative));
}
//Page1.xaml
private void Button_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{ this.NavigationService.GoBack();}

4 编译后点F5运行程序,模拟器第一次启动需要等待(我也没有真机,所以无法进行真机调试)。然后点击Next Page按钮程序将导航进入到第二个界面。第二个界面中点击Back导航回前一个界面。可以发现Windows Phone程序同Web程序页面有点类似,都是Page导航的概念,这个和之前WM平台很不一样。但是使用过WPF或Silverlight就没有什么特别的。

5 进入第二个页面后,点击【<--】按钮也能退回到第一个界面,在点【<--】按钮,就会关闭程序。要注意的是,Windows Phone目前没有提供任何退出程序的Exit方法,都是通过在第一个页面点击【<--】按钮退出程序。在程序中点击中间的Home按钮返回到Home列表,此时程序会进入休眠(WP7.1)或墓碑(WP7.0)状态,这个后面会介绍。

至此我们完成了第一个Windows Phone程序,它很简单,看起来和写一个普通的Silverlight程序没有太大的区别。

四 Windows Phone项目结构

项目建立好之后,包含了以下一些文件:

  • AppManifest.xml : 此文件中包含一个<Deployment.Parts>的节点。如果需要调用XAP文件中包含的其他Assembly的DLL文件,就会在此节点下添加一个<AssemblyPart/>节点来列举这些文件,可以参见这里
  • AssemblyInfo.cs : 这个文件包含了对当前程序集的信息,可以在属性页面进行设置
  • WMAppManifest.xml : 这个文件主要记录了程序的起始页面,APPID,作者,图标设置和程序功能设置。其中<Capabilities/>节点定义了程序的功能,比如ID_CAP_PHONEDIALER表示可以使用电话功能,如果没有这个节点,调用相应功能时就会出错,详细介绍见这里。相对于7.0,7.1增加了对相机,联系人,约会提醒功能。
  • App.xaml : 这个文件App类继承与Application类,它并没有可视化界面,<Application.Resources/>一般用来存放资源数据共全局使用。而<Application.ApplicationLifetimeObjects/>节点下定义了与执行模型相关的一些方法。
  • App.xaml.cs : App类的另一部分,代码包含了程序初始化操作和执行模型相关的一些方法的实现。
  • ApplicationIcon.jpg : 显示在程序列表中的图标,大小为62*62
  • Bcakground.jpg : 在程序启动时显示的图标,大小为173*173s
  • MainPage.xaml : 程序启动后默认显示的第一个页面,用户也可以在WMAppManifest.xml中指定启动页面。
  • SplashScreenImage.jpg : 程序启动时显示的欢迎界面,大小为480*800,这个和设备有关。

以上介绍了一个Windows Phone项目的结构,和Silverlight程序结构很类似。只是配置文件上有些区别。

五 总结

这里完成了Windows Phone 7.1环境的搭建,并完成了第一个Windows Phone程序,对于程序模板和项目结构有了一个认识。下一篇将介绍Windows Phone框架结构,以及程序启动运行方式。

原文地址:http://blog.csdn.net/cc_net/article/details/6552867

Windows Phone开发-开发环境和结构的更多相关文章

  1. windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境

    windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境   http://rongmayisheng.com/post/windows%E4%B8%8B%E7%94%A ...

  2. Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建

    目前,微软针对Windows IoT计划支持的硬件包括树莓派2,Minnow Board MAX 和Galileo (Gen 1和Gen 2).其中,Galileo (Gen 1和Gen 2)运行的是 ...

  3. golang在Windows下Sublime Text开发调试环境的配置

    一.前言 近期本人有工作调动,进入了一个全新的领域[golang]服务端开发.在此写下本文,希望给那些没接触过golang开发调试环境及还在犹豫选择那家golang IDE而纠结的朋友们一点点帮助,如 ...

  4. Lisp学习--Windows下面的开发环境搭建

    很久以前,就准备学习Lisp,但是遇到不少困难,社区太凌乱,也一直很犹豫,直到看了<Common Lisp - 想说爱你不容易>,想看看Common Lisp怎么样,之前都是拿Lisp的方 ...

  5. Windows搭建python开发环境,python入门到精通[一]

    从大学开始玩python到现在参加工作,已经有5年了,现在的公司是一家.net的公司用到python的比较少,最近公司有新项目需要用到python,领导希望我来跟其他同事training,就有了这篇博 ...

  6. 打造理想的Windows 10 APP开发环境的5个步骤

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:微软即将发布Windows 10手机版,实际上很多人现在已经开始在开发Windows ...

  7. 转:WIN7上搭建Windows Phone 8 开发环境——VMware Workstation下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法

    转自:http://www.cnblogs.com/shaddock2013/p/3155024.html 最近在试着在Windows 7上搭建Windows Phone 8的开发调试环境,使用的是V ...

  8. 配置Windows 2008 R2 64位 Odoo 8.0 源码PyCharm开发调试环境

    安装过程中,需要互联网连接下载python依赖库: 1.安装: Windows Server 2008 R2 x64标准版 2.安装: Python 2.7.10 amd64 到C:\Python27 ...

  9. 【转】Windows Phone 8 开发环境的搭建

    1.先安装Microsoft Visual Studio 2012旗舰版,安装包自己下载. 系统必须是Win8 X64 对于软硬件的检测可以参照: Windows Phone 8开发环境搭建之一.电脑 ...

随机推荐

  1. poj2391,poj2455

    这两题本质是一致的: 一般来说,对于最长(短)化最短(长)的问题我们一般都使用二分答案+判定是否可行 因为这样的问题,我们一旦知道答案,就能知道全局信息 拿poj2455举例,对于二分出的一个答案,我 ...

  2. Compass 编译.scss文件的问题

    compass 命令编译scss文件存在一个问题: 不能对"_"下划线开头的scss文件名称的文件进行编译.将"_"去掉就可以啦

  3. ,net运行框架

    .NET FrameWork框架 是一套应用程序开发框架,主要目的提供一个开发模型. 主要的两个组件: 公共语言运行时(Common Language Runtime)(CLR): 提供内存管理.线程 ...

  4. 常用WEB服务器的特点介绍

    经过系统的学习web服务器,现在知道常用的web服务器的优缺点,这对搭建网站架构时选择使用web服务器很有帮助,现在我简单总结一下: 1. Apache:属于重量级web服务器(重量级主要是在软件包的 ...

  5. UVALive Proving Equivalences (强连通分量,常规)

    题意: 给一个有向图,问添加几条边可以使其强连通. 思路: tarjan算法求强连通分量,然后缩点求各个强连通分量的出入度,答案是max(入度为0的缩点个数,出度为0的缩点个数). #include ...

  6. PHP Apache Access Log 分析工具 拆分字段成CSV文件并插入Mysql数据库分析

    现在需要分析访问日志,怎么办? 比如分析D:\Servers\Apache2.2\logs\access2014-05-22.log http://my.oschina.net/cart/针对这个问题 ...

  7. Ehcache和MemCached比较分析

    项目 Memcache Ehcache 分布式 不完全,集群默认不实现 支持 集群 可通过客户端实现 支持(默认是异步同步) 持久化 可通过第三方应用实现,如sina研发的memcachedb,将ca ...

  8. Print the numbers between 30 to 3000.

    Microsoft Interview Question Developer Program Engineers 看到一个题目比较有意思: Print the numbers between 30 t ...

  9. 使用selector修改TextView中字体的颜色

    selector想必大家都用过了,但是在修改字体的颜色的时候还是要细心. 我们在TextView中设置字体颜色一般使用 android:textColor="@color/red" ...

  10. mysql远程连接出现 ERROR 2003 (HY000): Can't connect to MySQL server on IP

    修改了如下两个位置,解决了这个问题: 修改/etc/mysql/my.cof配置文件:因为mysql默认只允许本机连接 修改远程连接用户权限:远程连接的用户被设置为不允许远程连接 首先修改/etc/m ...