Sunday, May 6, 2012

win phone 7

详细见此目录下子页

 
 

一、基础知识总览

2011年8月26日

10:58

 
 

官方教程

 
 

源文档 <http://msdn.microsoft.com/zh-cn/windowsphone/ff955788>

 
 

详细见此目录下子页

 
 

一、介绍篇

2011年8月26日

8:32

 
 

一、手机特性

手机

智能型手机

社交网站

搜寻功能

LBS (Location-Based Service) 适地性服务

视讯播放

音乐播放

游戏开发支持

多点触控控制

windows phone 7

√+微网志

 
 

二、硬件支持

手机

屏幕分辨率

多点触控

A-GPS 卫星定位系统

G-Sensor (Accelerometer)

电子罗盘传感器

光源传感器

Proximity Sensor

数字相机

Codec 与多媒体影音播放功能

RAM

闪存

GPU

处理器

硬件按键

windows phone 7

800 x 480 或 480 x 320

最少 500 万画素

最少 256MB

最少 8GB

ARMv7 Cortex/Scorpion 或更佳

Back、Start、Search 三个

 
 

三、Windows Phone 7 的软件支持

对象:大众 + 企业用户,支持云端服务。

 
 

 
 


图1: Windows Phone 7 的软件支持

上方:显示的是 Runtime(此为应用程序执行时期的支持) 和开发工具

下方:显示的是云端相关的服务

 
 

表:介绍开发工具

开发工具

开发Silverlight Framework

开发XNA Framework

持应用程序侦错与封装

Visual Studio 2010 Express for Windows Phone

Expression Blend for Windows Phone

  

  

除上面两种外,还可以利用 XNA Game Studio 4.0 设计可以适用于 Microsoft Windows、Microsoft Xbox 360、Microsoft Zune、与 Windows Phone 7 的游戏程序。

Microsoft 在提供开发 Windows Phone 7 应用程序的工具的同时,也提供了相关的说明文件,教学文件,论坛,部落格,技术网站,以及丰富的范例程序,协助程序设计师解决开发 Windows Phone 7 应用程序的种种问题。

使用 Expression Blend for Windows Phone 只能开发以 Silverlight Framework 为基础的应用程序,允许 Silverlight 应用程序设计师以熟知的程序开发经验开发 Windows Phone 7 应用程序。

 
 

表:Windows Phone 7 提供了两种 Framework

Framework

主要区别

平台

可移植性

开发区别

Silverlight Framework

以 XAML 文件为基础的应用程序设计概念,透过事件驱动机制的帮助,提供与开发 Windows 应用程序和 Silverlight 应用程序相同的程序开发体验。

NET

Silverlight 应用程序

以 Silverlight Framework 为基础的 Windows Phone 7 应用程序是由一堆的 Page (继承自 PhoneApplicationPage 类别的衍生类别) 组成的,每一个 Page 是一个扩展名为 .XAML 的文件,代表一个操作画面,程序设计师可以利用 Visual Studio 2010 Express for Windows Phone 或是 Expression Blend for Windows Phone 来设计 Page 的用户接口。

XNA Framework

主要的目的则是用来支持以循环为基础的游戏程序,意即利用循环不断地更新画面显示的内容,显示流畅的游戏效果。

NET

XNA 应用程序

XNA Framework 主要的用途在支持开发游戏程序,提供 2D/3D 的动画,音效,及各种游戏相关的功能,协助有志于开发游戏程序的企业或个人发展 Windows Phone、Xbox 360、Zune 播放器、以及 Windows 7 平台的游戏程序。


程序设计师只要稍微修改现有的 Silverlight 应用程序或 XNA 应用程序,例如修改屏幕的高度和宽度,并加入智能型手机特有的传感器相关的功能,就可以将 Silverlight 应用程序或 XNA 应用程序移植到 Windows Phone 7 上执行。

 
 

表:Framework支持的应用特性

  

硬件

媒体播放

档案处理方面

Location 功能

应用支持

多点触控屏幕,传感器,音效装置,以及麦克风等

声音与影片

只能存取位于隔离储存区 (Isolated Storage) 中的档案

支持云端服务提供的 Location整合,协助程序查询装置的实际位置,在装置位置改变时得到通知,判断装置移动的方向和速度或距离。

 
 


 
 

图2:支持开发 Windows Phone 7 应用程序的 Framework

位于最底层的 Common Base Class Library 提供了 Microsoft .NET 平台的基本功能,也是 Silverlight Framework 与 XNA Framework 的基础。

 
 

 
 

Windows Phone 7 应用程序也可以使用到因特网的云端服务,包括 Windows Azure、Xbox LIVE 服务、Notification 服务、Location 服务、以及其他各种第三方提供的 Web 服务和 WCF 服务,甚至是 REST 服务 (Representational State Transfer) 等先进的技术,能够让使用者在使用不同的计算机装置时都可以存取到共同的数据。

 
 

 
 

 
 

二、安装篇

2011年8月26日

8:26

 
 

支持的安装系统要求

Supported operating systems

  • Windows® Vista® x86 or x64, with Service Pack 2 (all editions except Starter Edition)
  • Windows® 7 x86 or x64 (all editions except Starter Edition)

Your operating system must be the ENU edition unless you install one of the localized versions of the Windows Phone SDK. For more information, see Localized Windows Phone SDKs.

Hardware

  • Installation requires 4 GB of free disk space on the system drive.
  • 3 GB RAM

Platforms not supported

  • Windows Server® is not supported.
  • Windows® XP is not supported.
  • Virtual machines are not supported.

Windows Phone Emulator

  • Windows® Phone Emulator requires a DirectX® 10 or later graphics card with WDDM 1.1 driver and DDI 10 or later.
  • Windows Phone Emulator requires GPU emulation to support certain scenarios such as profiling, XNA Framework applications, and displaying content in web browser controls.

For more information, see Setup and System Requirements for Windows Phone Emulator.

 
 

 
 

 
 

一、下载安装开发工具

安装Microsoft Visual Studio 2010(学习版、专业版、高级专业版、旗舰版、专业测试工具版)

 
 

安装Microsoft Visual Studio 2010 SP1,点此处可下载。


 

 
 

下载Windows Phone Developer Tools RTW,打开http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13890

a.下载完整本地安装包(推荐)WPDT_RTM_en1.iso

b.下载网络安装包(程序小,但安装时还要再下载,不推荐 )vm_web.exe

 
 

下载Windows Phone SDK 7.1 Release Candidate,打开http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27153

a.下载完整本地安装包(推荐)WPSDKV71_en1.iso

b.下载网络安装包(程序小,但安装时还要再下载,不推荐 )vm_web2.exe

 
 

安装好zune客户端软件,点此处可下载。主要用于识别手机,将程序从电脑发布到手机上测试。

 
 

二、下载离线帮助页面

打开http://www.microsoft.com/download/en/confirmation.aspx?id=20558,或点这里进行直接下载。


 

二、如何开发

1、 利用 Windows Phone Developer Tools 套件提供的 Visual Studio 2010 Express 进行开发 Windows Phone 7 智能型手机应用程序的工作

2、 将开发妥的应用程序部署到 Windows Phone 仿真器进行测试,如果您想要开发智能型手机的游戏程序,也可以利用 Microsoft Expression Blend for Windows Phone 或 XNA Game Studio 发展 2D 与 3D 的游戏程序。

请注意 Windows Phone Developer Tools 套件只能安装在 Windows Vista SP2 或 Windows 7 计算机,而且皆不可以是简易版 (Starter Edition)。除此之外,欲利用 Windows Phone Developer Tools 套件提供的 XNA Game Studio 4.0 发展游戏程序的程序设计师请特别注意,Windows Phone Developer Tools 套件不支持安装在任何的虚拟机上,同时计算机配备的显示适配器必须符合 DirectX 10 版定义的规格,并配备 WDDM 1.1 版的驱动程序。

 
 

 
 

 
 

三、高级开发篇

Installing the Windows Phone SDK,找到Additional Developer Resources,Silverlight for Windows PhoneToolkit,这里面有提供一些丰富的高级控件。可以点击下载,或使用svn检出https://silverlight.svn.codeplex.com/svn/。

 
 

四、高级安装篇

下载并安装 Silverlight_4_Toolkit_April_2010.msi

这里下载Microsoft Expression Blend Preview for Silverlight 5,可从此处下载,或使用内网下载。

 
 

三、发布篇

2011年8月26日

9:25

 
 

发布到在线商店篇

一、发布在线商店

Windows Phone 7 应用程序开发完成后,程序设计师可以利用 Portal 服务将开发好的应用程序发布到手机在线软件商店 (即 Marketplace),让使用者购买和使用。

