`
mmdev
  • 浏览: 13255266 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Windows Phone开发工具初体验

阅读更多

作者:马宁

这是为《程序员》4月期写的文章,是在《双重惊喜——Windows Phone Developer Tools初体验》的基础上增加了一些内容,包括WebBrowser空间、MediaPlayer空间,还有一个非常简单的XNA程序。希望对Windows Phone开发有兴趣的朋友有一些帮助。

Windows Phone开发工具在MIX 2010上火热登场了。Windows Mobile开发者们压抑许久的热情终于爆发出来,对于Windows Phone的华丽转身,开发者们褒贬不一,有人对Silverlight XNA等新技术充满期待,有人对放弃以前版本兼容性、不支持C++开发满腹怨言。

无论如何,Windows Phone为我们带来了新的用户体验、新的开发工具,总比让开发者守着Windows Mobile的老面孔,一起慢慢变老,要好吧?下面,就让我们看看Windows Phone开发工具会为开发者们带来哪些惊喜,呃,或者惊讶。

Windows Phone开发工具的社区预览版(CTP)可以在MSDN上下载。其中包括Visual Studio 2010 Express for Windows Phone, Windows Phone模拟器, Silverlight for Windows PhoneXNA 4.0 Game Studio。目前,Windows Phone开发工具只能安装在Windows 7Vista SP2上,还需要显卡支持DirectX 10

打开VS 2010后,我的感觉喜忧参半,喜的是Windows Phone提供了两种不同的开发平台:Silverlight for Windows PhoneXNA 4.0,忧的是,以前Windows MobileC++.NET Compact Framework都用不上了。所以,以前的Windows Mobile程序员也要经历一个痛苦的转型过程。

接下来,我们就看看Windows Phone带来的双重惊喜吧!

Silverlight for Windows Phone

Silverlight for Windows Phone险些沦为一个笑话,Windows Mobile程序员在抱怨,Symbian上的Silverlight都出来了,Windows Mobile上的Silverlight在哪里?这次,Silverlight for Windows Phone来了,而且所有Windows Phone上的应用必须用Silverlight来写。

Silverlight最大的优势在于与Expression Blend的无缝整合,可以快速设计出非常漂亮的用户界面,将程序员从繁琐的UI开发中解放出来。而且Silverlight for Windows Phone不再是Silverlight的子集,而是支持Silverlight的全部功能。这样的好处是,已有的Silverlight程序很容易移植到Windows Phone手机上。

在程序菜单的XNA Game Studio 4.0下打开VS 2010,创建一个新工程,在Visual C#下找到三个模板,选择”Windows Phone Application”

不知道Phone List Application是啥,看起来Windows Phone的界面会以List为主了。点击OK后,会直接进入IDE的主界面:

似曾相识,左边是工具栏,可以拖拽控件到UI设计器上,与XAML界面对应。根据示例程序,我准备编写一个浏览器和媒体播放器,首先是从Toolbox中将MediaElementWebBrowser控件拖拽到UI设计器上。

为了播放多媒体文件,我们还要在Solution Explorer里将wmv文件添加到工程里。做法和Windows Mobile工程一致,选择Content类型,wmv文件会和工程一起发布。

接下来就是编写代码了。MediaElement组件需要设置Source属性,然后调用Play方法。而WebBrowser选择Navigate方法来访问指定网站。

private void button1_Click(object sender, RoutedEventArgs e)

{

textBlockListTitle.Text = textBox1.Text;

if (Convert.ToBoolean(checkBox1.IsChecked))

{

webBrowser1.Visibility = Visibility.Collapsed;

mediaElement1.Visibility = Visibility.Visible;

// play Video

mediaElement1.Source = new Uri("Wildlife.wmv", UriKind.Relative);

mediaElement1.Position = TimeSpan.FromMilliseconds(0);

mediaElement1.Play();

}

else

{

mediaElement1.Visibility = Visibility.Collapsed;

webBrowser1.Visibility = Visibility.Visible;

// Browser

webBrowser1.Navigate(new Uri(textBox1.Text, UriKind.Absolute));

}

}

代码编辑完成后,选择Windows Phone Emulator作为目标设备。直接按F5Windows Phone Emulator会被启动。

Silverlight for Windows Phone类库中增加了很多Phone独有的功能。Microsoft.Phone的命名空间下,包括Phone、电话本、电子邮件、CameraBing地图、Marketplace、浏览器和搜索等功能。Microsoft.Device.Sensors中包括各种各样的传感器,其中包括重力感应。Silverlight中还包括了LocationPush Notification等独有功能。

我的程序运行起来就是下面这个样子。程序带有强烈的Zune风格,不但有标题,而且还有明显的Block List Title。另外就是输入法,带有明显iPhone的痕迹,不过对电容屏的支持看来不是问题了。

我还没有仔细看Windows Phone Emulator的实现机制,不过从启动速度来看,绝对不是把整个Windows Phone放在模拟器里执行了。原来Windows Device Emulator那个基于三星2410的小身板估计也跑不起来。反正也是Managed Code,估计又是JIT编译那套。恍惚间,仿佛回到了Pocket PC 2002的年代。

Windows Phone新界面

既然把Windows Phone Emulator起来了,我们就顺便参观下Windows Phone的新界面吧。点左边的Back键,会将应用程序的Debugger断掉,不知道程序是否退出了。点中间的Win Button,会回到主界面。

不过主界面上只有IE一个图标。Windows Phone模拟器中还没有包括其他的系统功能,比如电话、电子邮件、搜索等。模拟器也没有办法模拟重力感应、Location定位服务。希望到Windows Phone开发工具正式发布时,这些系统功能都可以被支持。

IE的用户体验非常好,一开始新手发蒙,没找到地址栏,后边就非常顺利了。无论是页面缩放时的平滑动画,还是输入时切换到适当大小的设计,都非常顺手。特别是Multi-Tab的设计,感觉非常舒服。特意试了Google Map,显示一切正常。智能手机时代,有一个好的浏览器,其实就成功了一半。

哦,还有一点,我在Windows Phone Emulator里没有做任何配置,就可以上网了。

XNA 4.0

在移动开发界,XNA还不是一个响亮的名字,但是在游戏开发界,Xbox 360上的XNA则是泰山北斗级的开发技术。XNA不仅仅是一个.NET的游戏开发平台,还包括了很多支持Xbox Live服务的功能,比如,Avatars技术支持在游戏中显示用户设计的形象。希望这项技术能够和同名电影一样,改变移动游戏开发的历史。

Windows Phone支持的是XNA 4.0,与Zune HD上的XNA 3.1有啥区别?支持3D游戏!目前我们看到的这个XNA 4.0预览版只支持Windows Phone开发,不支持WindowsXbox 360的游戏开发。

Silverlight for Windows Phone是典型的事件驱动型应用程序。而XNA是由时间驱动的应用程序,这也是游戏开发技术的典型特点。每隔固定时间,系统会触发Update事件,使程序得以更新。

不那么多废话了,创建个XNA 4.0的新工程吧!

选择Windows Phone Game就好了。IDE环境下没有界面编辑器,需要程序员通过代码来实现UIXNA程序的结构非常简单,程序员只需要实现几个简单的方法,就可以实现一个简单的XNA程序了。这些方法包括Initialize初始化方法、LoadContent加载文件、Update更新内容和Draw绘制等方法。下面是示例代码片段:

protected override void LoadContent()

{

// Create a new SpriteBatch, which can be used to draw textures.

spriteBatch = new SpriteBatch(GraphicsDevice);

texture1 = Content.Load<Texture2D>("winphone");

texture2 = Content.Load<Texture2D>("winphone");

soundEffect = Content.Load<SoundEffect>("Windows Ding");

spritePosition1.X = 0;

spritePosition1.Y = 0;

spritePosition2.X = graphics.GraphicsDevice.Viewport.Width - texture1.Width;

spritePosition2.Y = graphics.GraphicsDevice.Viewport.Height - texture1.Height;

sprite1Height = texture1.Bounds.Height;

sprite1Width = texture1.Bounds.Width;

sprite2Height = texture2.Bounds.Height;

sprite2Width = texture2.Bounds.Width;

}

LoadContent方法中使用Content.Load方法来加载资源文件,这些文件也是作为资源被加载到XNA程序中的。

protected override void Update(GameTime gameTime)

{

// Allows the game to exit

if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)

this.Exit();

// Move the sprite around.

UpdateSprite(gameTime, ref spritePosition1, ref spriteSpeed1);

UpdateSprite(gameTime, ref spritePosition2, ref spriteSpeed2);

CheckForCollision();

base.Update(gameTime);

}

Update方法负责更新元素的位置,进行碰撞检测。如果后退键被按下,则退出程序。

protected override void Draw(GameTime gameTime)

{

GraphicsDevice.Clear(Color.CornflowerBlue);

// TODO: Add your drawing code here

// Draw the sprite.

spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);

spriteBatch.Draw(texture1, spritePosition1, Color.White);

spriteBatch.End();

spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.Opaque);

spriteBatch.Draw(texture2, spritePosition2, Color.AliceBlue);

spriteBatch.End();

base.Draw(gameTime);

}

Draw方法对更新后的元素进行绘制。

我们的第一个XNA程序会显示两张图片,这两张图片会在屏幕中运行,运行到边缘时,会反弹回来。

写在最后

Windows Phone开发工具不是完美无缺的,比如Visual Studio启动调试程序的时间比较长,希望这是模拟器的问题,在Windows Phone设备上不是这样。

写完这篇文章,心中最多的还是感慨,我们不应该将Windows Phone视作Windows Mobile的升级了,这是一个全新的手机操作系统。Windows Phone的功能可能没有Windows Mobile丰富,但是他赢得喝彩,靠的只有四个字——用户体验。

凤凰涅磐,Windows Phone的路还很长,但是我们这些紧紧追随的开发者们,要得不就是对未来的一丝憧憬吗。

分享到:
评论

相关推荐

    windows phone开发工具在xp中的开发环境安装

    【Windows Phone开发工具在XP中的开发环境安装】 Windows Phone开发主要依赖于微软提供的Windows Phone Developer Tools,这是一款专为Windows Phone应用开发设计的工具集,包括Visual Studio 2010 Express for ...

    windows phone 开发书籍及资料

    Windows Phone开发是一个面向微软移动平台的技术,主要针对运行Windows Phone操作系统的智能手机。在这个领域,开发者可以利用Microsoft的工具和框架创建原生应用,为用户提供丰富的交互体验。以下是一些关于Windows...

    windows phone 开发在线教程

    ### Windows Phone开发在线教程知识点概览 #### 一、Windows Phone平台概述 - **平台背景**:Windows Phone是由微软公司推出的智能手机操作系统,旨在为用户提供一个高效、流畅且与众不同的移动体验。 - **发展历程...

    Windows Phone7开发教程汇总

    开发Windows Phone 7应用程序主要使用的是Visual Studio集成开发环境(IDE),配合C#编程语言和Silverlight技术。Silverlight是一种用于构建富媒体和交互式用户体验的框架,对于WP7应用开发来说,它提供了丰富的图形...

    Windows Phone开发-XNA基础

    ### Windows Phone开发-XNA基础 #### XNA框架概述 XNA是Microsoft推出的一款专为游戏开发者设计的强大框架,尤其适用于2D和3D游戏的开发。它为开发者提供了丰富的API集合,使得创建高质量的游戏变得更加简单高效。...

    .Net全套视频教程之WindowsPhone开发-video

    【.Net全套视频教程之WindowsPhone开发-video】是一套针对Windows Phone平台的开发教程,旨在帮助开发者掌握在.Net框架下构建Windows Phone应用的技能。该教程涵盖了从基础到进阶的多个方面,包括使用XAML进行界面...

    Windows Phone7 完美开发征程 PDF完整版

    - **Windows Phone SDK**:该软件开发工具包包含了必要的库文件和模拟器,是进行 Windows Phone 应用开发的基础。 #### 三、Windows Phone 7 应用程序架构 Windows Phone 7 的应用程序主要基于 Silverlight 和 XNA...

    ArcGIS for Windows Phone开发教程

    - **基础概念**:ArcGIS Runtime SDK for Windows Phone 是一款基于 ArcGIS Server REST API 构建的应用程序开发工具包,旨在帮助开发者轻松创建地理信息系统 (GIS) 应用。 - **REST API 原理**: - **REST...

    Windows Phone 程序开发高级设计 第3版(英文版电子书)

    《Windows Phone程序开发高级设计 第3版》是针对Windows Phone平台深入探讨应用程序开发的专业书籍,主要面向有经验的开发者,旨在提升他们在Windows Phone应用开发领域的技能。本版本为英文版,适合那些希望拓宽...

    windows phone开发介绍

    - **开发工具**: 使用Visual Studio作为主要开发工具,内置了Windows Phone Developer Tools,支持快速构建、调试和部署Windows Phone应用。 - **部署过程**: 包括开发(Develop)、调试(Debug)、提交(Submit)、...

    深入浅出Windows Phone 8.1应用开发(Runtime框架)_源代码

    MVVM是Windows Phone开发中常用的设计模式,它分离了UI和业务逻辑,使代码更易于维护。数据绑定则是MVVM的核心,它使得UI和数据模型之间的交互变得更加简单。 7. **第15章** - 可能会涉及到传感器和设备交互,如GPS...

    windowsPhone开发课件

    此外,微软还提供了一个名为Windows Phone SDK(软件开发工具包)的配套工具,它包含了模拟器、调试工具和其他必要的组件,使开发者能在没有实际设备的情况下进行开发和测试。 课程可能涵盖以下核心知识点: 1. **...

    Windows Phone7完美开发征程完整pdf

    3. **Visual Studio Integration**: Windows Phone 7开发紧密集成于Visual Studio,提供了强大的调试工具、模拟器和生命周期管理功能,帮助开发者轻松构建、测试和发布应用。 4. **Marketplace**: 微软的Windows ...

    Windows Phone开发知识锦集

    在Windows Phone开发中,首要掌握的是Microsoft的开发工具——Visual Studio。这款强大的IDE提供了完整的Windows Phone项目模板,使得开发者可以方便地创建、调试和发布应用程序。学习如何设置项目环境,配置目标...

    windowsphone开发范例

    本资源包“windowsphone开发范例”提供了一系列实际的示例,旨在帮助初学者快速上手。以下是对这些范例的详细解读: 1. **开发环境与工具**:Windows Phone应用开发主要依赖于Microsoft的Visual Studio IDE,它集成...

Global site tag (gtag.js) - Google Analytics