众所周知,学习一门IT技术,最
关键的是实践,无论是软件开发还是网络调试,只要在真实环境下勤于动手和思
考,很快就能掌握一门技术,Silverlight也不例外。为了帮助更多朋友
快速学习掌握Silverlight应用开发,我计划以实例应用的方式,讲述Silverlight的各个特性,从而达到在学习理论的基础上,和实践相结合的目的。在每个阶段的实例教程中,将围绕
一个Silverlight特性为核心
主题进行扩展学习。
我的开发环境是:
Expression Blend 4 Premium
英文版
Silverlight 4
第一篇Silverlight实例应用,我们从Silverlight的Out-of-Browser开始。在实例开始之前,我们对Silverlight的Out-of-Browser进行
一个理论回顾。
什么是Silverlight的Out-of-Browser应用?
Silverlight Out-of-Browser应用,从字面理解是Silverlight脱离浏览器的应用,也可以理解为Silverlight离线应用,简称为OOB。微软给出的解释是OOB应用是可以安装到本地的运行在浏览器之外的应用,简单的理解,Silverlight OOB应用就是
一个不需要存取HTML DOM,并且完全脱离浏览器,@R_30_10
058@窗口的Web应用。微软在Silverlight 3已经发布该
功能,由于当时Silverlight 3的种种限制,Silverlight的OOB应用基本没有过多的发展,但是这个新特性给当时的开发人员留下了深刻的印象,微软在随后的Silverlight 4版本中,对OOB
功能进行的强化,例如OOB的权限信任
支持,
自定义窗口设计
支持,消息通告API
支持等。这些
功能,不仅增强了Silverlight跨平台应用
功能支持,而且还加大了
用户对Silverlight离线应用的体验。
让我们看
一个Silverlight OOB的案例,下图是新浪财经的Silverlight OOB应用,该应用作为独立窗口运行,没有基于浏览器,
Silverlight Out-of-Browser的运行原理?
作为Silverlight开发人员应该都知道访问Silverlight应用其实就是对服务器端的XAP
文件进行读取,Silverlight OOB同样是基于Silverlight技术的应用,所以OOB应用也是访问运行XAP
文件,但是该
文件是来自本地的目录。Silverlight OOB应用的访问步骤:
1. 首先需要配置AppManifest.xml,使应用
支持Out-of-Browser;
2. 然后
安装oOB应用,这时Silverlight项目的XAP
文件将被下载到
一个本地目录存储;
3.
在本地运行OOB应用,这时,应用会根据XAP的原始URL发出请求,检测是否有新版本,如果有,则更新,如果没有将继续运行;
Silverlight Out-of-Browser的存储位置?
上文已经讲到Silverlight OOB应用,安装成功后,XAP将保存
在本地目录,而这个目录从桌面快捷方式是无法查看到的,例如刚才我们演示的新浪财经OOB应用,在快捷方式中,仅
显示“"C:\Program Files (x86)\Microsoft Silverlight\sllauncher.exe" 3161465351.vip.stock.finance.sina.co
m.cn”, 从上面目录下的
Metadata元数据
文件中可以得知3161465351.vip.stock.finance.sina.co
m.cn是该
用户的唯一的AppID。
而其真实存储目录则在C:\Users\<login id>\Ap
PDAta\Local\Microsoft\Silverlight\OutOfBrowser\3161465351.vip.stock.finance.sina.co
m.cn,
1
ShortcutName=新浪财经
2
LaunchPath=C:\Users\kevin.fan\ApPDAta\Local\Microsoft\Silverlight\OutOfBrowser\3161465351.vip.stock.finance.sina.com.cn\index.html
3
CustomIcon=1
4
TrimmedsourceDomain=vip.stock.finance.sina.com.cn
5
Trimmedtitle=新浪财经
6
TrimmedName=新浪财经
7
ElevatedPermissions=2147483647
8
XapLastModified=Thu, 27 May 2010 07:01:27 GMT
9
EnableGPUAcceleration=false
10
WindowStartupLOCATIOn=0
11
WindowTop=0
12
WindowLeft=0
13
WindowWidth=800
14
WindowStyle=0
15
WindowHeight=600
16
sourceDomain=vip.stock.finance.sina.com.cn
17
OriginalsourceUri=http://vip.stock.finance.sina.com.cn/silverpulse/ClientBin/Loader.xap
18
FinalAppUri=http://vip.stock.finance.sina.com.cn/silverpulse/ClientBin/Loader.xap
19
RuntimeVersion=4.0.50401.0
20
AppID=3161465351.vip.stock.finance.sina.com.cn
21
Description=新浪财经
22
title=新浪财经
23
Name=新浪财经
Silverlight In-of-Browser和Silverlight Out-of-Browser的对比
在Silverlight 4中,微软对OOB
功能进行了强化,对比Silverlight In-of-Browser和Out-of-Browser,在
功能上有着很大的差异,
1. OOB应用最大的特点是
用户可以不需要任何网络
支持在本地运行应用;
2. OOB应用
支持Trust权限提升
功能,也就是所谓的Elevated Trust模式,该模式是Silverlight 4 OOB强化中最关键的特征之一,通过权限提升,OOB应用可以做到许多Windows应用
功能,例如:
a. 在权限允许的情况下,OOB应用可以访问本地
文件目录;
b. 在权限允许的情况下,OOB应用可以被锁定
显示自定义应用图标在Windows开始
菜单和任务栏中;
c. 在权限允许的情况下,OOB应用可以访问COM API;
d. 在权限允许的情况下,OOB应用
支持XAP签名认证;
e. 在权限允许的情况下,OOB应用
支持消息
通知API
调用;
d. 在权限允许的情况下,OOB
支持HTML WebBrowser;
3. OOB应用每次运行都需要进行版本
升级检查,而In-of-Browser则是项目运行时
自动更新;
4. OOB应用无法接收初始化参数数据,而In-of-Browser可以;
5. 对于Isolated Storage空
间的分配,OOB应用
默认分配25M,而基于浏览器的Silverlight应用仅为1M,但是两者都允许
用户进行
自定义扩展;
以上是Silverlight Out-of-Browser的一些基本理论,在理论的基础上,我们将开始
下一篇的实例演示。