1.先使用 Windows Live 账号登入到手机在线软件商店并进入注册

2.注册完成后就可以利用 Portal 服务提供的功能将开发好的应用程序上传到在线软件商店。

3.程序设计师必须将欲上传的应用程序准备成 .xap 格式的压缩文件再进行上传

4.上传成功之后可以查询应用程序的认证状态,并在应用程序通过 Portal 服务的认证之后收到认证信。

5.通过认证的应用程序将会以程序设计师订立贩卖价格发布到在线软件商店供使用者购买和下载。

6.如果程序设计师修正应用程序的错误, 为应用程序添加新功能,或是另外开发新的应用程序,都需要重复相同的应用程序认证程序,才能将新的应用程序或是修改过的应用程序发布到在线软件商店。

7.在 线软件商店除了能够提供程序设计师进行应用程序的销售以外,还有提供 Trial API,协助程序设计师开发试用版的应用程序供用户下载试用。

8.除此之外,在线软件商店也提供完整的销售报告,使用者的回馈意见,用户对应用程序的使用意 见,或是用户反应的应用程序错误等重要信息,供程序设计师参考。

 
 

本地测试篇

一、先决条件

1、将手机连接到电脑

2、电脑软件里Zune准备条件(见下方不需使用此步也可在手机上测试媒体API)

a. 安装好zune客户端软件,点此处可下载。

b.保证zune客户端软件已运行好

c.zune客户端软件能够识别出手机。

 
 

二、将手机注册为允许测试未签名软件

准备:

1、一个 Windows Live ID账号.

2、一个当前有效的App Hub开发者账号

3、在电脑上安装并运行着Zune客户端软件

开始:

1、打开手机,并可能的将它设置为非锁屏状态

2、确认手机的日期与时间的正确性

3、利用USB线连接手机与电脑,电脑上的zune客户端软件如果未运行,请运行它。

4、电脑上,开始->所有程序->Windows Phone SDK 7.1

5、单击Windows Phone Developer Registration

此时程序将启动,并显示图片。确认显示"phone ready"的状态消息。然后输入windows live id的账号和密码,点击"Register"。


如果手机已注册,则显示手机已注册,并且出现"ungister"按钮。

6、输完windows live id的账号和密码后,将对应出现你的App Hub的成员关系。

7、点击"Register"。
完成:

手机将显示成功注册的消息,可以发布windows phone程序到手机上。你可以随意点击"ungister"来反注册该手机。
注意:

当发布一个软件到手机上后,如果反注册该手机,则该软件应用授权失败而不可运行。

源文档 <http://msdn.microsoft.com/en-us/library/ff769508(v=VS.92).aspx>

 
 

 
 

三、将软件从电脑发布到手机上

准备:

1、电脑上已运行zune客户端软件

2、将手机设置为Register状态,具体步骤可参考上一步。

开始:

1、将手机连接到电脑,zune如果未运行客户端软件,请运行它

2、确认zune客户端软件能够成功识别手机

3、点击:开始

4、所有程序 -> Windows Phone Developer Tools

如果开始菜单中找不着它,可以运行C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Tools\XAP Deployment\XapDeploy.exe.

 
 

5、点击Application Deployment.如下图


6、在"Target"下拉框中选择,"Windows Phone Emulator" 或 "Windows Phone Device"来发布XAP文件。
7、点击"Browse",选择需要发布XAP的文件位置
8、点击"Deploy"

如果发布成功,将有提示XAP发布完成的消息。

注意:

在已注册开发的手机上最多发布十个这种程序.

源文档 <http://msdn.microsoft.com/en-us/library/ff769512(v=VS.92).aspx>

 
 

 
 

四、Testing Media APIs on a Physical Device

目的:

按上述方法测试时,要求运行zune客户端软件,由于这个软件会锁定本地媒体服务数据库,所以无法测试媒体API的交互。使用Windows Phone Connect Tool允许不使用建立并口或USB连接到手机。

准备:

1、安装好Windows Phone SDK

2、电脑上已安装好zune客户端软件

3、手机必须已注册开发,具体可参见前面步骤

开始:

1、将手机连接到电脑

如果zune客户端软件未运行,则运行它。

2、确认zune客户端软件识别出手机

3、当手机连接好后,关闭zone客户端软件

4、打开cmp命令提示符,并定位到WPConnect文件夹。它位于以下两种之一

  • Program Files\Microsoft SDKs\Windows Phone\v7.1\Tools\WPConnect
  • Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\WPConnect

5、转到相应的X86或X64子文件夹

6、在命令提示符中,输入WPConnect.exe命令。

然后收到连接完成的确认消息。你无需zune客户端软件并可以测试手机程序。

注意:

不需要断开此工具。在任何时候,都可以使用zune客户端软件重建连接。然而,在重建连接后,如果想调试图像选择或照相机浏览任务时,需要重复此步骤。

源文档 <http://msdn.microsoft.com/en-us/library/gg180729(v=VS.92).aspx>

 
 

 
 

附件:Xbox Live介绍

2011年8月26日

10:49

 
 

一、Xbox Live介绍

表:Xbox Live最新支持的服务平台

支持服务平台

Xbox 360

Microsoft Zune 可携式媒体播放器

Microsoft Windows 平台

Windows Phone 7 智能型手机

  

  

  

  

  

代表硬件

Xbox/Xbox 360 游戏机

Zune 播放器

  

Windows Phone 智能型手机

  

  

  

  

  

 
 

表:云服务功能说明

  

Notification

Location

Identity

Feed

Social

Map

功能说明

协助 Windows Phone 7 应用程序以订阅的方式收到欲处理的事件,

节省定时询问特定的资料或状态耗费的电力

利用 Wi-Fi、Cellular、和 GPS 等数据,

为 Windows Phone 7 应用程序提供定位相关的功能

提供身份验证功能

提供数据喂入服务

提供社群服务

提供地图与导览服务

 
 

 
 

附件:Silverlight vs XNA

2011年8月26日

10:49

 
 

一、Silverlight Framework vs XNA Framework

图3:Silverlight Framework 与 XNA Framework 的架构与功能


从图3 所示的 Framework 架构功能图可以看出,Silverlight Framework 与 XNA Framework 的底层是一组共同的服务,提供传感器相关的功能,Location 功能,Live 服务功能,网络通讯功能,XNA 的音效 API,以及 XNA 的媒体 API,而位于这一组共享服务底下的则是 .NET Compact Framework,由 .NET Compact Framework 提供基础程序开发协助,包括数据型态,XML 文件处理,LINQ 语言整合查询,Isolated Storage 隔离储存区,WCF 服务,与串行化等功能。

 
 

从 图3 可以看出 Silverlight Framework 和 XNA Framework 具有相同的本质,差别在于 Silverlight Framework 和 XNA Framework 支持的是不同类型的应用程序。Silverlight Framework 支持开发一般的 Windows Phone 7 应用程序,提供程序设计师设计应用程序需要的控件以及显示功能,当然也支持动画功能供应用程序使用,而 XNA Framework 主要的用途是支持程序设计师设计游戏相关的程序,包括画面连续更新显示的协助,Content Pipeline 游戏内容处理功能,以及 2D/3D 的图形显示。

[说明]

XNA Framework 的 Content Pipeline 是一种制作游戏内容 (包括 Texture、Sprite、Mesh、Effect、Font、Music、音效、Level 设定、和角色的特质)的功能,协助程序设计师在游戏设计的阶段准备游戏程序执行时期需要用到的所有游戏内容,避免游戏程序执行的时候为了将各种不同的数据 格式转换成游戏支持的内容格式而影响游戏执行的速度。

图4 所示即为 XNA 的 Content Pipeline 功能处理游戏内容的过程:

图4:XNA Content Pipeline 功能处理游戏内容的过程


由 图4 的内容可以看出,不同格式的游戏内容格式经由 Importer 汇入之后,会转换成 Content DOM (Document Object Model) 能够表示的对象格式,也就是 Processor 能够处理的格式,Content DOM 表示的对象经由 Processor 处理之后,透过 Content Compiler 编译成 .XNB (XNA Binary File 的缩写) 格式的内容,以便被 Windows、Xbox 360、或 Windows Phone 7 平台中执行的游戏加载使用。

[提示]

XNA 的 Content Pipeline 功能允许程序设计师扩充其内建的功能,以处理新兴的游戏内容格式,或是产出自定义的输出格式。

表1 列有 Silverlight Framework 和 XNA Framework 的功能特性以及适用的应用程序类型:

表1:Silverlight Framework 和 XNA Framework 的功能特性以及适用的应用程序类型

 
 

