Silverlight实例教程 - Out of Browser开篇

Silverlight实例教程 - Out of Browser开篇,第1张

概述众所周知,学习一门IT技术,最关键的是实践,无论是软件开发还是网络调试,只要在真实环境下勤于动手和思考,很快就能掌握一门技术,Silverlight也不例外。为了帮助更多朋友快速学习掌握Silverlight应用开发,我计划以实例应用的方式,讲述Silverlight的各个特性,从而达到在学习理论的基础上,和实践相结合的目的。在每个阶段的实例教程中,将围绕一个Silverlight特性为核心主题进

众所周知,学习一门IT技术,最关键的是实践,无论是软件开发还是网络调试,只要在真实环境下勤于动手和思考,很快就能掌握一门技术,Silverlight也不例外。为了帮助更多朋友快速学习掌握Silverlight应用开发,我计划以实例应用的方式,讲述Silverlight的各个特性,从而达到在学习理论的基础上,和实践相结合的目的。在每个阶段的实例教程中,将围绕一个Silverlight特性为核心主题进行扩展学习。

 

我的开发环境是:

windows 7 ultimate 英文版

Visual Studio 2010 Premium 英文版

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,并且完全脱离浏览器,具有独立窗口的Web应用。微软在Silverlight 3已经发布该功能,由于当时Silverlight 3的种种限制,Silverlight的OOB应用基本没有过多的发展,但是这个新特性给当时的开发人员留下了深刻的印象,微软在随后的Silverlight 4版本中,对OOB功能进行的强化,例如OOB的权限信任支持,自定义窗口设计支持,消息通告API支持等。这些功能,不仅增强了Silverlight跨平台应用功能支持,而且还加大了用户对Silverlight离线应用的体验。

让我们看一个Silverlight OOB的案例,下图是新浪财经的Silverlight OOB应用,该应用作为独立窗口运行,没有基于浏览器,

 

 

Silverlight Out-of-browser的运行原理?

Tim Heuer是微软Silverlight项目经理,他的博客中曾经发表过相关Silverlight Out-of-Browser的运行原理 , 在这里我们以简单的方式理解一下Silverlight OOB的运行原理。

作为Silverlight开发人员应该都知道访问Silverlight应用其实就是对服务器端的XAP文件进行读取,Silverlight OOB同样是基于Silverlight技术的应用,所以OOB应用也是访问运行XAP文件,但是该文件是来自本地的目录。Silverlight OOB应用的访问步骤:

1. 首先需要配置AppManifest.xml,使应用支持Out-of-browser;

2. 然后安装OOB应用,这时Silverlight项目的XAP文件将被下载到一个本地目录存储;

3. 在本地运行OOB应用,这时,应用会根据XAP的原始URL发出请求,检测是否有新版本,如果有,则更新,如果没有将继续运行;

以上是最简单的理解,在网络上有一篇翻译Tim的文章,大家可以阅读Silverlight OOB的运行原理中文版加深理解。

 

Silverlight Out-of-browser的存储位置?

上文已经讲到Silverlight OOB应用,安装成功后,XAP将保存在本地目录,而这个目录从桌面快捷方式是无法查看到的,例如刚才我们演示的新浪财经OOB应用,在快捷方式中,仅显示“"C:/Program files (x86)/Microsoft Silverlight/sllauncher.exe" 3161465351.vip.stock.finance.sina.com.cn”, 从上面目录下的Metadata元数据文件中可以得知3161465351.vip.stock.finance.sina.com.cn是该用户的唯一的AppID。

 

 而其真实存储目录则在C:/Users/<login ID>/AppData/Local/Microsoft/Silverlight/OutOfbrowser/3161465351.vip.stock.finance.sina.com.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的一些基本理论,在理论的基础上,我们将开始下一篇的实例演示。

 

 

欢迎大家加入"专注Silverlight" 技术讨论群:

32679955(六群) 23413513(五群) 32679922(四群) 100844510(三群)

37891947(二群)

22308706(一群)

总结

以上是内存溢出为你收集整理的Silverlight实例教程 - Out of Browser开篇全部内容,希望文章能够帮你解决Silverlight实例教程 - Out of Browser开篇所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1029064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存