Silverlight Framework 的功能特性

XNA Framework 的功能特性

适合开发以 XAML 文件为基础的事件驱动应用程序

适合开发高效能的游戏

适合应用 Silverlight 网页开发经验到 Windows Phone 7 应用程序开发

适合快速开发 2D 和 3D 的游戏

提供控件供应用程序开发使用

提供 Content Pipeline 功能,协助应用程序处理游戏程序执行时期欲使用的游戏内容

支持影音媒体播放功能

  

支持提供浏览网页功能的 WebBrowser 控件,支持显示高互动地图的 Bing Map Silverlight 控件,支持开发全景式浏览功能的 Panoramic 控件,以及支持以轴心的方式来回浏览应用程序页面或数据的 Pivot 控件。

  

注:在代号为"芒果"("Mango")的系统手机里,可以在一个程序中合并Silverlight and the XNA Framework。

 
 

[提示]

选 择开发 Windows Phone 7 应用程序欲使用的 Framework 之后并未限制应用程序不能使用另外的 Framework 提供的功能,也就是说选择 Silverlight Framework 做为应用程序发展基础的应用程序还是能够透过参考组件的方式使用到 XNA Framework 提供的功能,反之,选择 XNA Framework 做为应用程序发展基础的应用程序也同样能够透过参考组件的方式使用到 Silverlight Framework 提供的功能。

 
 

源文档 <http://msdn.microsoft.com/zh-cn/windowsphone/ff955778.aspx>

 
 

示例:建立 Windows Phone 7 应用程序项目

2011年8月26日

10:51

 
 

 
 

一、建立 Windows Phone 7 应用程序项目

欲使用 Visual Studio 2010 Express for Windows Phone 建立 Windows Phone 7 应用程序,您可以启动 Visual Studio 2010 Express for Windows Phone,执行 [File | New Project] 功能,屏幕上就会出现如图5 的画面,于左方窗口的 [Visual C#] 项目下可以看到 Visual Studio 2010 Express for Windows Phone 支持的两种应用程序型态,分别是 Silverlight for Window Phone 和 XNA Game Studio 4.0。

图5:使用 Visual Studio 2010 Express for Windows Phone 建立项目的画面


选 择 [Visual C#] 项目下的 Silverlight for Windows Phone,于中间的窗口选择 [Windows Phone Application] 项目型态,然后按下 [OK] 键,就可以建立以 Silverlight Framework 为基础的 Windows Phone 7 应用程序,项目建立成功后您就可以看到类似图6 的结果画面。请注意 [Solution Explorer] 窗口中名称为 MainPage.xaml 的档案代表应用程序的主画面,您可以直接从 [Toolbox] 窗口将控件拖曳到 MainPage.xaml 放置,设计应用程序的操作画面,而编辑应用程序操作画面的结果会反应在 MainPage.xaml 档案的原始档编辑画面中,而为操作画面上的控件撰写事件处理程序时,程序代码会被自动加入到 MainPage.xaml.cs 档案中,整体的应用程序开发经验对具备 Windows Form 应用程序开发,或是 Silverlight 应用程序开发经验的程序设计师而言应该不陌生。

图6:以 Silverlight Framework 为基础的 Windows Phone 7 应用程序的项目内容


欲 使用 Visual Studio 2010 Express for Windows Phone 发展游戏的程序设计师可以在执行 [File | New Project] 功能后,选择左方窗口 [Visual C#] 项目下的 [XNA Game Studio 4.0] 项目类型,就可以从右方窗口看到数种不同的游戏项目型态,包括 Windows Phone 7 游戏相关的项目型态,Windows 平台游戏相关的项目型态,Xbox 360 游戏相关的项目型态,自定义 Content Pipeline 功能的 Content Pipeline Extension Lib 项目型态,以及用来管理游戏内容的 Empty Content Project (4.0) 项目型态,如图7 所示:

图7:Visual Studio 2010 Express for Windows Phone 支持游戏开发的项目型态


选 择左方窗口 [Visual C#] 项目底下的 [XNA Game Studio 4.0] 项目类型,于中间的窗口选择 [Windows Phone Game (4.0)] 项目型态,然后按下 [OK] 键,就可以建立以 XNA Framework 为基础的 Windows Phone 7 游戏程序。项目建立成功后您可以于 [Solution Explorer] 窗口中看到两个项目,其中项目名称为 [专案名称Content] 的项目是负责管理游戏内容的项目,另外一个则是游戏程序项目。如图8 所示:

图8:以 XNA Framework 为基础的 Windows Phone 7 游戏程序项目的内容


您 可以开启游戏程序项目中名称为 Game1.cs 的档案,这个档案是控制游戏的中枢,其中名称为 Update 的方法负责执行控制游戏进行的逻辑,包括管理游戏的状态和处理用户输入的数据等控制游戏的动作,而名称为 Update 的方法则负责更新游戏程序显示的内容。

欲使用 Expression Blend for Windows Mobile 开发 Windows Phone 7 应用程序的程序设计师请注意,完成 Windows Phone Developer Tools 套件安装之后,Expression Blend for Windows Mobile 工具会出现在 [Microsoft Expression] 程序群组中,您将不会在 [Microsoft Expression] 程序群组中看到名称为 Expression Blend for Windows Mobile 的工具,因为 Expression Blend for Windows Mobile 已经与 Microsoft Expression Blend 4 工具整合,欲使用 Expression Blend for Windows Mobile 开发 Windows Phone 7 应用程序,您必须启动 Microsoft Expression Blend 4,然后执行 [File | New Project] 功能,执行建立项目的动作,您就会看到如图9 的操作画面:

图9:使用 Microsoft Expression Blend 4 建立 Windows Phone 7 应用程序的操作画面


请 点选左方窗口 [Project types] 项目底下的 [Windows Phone] 项目型态,就可以在右方窗口中看到 Expression Blend for Windows Mobile 支持程序设计师建立的五种 Windows Phone 应用程序项目型态,分别是:Windows Phone Application、Windows Phone Databound Application、Windows Phone Panorama Application、Windows Phone Pivot Application、与Windows Phone Control Library。请选择 [Windows Phone Application] 项目型态,然后按下 [OK] 键,执行建立项目的动作,项目建立成功后您就会看到类似图10 的画面:

图10:使用 Microsoft Expression Blend 4 建立的 Windows Phone 应用程序项目的内容


您 可以利用 [Tools] 窗口提供的控件设计应用程序,利用 [Properties] 窗口设定控件的属性,设计妥应用程序的功能之后按下 F5 功能键执行制作好的应用程序,Expression Blend for Windows Mobile 就会将设计好的应用程序加载到 Windows Phone 仿真器供您测试。

 
 

源文档 <http://msdn.microsoft.com/zh-cn/windowsphone/ff955778.aspx>

 
 

名词介绍

2011年8月26日

14:08

 
 

Architecture

 
 

  • Runtimes – Silverlight and the XNA Framework, along with Windows Phone–specific features, combine to provide a mature environment on which to build secure, graphically rich applications.
  • Tools – Visual Studio and Expression Blend, and their related tools and documentation, create a complete developer experience for quickly creating, debugging, deploying, and updating applications.
  • Cloud Services – Windows Azure, Xbox LIVE Services, Notifications services, and Location services, along with a variety of other web services, allow developers to share data across the cloud and benefits consumers by providing a seamless experience across whatever device they are using. Connections to third-party web services are also fully supported.
  • Portal Services – The Windows Phone Marketplace provide robust services that allow developers to register, certify, and market their applications.

     
     

     
     

    Runtimes

    With Silverlight and the XNA Framework, all development is done in managed code, in a protected sandbox allowing for the rapid development of safe and secure applications. Applications written for Silverlight or the XNA Framework today will run on Windows Phone with only a minor number of adjustments, such as for screen size or for device-specific features.

    The two frameworks, along with Windows Phone–specific components and the Common Base Class Library provide a substantial number of components for developers to construct applications on.

     
     

  • Silverlight - Silverlight is the ideal framework for creating Rich Internet Application-style user interfaces. A Windows Phone Silverlight application exposes its UI through a set of pages. Windows Phone controls that match the Windows Phone visual style can be used to enhance the look and feel of the UI.
    Visual Studio or Expression Blend can be used for designing the XAML-based interfaces. Visual Studio can be used to implement the application logic by utilizing the media rich Silverlight libraries or the base functionality provided by the Common Base Library. For more information, see The Silverlight and XNA Frameworks for Windows Phone.

  • XNA Framework - The XNA Framework is composed of software, services, and resources focused on enabling game developers to be successful developing on Microsoft gaming platforms. Microsoft provides technology that allows professional developers to quickly enable games on platforms like Windows Phone, Xbox 360, Zune HD, and Windows 7. The XNA Framework provides a complete set of managed APIs for game development. This includes 2D sprite-based APIs that support rotation, scaling, stretching, and filtering as well as 3D graphics APIs for 3D geometry, textures, and standard lighting and shading.
    With Windows Phone 7 Codenamed "Mango", you can now combine Silverlight and the XNA Framework into a single application. For more information, see The Silverlight and XNA Frameworks for Windows Phone.

  • Sensors - A variety of sensors will return data that can be consumed by developers. For example, multi-touch input, accelerometer, compass, gyroscope, and microphone sensors will all be accessible by APIs. For more information, see Touch Input for Silverlight, Touch Input for XNA Framework, or Sensors Overview for Windows Phone.
  • Media – Both Silverlight and the XNA Framework provide developers with a programming model for building rich user experiences that incorporate graphics, animation, and media. The managed APIs support a variety of media formats and allow for discovery and enumeration of media on the device and for playback of that media. For more information, see Media for Windows Phone.
  • Data - Isolated storage allows an application to create and maintain data in a sandboxed isolated virtual folder. All I/O operations are restricted to isolated storage and do not have direct access to the underlying operating system file system. This prevents unauthorized access and data corruption by other applications.
    Structured data can be stored in a relational database and can be accessed by using LINQ to SQL.
    For more information, see Isolated Storage Overview for Windows Phone or Local Database Overview for Windows Phone.

  • Location - The Microsoft Location Service for Windows Phone allows application developers to access the user's physical location information from a single API. Developers can query for the current location, subscribe to Location Changed events, set the desired accuracy of the data, get access to the device heading and speed, and calculate the distance between points. The Location APIs on the phone will work in conjunction with the Location Cloud Services. For more information, see Location for Windows Phone.

     
     

    Tools

    Developers can download and install a package that includes all the tools that they need to start developing applications for Windows Phone.

    If Visual Studio is not already installed, Visual Studio 2010 Express for Windows Phone will be installed.

    If Visual Studio is installed, an add-in to Visual Studio will be installed.

    For more information about downloading and installing the Windows Phone SDK, see Installing the Windows Phone SDK

     
     

  • Visual Studio 2010 - Visual Studio is the IDE for building Windows Phone applications. Within the Visual Studio IDE, developers can create Silverlight or XNA Framework programs that run on Windows Phone. Visual Studio includes a designer, debugger, project system, packager, and manifest generation. For more information, see Visual Studio 2010 Express for Windows Phone.
  • Expression Blend - In the same way that designers use Expression Blend to design Rich Internet Applications for the desktop browser, they can also design creative and unique Silverlight-based applications on a Windows Phone. Expression Blend for Windows Phone allows designers to create XAML-based interfaces for Windows Phone applications, whose behaviors can then be implemented by developers in Visual Studio. For more information, see Expression Blend.
  • Windows Phone Emulator - Windows Phone Emulator is integrated into Visual Studio and Expression Blend to make the testing and debugging of applications easier and more efficient. The emulator fully supports application deployment, debugging, and application execution. It includes support for GPU emulation and orientation change. For more information, see Windows Phone Emulator.
  • XNA Game Studio - The XNA Game Studio is an integrated design environment that developers can use to build fun and exciting games for Microsoft Windows®, the Microsoft Xbox 360® video game and entertainment system, Microsoft Zune®, and Windows Phone. XNA Game Studio extends the Visual Studio tools to support the XNA Framework. The XNA Framework is a managed-code class library that contains functionality targeted specifically at game development tasks. In addition, XNA Game Studio includes tools for incorporating graphical and audio content into your game. For more information, see XNA Game Studio.
  • Samples, Documentation, Guides and Community - Documentation, How-to Guides, sample code, and sample applications are provided to aid developers ramping up on Windows Phone development. Forums, blogs, and websites are available for developers to ask questions and share information with the greater Windows Phone community. The new Visual Studio Help system will allow developers to continuously update their documentation sets. For more information, see App Hub, Windows Phone Blogs, or Windows Phone 7 Forums.

     
     

    Cloud Services

    The Windows Phone Application Platform provides many features for building compelling web-integrated applications. While a Windows Phone is powerful and rich, the cloud makes it even more powerful. The Cloud Services are always on, are more scalable, can contain more functionality, and are not dependent on battery life. Services built on Azure or third-party web services can be accessed to bring data to the phone. The Windows Phone Marketplace provides a means for developers to certify and distribute their applications to consumers.

    • Notifications - To enable efficient, dynamic, and up-to-date information and communication channels, Windows Phone Application Platform provides an API to enable services to notify the user when relevant events have occurred. This eliminates the need for polling and reduces battery consumption. For more information, see Push Notifications for Windows Phone.
    • Location Cloud Services - The Location Cloud Services will work together with the Location APIs on the phone, making its presence transparent to the developer. The service will use Wi-Fi, cellular, and GPS data to provide a single source for providing position lookup. Assisted GPS (AGPS) is available to improve the fix for GPS. For more information, see Location for Windows Phone.
    • Identity, Feeds, Social, and Maps Services - The extensive variety of web services in the cloud allow consumers to identify themselves, interact with social communities, receive data feeds, and use maps for navigation. Developers can enrich this experience by providing new applications that use these services. For more information, see Networking and Web Services Overview for Windows Phone.
    • Windows Azure - Visual Studio 2010 provides the development environment for creating applications using the Windows Azure™ Platform, an Internet-scale cloud computing and services platform hosted in Microsoft data centers. The Windows Azure Platform provides a range of functionality to build applications that span from consumer web to enterprise scenarios and includes a cloud operating system and a set of developer services. Fully interoperable through the support of industry standards and web protocols such as Representational State Transfer (REST) and Simple Object Access Protocol (SOAP), you can use the Azure services individually or together, either to build new applications or to extend existing ones. For more information, see Windows Azure.
    • Microsoft Advertising SDK for Windows Phone - Monetize your Windows Phone applications and games by including ads from Microsoft Advertising. The Microsoft Advertising SDK for Windows Phone enables you to create applications that can do the following:
      • Easily integrate text and banner ads into your applications and games.
      • Provide a monetization solution that maximizes in-app advertising revenues by unlocking the power of multiple sales channels competing in real time to purchase your ad inventory.
      • Provide various ad targeting capabilities to deliver the most relevant ads to your users.
      • Seamlessly handle impression reporting.

     
     

    Portal Services

    The Windows Phone Marketplace provides a centralized location for developers to submit and certify their applications. Consumers have a centralized location from which to buy or update their applications.

    • Registration and Validation - Developers can get started on App Hub by signing up with their Live ID. After registration is complete, developers can get all the needed tools in a single download.
    • Certification, Publishing, and Update Management - A set of tools will help the developer to submit and certify their applications for the Windows Phone Marketplace. Applications are submitted in an .xap file format, which is essentially one compressed file that contains all the files that are needed by the application. Developers can track their submission status and then receive a notification once the certification is complete. After an application is certified, it can then be submitted for publishing on the Windows Phone Marketplace. Developers can set pricing and select the markets in which they want to publish the application.
      If developers fix bugs, add new functionality, or provide a whole new version of the application, they must go through the certification and publishing process again.

    • Windows Phone Marketplace and Billing - The Windows Phone Marketplace provides the one place where developers can make their applications available for purchase by consumers. Both Mobile Operator and credit card billing are supported, making it as easy as possible for consumers to pay for the application.
    • Business Intelligence - Business intelligence tools will provide developers with information reporting about their application.

       
       

    The Application Development Lifecycle

     
     

    This section describes how developers can use the Windows Phone Application Platform from the beginning to the end of the development cycle.


    Getting Started With App Hub

    App Hub will be the starting point for developers. Developers can begin by signing up for a Windows Live ID. Next, they can sign up to obtain the Windows Phone SDK and associated licensing materials for developing applications using Visual Studio and Expression Blend. This will be a single download that contains everything the developer requires for building an application for Windows Phone. Developers can also register one or more phones for use as test hardware in validating the applications that they are building. Any retail Windows Phone can be registered as a test device.

    App Hub contains samples, documentation, and active developer communities that help make Windows Phone developers successful.

    Designing an Application and Producing an Application Package

    Once developers have signed up to be a Windows Phone developer and have installed the developer tools, they can begin developing their applications.

    Games and graphics-intensive applications are created in Visual Studio using the 2D and 3D libraries of the XNA Framework.

    The visual design for XAML-based applications for Silverlight is created in Visual Studio and/or Expression Blend. The resulting XAML document containing markup is then interpreted by the Silverlight presentation engine and other components of the Windows Phone Application Platform.

    With Windows Phone 7 Codenamed "Mango", you can now combine Silverlight and the XNA Framework into a single application. For more information, see The Silverlight and XNA Frameworks for Windows Phone.

    The Visual Studio IDE is used to write managed code defining the visual behavior of all Windows Phone applications. When the application is completed, a package is created that includes everything the application needs.

    Debugging an Application

    While creating a Windows Phone application, a developer can debug the program on a phone or in Windows Phone emulator. Debugging the application involves creating a package targeted to the debugging platform and then using Visual Studio to deploy the package. Call stack walking, expression evaluation, source code stepping, and variable watch windows are all supported.

    Publishing an Application

    After an application has been completed, a developer can make the program available to other users on the Windows Phone Marketplace. To publish to the Windows Phone Marketplace, developers submit a .xap file. The .xap file is a compressed file containing all the information needed by the application. This includes an application icon, a start tile, metadata, and licensing terms that determine how their program can be used.

    Next, the developer signs into App Hub and submits the application package for certification. This is the only way to make an application available to consumers. The certification process will verify that the application is well-behaved, works for the languages and markets indicated, and does not adversely affect the overall health of the phone.

    Once the package has satisfied the Windows Phone Marketplace certification requirements, the developer is notified and can publish the application to the Windows Phone Marketplace through App Hub. Applications are then made available for consumers to download in the Windows Phone Marketplace. Credit card and mobile-operator billing operations are supported.

    Managing Published Applications

    After a Windows Phone application is published to the Windows Phone Marketplace, the developer uses App Hub to manage the versions of the application that are available for purchase.

 
 

二、技术笔记

2011年8月26日

11:06

 
 

1.打开Visual Studio 2010 Express,首页(Start Page)(或点这里),浏览其相关内容。

 
 

Getting Started Creating Windows Phone Applications


Create Your First Silverlight App
该教程指导如何创建:一个用于输入地址的文本框,一个用于执行浏览url地址的按钮,一个显示网页浏览器控件


 

 
 

横纵向支持

2011年8月26日

11:06

 
 

横纵向支持(portrait and landscape)

 
 

源文档 <http://msdn.microsoft.com/en-us/library/ff402526.aspx>

 
 

  • Add support for both portrait and landscape orientations. Click the first line of the XAML code so that the PhoneApplicationPage properties are displayed in the Properties windows. Change the SupportedOrientation property to PortraitOrLandscape.

 
 

三、SilverLight4教程

2011年8月29日

11:54

 
 

银光中国

http://bbs.silverlightchina.net

 
 

Telerik无限制免费控件 - Silverlight Book

 
 

源文档 <http://www.silverlightchina.net/html/works/2010/1103/3144.html>

 
 

 
 

Silverlight经典教程书籍汇总

 
 

源文档 <http://blog.csdn.net/jv9/article/details/5453181>

 
 

书名

内网下载

说明

优先购买1>2>3>4

  

Hello Silverlight 4

http://192.168.15.175/book/csharp/Hello+Silverlight+4.pdf

Hello Silverlight 3是由微软MVP最有价值专家写的一本Silverlight教程书籍,该书籍由浅入深的介绍了Silverlight开发技术,以实例展示Silverlight强大的功能,是一部不错的入门级教程书籍.

3

  

c#4.0 核心技术

http://192.168.15.175/book/csharp/c-4-0-in-a-nutshell-the-definitive-reference.pdf

这个对C++有经理的人到C#转换很有帮助

1

  

Essential Silverlight 3

http://192.168.15.175/book/csharp/EssentialSilverlight3.pdf

Essential Silverlight 3总结了Silverlight3中全部的新功能,给出大量的演示代码,演示Silverlight 3新功能。

2

  

Pro Silverlight for the Enterprise

http://192.168.15.175/book/csharp/Pro Silverlight for the Enterprise.pdf

Pro Silverlight for the Enterprise是一本Silverlight企业级项目开发书籍,书中详细介绍了如何使用Silverlight开发企业级项目从准备到建模,到编 码,最后发布。本书适合初,中级Silverlight开发人员阅读,如果你是企业级项目开发人员,推荐仔细阅读该书,相信你会受益不浅。 

3

  

Foundation Expression Blend.3

http://192.168.15.175/book/csharp/FoundationExpressionBlend3.pdf

Foundation Expression Blend.3 with Silverlight是Silverlight图形界面UI设计书籍,本书详细介绍Expression Blend 3的使用,适合Silverlight UI 设计人员参考使用。

3

  

Professional Silverlight 3 C#

http://192.168.15.175/book/csharp/Pro+Silverlight+4+in+C%23+3rd+Edition.pdf

微软出版的经典教程 Professional Silverlight 3 C# (2009) ,适合初,中级入门,也可以作为开发参考书. 

4

  

 
 

 
 

patterns & practices - Windows Phone 7 Developer Guide

 
 

源文档 <http://wp7guide.codeplex.com/>

 
 

silverlight4权限说明

2011年8月29日

11:55

 
 

silverlight4增加的功能有一部份是必须要特定的权限才可以正常运行的。例如:摄像头和录音设备功能,离线的com访问等等…因此这里特别说明下一相关权限的取得方法:

1.摄像头和录音设备:

       要求用户允许权限:  CaptureDeviceConfiguration.RequestDeviceAccess()

       允许访问设备权限:CaptureDeviceConfiguration.AllowedDeviceAccess

2.高信任权限,对本地的"我的文档"、COM组件的访问等等操作时必须的权限。

       此权限必须用户安装了高级信任的silverlight4程序到本地。

       高级信任程序权限:App.Current.HasElevatedPermissions

a)以下是设置关于离线高级功能的访问权限图:

silverlight4项目属性中:


点选"Out-of-Browser Settings…"按扭,然后


把"Require elevated trust when running outside the browser"选中.

在客户端运行后用户可以通过右键的菜单中把你的silverlight4项目安装到它的计算机中。安装过程只须要一秒时间。

用户安装后即是高级信任权限的silverlight 4程序.

b)可以通过以下代码去检测你的silverlight4程序是否已被用户安装:

这是一段程序代码。

  • if (App.Current.InstallState == InstallState.Installed)

 
 

 
 

 
 

c)以下是检测程序是否运行于离线状态。(只有离线状态才可取得高级信任权限)

隐藏行号 复制代码 ? 这是一段程序代码。

  • if (App.Current.IsRunningOutOfBrowser)

 
 

 
 

 
 

d)如果你的程序使用了右键功能,那可能用户无法从右键中安装你的silverlight 4程序,这时你可以通下如下代码触法安装:

隐藏行号 复制代码 ? 这是一段程序代码。

  • App.Current.Install();

 
 

四、示例

2011年10月6日

15:34

 
 

http://visifire.com/ 商业提供画线控件

 
 

http://silverlight.codeplex.com/SourceControl/list/changesets

Subversion URL: https://Silverlight.svn.codeplex.com/svn

 
 

 
 

Silverlight.Controls.Toolkit.sln

Silverlight.Controls.Sdk.sln

RiaClient.Toolkit.sln

RiaClient.Sdk.sln

 
 

 
 

[Sliverlight]把自己搜集到的一些silverlight网站、第三方控件及开源代码与大家们分享(微软转载)

分类: [Sliverlight] 2010-11-23 22:20 302人阅读 评论(0) 收藏
举报

一、可参考的应用网站

1、网址:http://www.preiskombirechner.ch/Preis_Kombi_Rechner.ebs?ActiveID=1191


2、网址:http://www.bestfreecharts.com/


二、第三方控件:

1、RadControls Silverlight

网址:http://demos.telerik.com/silverlight/default.aspx#Home


三、开源控件:

1、翻书效果 :

网址:http://wpfbookcontrol.codeplex.com/


2、SilverLight TreeView:

网址:http://silverlighttreeview.codeplex.com/


3、Silverlight Ribbon

网址:http://silverlightribbon.codeplex.com/


4、Silverlight Audio Player

网址:http://slaudioplayer.codeplex.com/

5、Silverlight photo album

网址:http://photoalbum.codeplex.com/


6、 Silverligth Behaviors Toolkit

网址:http://sltoolkit.codeplex.com/

7、Priyakant's Silverlight Slide Show

网址:http://prisilverlightss.codeplex.com/

 
 

 
 

8、silverlight JacAD

功能描述:jacAD是一个使用silverlight 2 开发的广告轮播系统. 目前支持视频和图片的播放

网址:http://jacad.codeplex.com/

9、Silverlight ToolKit(太经典了,特别推荐一下)

网址:http://silverlight.codeplex.com/


10、Silverlight File Upload

网址:http://silverlightfileupld.codeplex.com/


 
 


11、Silverlight Video player

网址:http://sl2videoplayer.codeplex.com/

12、Silverlight Contrib

网址:http://silverlightcontrib.codeplex.com/


13、Silverlight Muti File Upload

网址:http://slfileupload.codeplex.com/

 
 


14、Silverlight Gantt Chart

网址:http://silverlightgantt.codeplex.com/

15、Silverlight Validator & Input Toolkit

网址:http://silverlightvalidator.codeplex.com/


16、Blacklight

网址:http://blacklight.codeplex.com/

 
 


17、Silverlight PropertyGrid

网址:http://slpropertygrid.codeplex.com/


18、DeepZoomContainer, improved MultiScaleImage in Silverlight

网址:http://deepzoomcontainer.codeplex.com/


 
 


 
 

19、Word 2007 XAML Generator

网址:http://word2007toxaml.codeplex.com/

 
 

源文档 <http://blog.csdn.net/cubuntu/article/details/6030832>

 
 

 
 

轻轻松松为Sliverlight控件或页面添加鼠标滚轮操作

 
 

源文档 <http://www.th7.cn/Program/SilverLight/2011/07/29/36270.shtml>

 
 

All-In-One Code Framework Sample Browser

 
 

源文档 <http://1code.codeplex.com/releases/view/64539>

 
 

 
 

 
 

 
 

4.4 nunit

2011年12月19日

14:57

 
 

1.普通silverlight平台

从此处下载: http://nunit.org/index.php?p=download

 
 

参考:NUnit2.0详细使用方法

 
 

 
 

2.phone7平台

从此处下载: http://nunitwindowsphone7.codeplex.com/

 
 

4.3 可移植类库

2011年10月11日

14:31

 
 

.NET Framework 4

可移植类库

更新:2011 年 5 月

利用可移植类库项目,您可以编写和生成在多个 .NET Framework 平台上运行的托管程序集。 可以创建包含希望在多个项目中共享的代码的类(如共享业务逻辑),然后从不同类型的项目中引用这些类。

利 用可移植类库项目,您可以生成无需修改即可在 .NET Framework、Silverlight、Windows Phone 7 或 Xbox 360 平台上运行的可移植程序集。 若没有可移植类库项目,您必须先指定一个目标平台,然后手动修改其他平台的类库。 可移植类库项目支持这些平台中的部分程序集,并提供了 Visual Studio 模板,通过该模板,可以生成无需修改即可在这些平台上运行的程序集。

系统必备组件

若要创建可移植类库项目,您必须按以下顺序安装这些组件:

  1. Visual Studio 2010 Service Pack 1 (SP1)
  2. Portable Library Tools(可移植库工具)

程序集

可移植类库项目中提供以下程序集:

  • mscorlib.dll
  • System.dll
  • System.Core.dll
  • System.Xml.dll
  • System.ComponentModel.Composition.dll
  • System.Net.dll
  • System.Runtime.Serialization.dll
  • System.ServiceModel.dll
  • System.Xml.Serialization.dll
  • System.Windows.dll(来自 Silverlight)

但 是,并非所有这些程序集在所有平台上都受支持。 在可移植类库项目中,指定目标平台,并仅在您的项目中引用这些平台支持的程序集。 如果您尝试引用目标平台不支持的程序集,Visual Studio 会向您发出不兼容警告。 核心程序集(mscorlib.dll、System.dll、System.Core.dll 和 System.Xml.dll)受所有平台支持。

下表显示了可用平台上支持的程序集。

功能

程序集

.NET Framework 4

Silverlight

Windows Phone 7

Xbox 360

核心

mscorlib.dll、System.dll、System.Core.dll、System.Xml.dll

Managed Extensibility Framework (MEF)

System.ComponentModel.Composition.dll

网络类库 (NCL)

System.Net.dll

序列化

System.Runtime.Serialization.dll

Windows Communication Foundation (WCF)

System.ServiceModel.dll

XML 序列化

System.Xml.Serialization.dll

视图模型支持

System.Windows.dll(来自 Silverlight)

可移植类库项目面向各种平台的组合。 下表显示了平台组合支持的功能:

平台

支持

Silverlight 和 Windows Phone 7

除 MEF 之外的任何功能

.NET Framework 4 和 Silverlight

除视图模型支持之外的任何功能

.NET Framework 4 和 Windows Phone 7

除视图模型支持和 MEF 之外的任何功能

.NET Framework 4、Silverlight 和 Windows Phone 7

除视图模型支持和 MEF 之外的任何功能

Xbox 360 和任何其他平台

仅内核

在参考文档中查找支持的成员

可以在 .NET Framework Class Library(.NET Framework 类库)的参考主题中查找可移植类库项目支持的成员。 在类的成员表中,受支持的成员旁边会显示以下可移植类库图标。


还可以查看参考主题的"版本信息"节,了解指示在可移植类库项目中受支持的类型或成员的注释。

支持视图模型模式

如 果您的目标是 Silverlight 和 Windows Phone 7,则可以在解决方案中实现视图模型模式。 实现此模式的类位于 Silverlight 的 System.Windows.dll 程序集中。 在创建目标为 .NET Framework 4 或 Xbox 360 的可移植类库项目时,System.Windows.dll 程序集不受支持。

此程序集中的类包括:

.NET Framework 4 也包括这些类,但它们是在 System.Windows.dll 以外的其他程序集中实现的。 若要将这些类与可移植类库项目结合使用,必须引用 System.Windows.dll 而不是 .NET Framework 4 文档中列出的程序集。

创建可移植类库项目

若要创建可移植类库项目,需要在 Visual Studio 2010 中创建一个新项目,然后在 Visual C# 或 Visual Basic 下选择"可移植类库"模板。 如果您看不到该模板,请确保已安装 Portable Library Tools(可移植库工具)。


选择目标平台

默认情况下,可移植类库项目面向以下平台:

  • .NET Framework 4
  • Silverlight 4
  • Silverlight for Windows Phone 7

该项目只引用受这些平台支持的程序集。 若要选择目标平台,请在"解决方案资源管理器"中右击可移植类库项目名称,然后选择"属性"。

项目属性页指定当前面向的平台。


若要添加或移除目标平台,请单击"更改"。


更 改目标平台时,该项目中引用的程序集会发生更改以匹配您所选平台支持的程序集。 如果您的项目引用的程序集不受某个所选平台支持,必须移除对相应程序集的引用或更改目标平台。 在"解决方案资源管理器"中,不受支持的程序集均用感叹号 (!) 标记。 下图显示了在将 Xbox 360 平台添加到目标平台时,有关不受支持的程序集的警告。


使用可移植类库

生成可移植类库项目后,只需从依赖于可移植类库项目的其他项目中添加对它的引用即可。 可以引用该项目或包含您要访问的类的特定程序集。

创建依赖项

若 要运行可移植类库应用程序,必须在计算机上安装 .NET Framework 4 的更新。 由于此更新会自动与 Visual Studio 2010 SP1 一起安装,因此您在用来开发可移植类库应用程序的计算机无需进一步修改即可运行该应用程序。 若要在其他计算机上运行该应用程序,您可以手动安装 update(更新)。

部署引用可移植类库程序集的 .NET Framework 4 应用程序时,必须在 .NET Framework 4 更新上指定一个依赖项。 通过指定此依赖项,可确保与您的应用程序一起安装更新。

  • 若要使用 ClickOnce 部署创建依赖项,请在"解决方案资源管理器"中,单击您要发布的项目对应的项目节点。 (这是引用可移植类库项目的项目。)在"项目"菜单上,单击"属性",然后单击"发布"选项卡。 在"发布"页上,单击"系统必备"。 选择 .NET Framework 更新作为系统必备组件。
  • 若要创建安装项目的依赖项,请在"解决方案资源管理器"中,单击此安装项目。 在"项目"菜单上,单击"属性",然后单击"系统必备"。 选择 .NET Framework 更新作为系统必备组件。

有关部署 .NET Framework 应用程序的更多信息,请参见 .NET Framework 部署指南(针对开发人员)

使用 Silverlight 部署

使用基于 Silverlight 的应用程序部署可移植类库程序集时,您必须确保该应用程序所需的最低运行时版本设置为版本 4.0.60129.0 或更高版本。 通过在承载基于 Silverlight 的应用程序的网页中包括 <param name="minRuntimeVersion" value="4.0.60129.0" />,可设置 minRuntimeVersion 参数值。

<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2," 
type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/SilverlightApplication.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.60129.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" 
style="text-decoration:none">
<img src=http://go.microsoft.com/fwlink/?LinkId=161376
alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
<iframe id="_sl_historyFrame" 
style="visibility:hidden;height:0px;width:0px;border:0px">
</iframe>
</div>

可移植类库中的 API 差异

为了使可移植类库程序集在所有支持的平台中兼容,稍微更改了可移植类库中的部分成员。 有关对哪些成员进行了更改以及进行了怎样的更改的详细信息,请参见可移植类库中的 API 差异

请参见

其他资源

可移植类库中的 API 差异

修订记录

日期

修订记录

原因

2011 年 5 月

增加了有关支持视图模型模式和创建依赖项的信息。

信息补充。

2011 年 3 月

新增主题。

信息补充。

 
 

源文档 <http://msdn.microsoft.com/zh-cn/site/gg597391>

 
 

 
 

4.1 Use MEF in Silverlight 4

2011年10月9日

21:00

 
 

注意:不支持Phone开发

 
 

Use MEF in Silverlight 4

 
 

Managed Extensibility Framework (MEF) is a framework which could assist

developers to design extensible application. It's supported by Silverlight 4.

This sample uses MEF to create a simple text formater. By using the

predefined contract, users can create components to enhance the formater's

functionality. The components can be loaded at runtime.

 
 

源文档 <http://code.msdn.microsoft.com/silverlight/CSSL4MEF-7f10dec7>

The App

Below is a screenshot of the dashboard application.


May not look very complicated, but what we're showing here is actually quite sophisticated. The dashboard itself is a dumb shell. The two "Hello MEF" widgets you see are actually exports that are discovered by MEF. The dashboard itself has not knowledge of what it will find, but it does know how to place things that are provided to it, and it has different locations on the screen where things can go. If you're familiar with Prism, these are very similar to regions in principle though instead of modules pushing content into regions, MEF is pulling the content from whatever is available. More on this later.

Note: I'll admit, I suck as a designer though I think I could be good if I REALLY try

Nice thing about SL is you don't have to be, as your friendly neighborhood designer can make something hideous a work of art. With that note, don't expect a work of art out of this post.

Step 1 – Create the app

Nothing fancy here, just create a new Silverlight application. Enter HelloMEF as the name.


Leave the "Host the Silverlight application in a new Web Site" checked. We'll use this later as we get into XAP partitioning.

Step 2. Create the dashboard UI.

For this dashboard we're going to create something simple, amazingly simple, amazingly stupidly simple. But it works. We'll create a StackPanel with two items control which will be populated with our widges. Jump into your MainPage.xaml and paste the following.

 
 

<UserControl
x:Class="HelloMEF.MainPage"


xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"


xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"


xmlns:d="http://schemas.microsoft.com/expression/blend/2008"


xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"


mc:Ignorable="d"


d:DesignHeight="300"
d:DesignWidth="400">


<StackPanel
x:Name="LayoutRoot"

Background="Black">


<Border
Background="Cyan">


<ItemsControl
x:Name="TopWidgets"

Height="Auto"
FontSize="30"></ItemsControl>


</Border>


<Border
Background="Yellow">


<ItemsControl
x:Name="BottomWidgets"

Height="Auto"
FontSize="30"></ItemsControl>


</Border>


</StackPanel>

</UserControl>

Step 3. Find and show the widgets – Importing many

Our dashboard is supposed to populate itself with widgets. The first thing we need to think about is what exactly is a widget


In MEF when we have the concept of a contract. A contract represents something that will either be provided (exported) or consumed (imported). The easiest way to think about it for now is what type is the extension. In the case of our dashboard let's just assume each widget is a UserControl. We could create a new base type or an interface, but we don't need to. UserControl will do just fine.

So now we need to tell MEF we need a collection of UserControl, that is we want to import many UserControls. And for that we have the ImportMany attribute.

First add a reference to System.ComponentModel.Composition, and System.ComponentModel.Composition.Initialization.dll. To find them you'll need to browse to your Silverlight SDK directory (C:\Program Files\Microsoft SDKs\Silverlight\v4.0\Libraries\Client). Next go into the code-behind of MainPage.xaml.cs and overwrite the class with the following.

 
 

using System;

using System.Windows.Controls;

using System.ComponentModel.Composition;

 
 

namespace HelloMEF

{


public partial class MainPage : UserControl

{


public MainPage()

{

InitializeComponent();

}

 
 

[ImportMany]


public UserControl[] Widgets { get; set; }

}

}

Basically we're saying "MEF, give me the widgets"

Once we have the widgets, we need to show them on the screen. For now, let's assume all widgets will go in the same ItemsControl. Let's add the logic to the constructor.

 
 

using System;

using System.Windows.Controls;

using System.ComponentModel.Composition;

 
 

namespace HelloMEF

{


public partial class MainPage : UserControl

{


public MainPage()

{

InitializeComponent();


foreach (var widget in Widgets)

TopWidgets.Items.Add(widget);

}

 
 

[ImportMany]


public UserControl[] Widgets { get; set; }

}

}

 
 

Step 4: Create a widget – Export

Now that we've got our basic Dashboard setup, let's create a widget. Right click on the "HelloMEF" project and add a new Silverlight UserControl specifying Widget1 for the name.

Our widget is also going to be dead simple, and simply be a button. Go into Widget1.xaml and paste the following.

 
 

<UserControl
x:Class="HelloMEF.Widget1"


xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"


xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"


xmlns:d="http://schemas.microsoft.com/expression/blend/2008"


xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"


mc:Ignorable="d"


d:DesignHeight="300"
d:DesignWidth="400">

 
 


<Grid
x:Name="LayoutRoot"

Height="Auto">


<Button
x:Name="Button"

Content="Hello MEF!"
Width="300"
Height="100"></Button>


</Grid>

</UserControl>

 
 

Now we need to tell MEF that we want to provide our widget to importers of UserControl. To do this we will Export it. Go into HelloMEF.Widget1.cs and paste the following:

 
 

using System;

using System.ComponentModel.Composition;

using System.Windows.Controls;

using System.Windows;

 
 

namespace HelloMEF

{

[Export(typeof(UserControl))]


public partial class Widget1 : UserControl

{


public Widget1()

{

InitializeComponent();

}

}

}

 
 

Notice above we added an Export attribute and specified UserControl as the type. If we did not pass the type, then MEF would have just exported Widget1 as itself, which would not be of much use as the dashboard will never find it! That being said there are times when it does make sense to use the concrete type, but this is not one of them


Step 5 – Compose the dashboard

OK, we've implemented our Dashboard, specified our imports, and created our widget. That means if we run the app, we'll see widgets right? Wrong


Try running and you'll see this nasty exception.

  
 

What happened? Our Widgets property is null, but why? The reason is because we never told MEF to do anything with it? Yes we put an ImportMany attribute, but MEF needs to somehow our MainPage in order to know it needs to provide anything. Which brings us to our last concept, composition.

In MEF there are basically 3 things you need to do. First two, declare your exports and imports which we did already. Third, tell MEF to actually go and compose, that is satisfy all imports. The places to do this (you can do it more than once) are where there are 1 or more imports and no exports. In this case our MainPage is the place where we import Widgets so that is the place.

Note: We won't put it in the widgets themselves as they export themselves. Why not? Because when MEF pulls on an export, it automatically satisfies any of the imports on the thing it pulls. There is an exception to this, but we'll cover it later.

In general whenever you have user controls that are created in XAML, you'll use this technique. Telling MEF to compose in Silverlight takes only about 12 lines of code. It's really easy code and 12 lines that are well worth it.

Kidding


To tell MEF to compose you invoke a single call, PartInitializer.SatisfyImports(this). In MEF, anything that has imports or exports we consider a Part, which is why the name. Below is the code added in MainPage.cs

 
 

using System;

using System.Windows.Controls;

using System.ComponentModel.Composition;

 
 

namespace HelloMEF

{


public partial class MainPage : UserControl

{


public MainPage()

{

InitializeComponent();

// PartInitializer.SatisfyImports(this);

CompositionInitializer.SatisfyImports(this);


foreach (var widget in Widgets)

TopWidgets.Items.Add(widget);

}

 
 

[ImportMany]


public UserControl[] Widgets { get; set; }

}

}

Now when we Run, we see our first widget show up. 

 
 

Summary

OK, it's 2:17 am, time to go to bed. I guess this will run several posts after all.


In this post we've seen the basics of exporting, importing and composition in MEF. We've also touched on the concept of contracts and parts, which we will delve further into the future.

In the next post we'll cover the following

  • Providing / Accessing export metadata
  • Other ways to import and a deeper look at contracts
  • Providing custom exports

PS: This is not my normal style of posting. I am following in the lead of my mentor, guru and overall awesome guy Brad Abrams. Please feel free to give feedback on how I can improve. I am looking forward to taking this trip with you.

 
 

源文档 <http://codebetter.com/glennblock/2009/11/30/building-the-hello-mef-dashboard-in-silverlight-4-part-i/>

 
 

4.2 SliverLight控件介绍

2011年10月10日

15:43

 
 

Silverlight for Windows Phone Toolkit升级 新增四个控件

时间:2010-11-03 15:09来源:银光中国网 作者:Jv9 点击:755次

PDC 10后,不少开发人员将目光转移到了移动应用开发平台,Windows Phone 7是移动应用平台之一,也是微软推出的最新移动平台操作系统。Silverlight作为Windows Phone 7应用核心开发技术,再一次展示其强大的功能和优势。为了方便Windows Phone 7开发人员创建应用,微软Si

PDC 10后,不少开发人员将目光转移到了移动应用开发平台,Windows Phone 7是移动应用平台之一,也是微软推出的最新移动平台操作系统。Silverlight作为Windows Phone 7应用核心开发技术,再一次展示其强大的功能和优势。为了方便Windows Phone 7开发人员创建应用,微软Silverlight团队特别推出Silverlight for Windows Phone Toolkit开发控件集合,目前已经包括了10余中独立控件可用于Windows Phone开发平台。11月3日,Silverlight for Windows Phone Toolkit开发控件包升级,推出四个新的Windows Phone控件:

  • AutoCompleteBox
  • ListPicker
  • LongListSelector
  • Page Transitions

 
 

AutoCompleteBox,这个控件大家并不陌生,在Google,百度搜索引擎平台经常用到,可自动搜索相关字符,对输入文本进行关联。


 
 

<toolkit:AutoCompleteBox ItemsSource="{StaticResource words}"/>

 
 

 
 

 
 

ListPicker,该控件类似于ComboBox控件,用户选择时,弹出一个选项列表,用户可以从中选择其需要的选项。


 
 


 
 

<toolkit:ListPicker Header="background">

    <sys:String>选项1</sys:String>

    <sys:String>选项2</sys:String>

    <sys:String>选项3</sys:String>

</toolkit:ListPicker>

 
 

 
 

LongListSelector, 该控件是对于ListBox控件的一个扩展,在原有ListBox基础上,增加了一些特殊功能,例如平行列表,分组列表等。


 
 


 
 


 
 

<toolkit:LongListSelector

    ItemsSource="{StaticResource movies}"

    ListHeaderTemplate="{StaticResource movieListHeader}"

    GroupHeaderTemplate="{StaticResource movieGroupHeader}"

    GroupFooterTemplate="{StaticResource movieGroupFooter}"

    GroupItemTemplate="{StaticResource groupItemHeader}"

    ItemTemplate="{StaticResource movieItemTemplate}">

</toolkit:LongListSelector>

 
 

 
 

 
 

Page Transitions,可以提供页面动画切换效果。


 
 

RootFrame = new TransitionFrame();

 
 

 
 

<toolkit:TransitionService.NavigationInTransition>

    <toolkit:NavigationInTransition>

        <toolkit:NavigationInTransition.Backward>

            <toolkit:TurnstileTransition Mode="BackwardIn"/>

        </toolkit:NavigationInTransition.Backward>

        <toolkit:NavigationInTransition.Forward>

            <toolkit:TurnstileTransition Mode="ForwardIn"/>

        </toolkit:NavigationInTransition.Forward>

    </toolkit:NavigationInTransition>

</toolkit:TransitionService.NavigationInTransition>

<toolkit:TransitionService.NavigationOutTransition>

    <toolkit:NavigationOutTransition>

        <toolkit:NavigationOutTransition.Backward>

            <toolkit:TurnstileTransition Mode="BackwardOut"/>

        </toolkit:NavigationOutTransition.Backward>

        <toolkit:NavigationOutTransition.Forward>

            <toolkit:TurnstileTransition Mode="ForwardOut"/>

        </toolkit:NavigationOutTransition.Forward>

    </toolkit:NavigationOutTransition>

</toolkit:TransitionService.NavigationOutTransition>

 
 

 
 

除了以上四个新控件以外,目前Silverlight for Windows Phone Toolkit中还包括以下几个控件:

  • GestureService/GestureListener
  • ContextMenu
  • DatePicker
  • TimePicker
  • ToggleSwitch
  • WrapPanel

Silverlight for Windows Phone Toolkit是开源项目,大家可以在项目官网上下载项目源代码和例程代码参考学习。

 
 

项目主页

 
 

代码下载

 
 

源文档 <http://www.silverlightchina.net/html/news/2010/1103/3149.html>

 
 

 
 

五、Sliverlight问题

2011年10月8日

22:05

 
 

Sliverlight for WP7 中WebBrowser控件对js和css的支持性总结

 
 

Written by 不可能不确定 on July 6, 2011 Categories: 编程杂记Tags: WP7Total 469 Views

 
 

最近因为工作上的原因,重拾C#做一个Windows Phone 7的客户端应用,虽然半途而废,不过也在碰摔中了解到了WP7的确是一个仓促之作,尤其是对于开发人员而言。

在应用中展示html或者远程网页,SliverLight for Windows Phone提供了一个叫WebBrowser的控件。在使用这个控件的过程中,发现了一个哭笑不得的问题:应用无法直接使用其内部的各类资源,无论是html还是图片,必须先得将这些复制到手机上,再从手机上读取后使用!天哪!亏WP7 SDK的开发人员想得出来,你看到这篇MSDN文章的时候一定会崩溃,不过我已经不是第一个遇到这种情况的人了

WebBrowser控件在默认的情况下,是不支持JavaScript的,若需要对其进行支持,需要设置其IsScriptEnabled为true,但要命的是,设置之后,只有在下一次打开页面的时候才会生效。

经测试,当html是从手机的独立存储中读取时,无论CSS是在手机内,还是在远程服务器上,均可正常支持。JavaScript同样如此。当html位于远程服务器中时,js可以是来自另外的远程服务器。

但致命的问题是,当WebBrowser控件中的内容有鼠标点击动作时,整个控件(还包括其它的输入性控件,如TextBox或者RadioButton)均有闪烁的情况!!这预示着大部分的html5游戏是没办法简单的移植了。

另外,对于WebBrowser中的内容,无法设置其x和y坐标,也无法设置其缩放比例!这点很是蛋疼。

看来,Android和iOS的确让Microsoft慌了手脚,NOKIA就不用说了。

 
 

源文档 <http://chensd.com/2011-07/js-css-support-in-webbrowser-of-sliverlight-for-windows-phone.html>

 
 

网络访问问题

2011年12月21日

17:09

 
 


图是本地192.168.13.11查询BSERVER 172.20.1.119:943 是否开放的封包截图

 
 

Silverlight 中的通信安全访问策略

 
 

解决办法:对启动项XAP,项目属性->Silverlight

打钩 允许在浏览器外运行程序

打钩 在浏览器运行需要提升的权限

 
 

源文档 <http://www.cnblogs.com/ysisl/archive/2009/10/31/1593493.html>

 
 

六. Silverlight 5问题

Sunday, October 23, 2011

9:24 AM

 
 

Guidelines for porting existing XAML code to Metro style code http://msdn.microsoft.com/en-us/library/windows/apps/br229571(v=VS.85).aspx

 
 

I dont see C# while creating new Project in Blend 5 preview. http://social.msdn.microsoft.com/Forums/en-US/winappsuidesign/thread/44e8bec2-4566-4ba3-80aa-b3f29fabe59e

 
 

blend 5 下载: http://www.microsoft.com/download/en/confirmation.aspx?id=9503

 
 

怎样制作Silverlight 4 的RSS阅读器 http://www.silverlightchina.net/html/tips/2010/1019/2738.html

 
 

Silverlight HttpWebRequest post请求数据 : http://www.silverlightchina.net/html/tips/2011/0511/7556.html

 
 

Style http://www.cnblogs.com/king1302217/archive/2010/06/09/1755035.html

 
 

sftp

pkrss.sourceforge.net

liandl,pkrss

lian456

 
 

跨进程访问:

HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyc);

this.Dispatcher.BeginInvoke(() =>

{

Stream stream = response.GetResponseStream();

BitmapImage bitmap = new BitmapImage();

bitmap.SetSource(stream);

this.image1.Source = bitmap;

}

);

 
 

No comments: