Silverlight实例教程 - Out of Browser开篇

众所周知,学习一门IT技术,最关键的是实践,无论是软件开发还是网络调试,只要在真实环境下勤于动手和思考,很快就能掌握一门技术,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的一些基本理论,在理论的基础上,我们将开始下一篇的实例演示。

转载于:https://www.cnblogs.com/Areas/archive/2011/08/26/2154601.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

河流水质指标预测与不确定性分析:机器学习模型的比较研究--文献阅读

电导率 (EC)、氢气功率 (pH)、溶解氧 (DO)、总溶解固体 (TDS)、硫酸盐 (SO4)、镁 (Mg)、氯 (Cl)、总大肠菌群 (TC) 和生化需氧量 (BOD) DO、BOD、化学需氧量 (COD)、pH、硝酸盐 (NO3) 和悬浮固体 (SS)

python科学计算三剑客_1-python数据分析-数据分析介绍、数据分析三剑客之NumPy

数据分析三剑客numpypandas(重点)matplotlibnumpy模块NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。侧重在于数值计算&#xff0c;也是大部分Python科学计算库的基础&#xff0c;多用于在大型、多维数组上执行的数值运算。重点numpy数组的创建numpy索引和切片…

SIP可靠性(SIP Reliability)

根据RFC3261&#xff0c;SIPUA必须支持TCP及UDP底层传输协议。这两种方式除了使用方式不一样之外&#xff0c;对SIP协议自身的影响主要体现在可靠性处理上。 SIP可靠性机制主要是为了支持不可靠传输层协议&#xff0c;如UDP。当SIP使用的传输层协议为TCP或TLS时&#xff0c;这种…

可以无限增加iPhone 的图标吗?

可以无限增加iPhone 的图标吗?iPhone屏幕上每个图标都对应一个应用程序&#xff0c;目前苹果商店中应用程序数量已经超过40万个&#xff0c;我们又能在手机里放多少呢&#xff1f;有人可能会说那要取决于iPhone的存储容量有多大&#xff0c;确实如此&#xff0c;那么如果假设空…

在日本山区流域使用支持向量机和 bagging、boosting 和 stacking 集成机器学习框架改进滑坡评估--文献阅读

为了在基于过程的模型中准确表示边坡稳定性&#xff0c;有必要包含大量涉及滑坡几何形状和内部结构的局部特征的特征。这包括但不限于斜坡的分层和不连续性、运动裂缝、裂片、陡坡、地垒/地堑结构、降雨、空气和土壤温度、土壤水分含量、许多点的地下水位、地表和深度但是&…

android 蒙版图片带拖动_推荐一个好用小巧的Android引导蒙版(浮层)库

更新&#xff1a;目前该库已更新v2.0版本&#xff0c;修改了调用api&#xff0c;详细使用可以看&#xff1a;可能是最好用的Android引导层库前言每当一个项目开发一个新功能&#xff0c;总会想办法及时让用户得知有这样一个新功能&#xff0c;这时通常会采用引导页或者蒙版(浮层…

用户代理行为

概述 用户代理分两种&#xff1a;UAC和UAS。区分的依据在于请求方和响应方。 当一个请求发生之时&#xff0c;即使用某个方法&#xff0c;根据请求方和响应方产生了UAC和UAS&#xff0c;从而可以建立起事务&#xff08;Transaction&#xff09;来。所以UAC和UAS是对某个事务而言…

AX 2009 界面伸缩功能

界面伸缩功能 在一个界面下&#xff0c;放置多个Grid之后&#xff0c;数据太多&#xff0c;要有个能推拉伸缩的功能&#xff0c;如下图&#xff1a; 中间横条可以上下拉动&#xff0c;折叠处可以关闭显示整个Grid 横条要代码实现&#xff0c;折叠只要设置一下Group就行。 纵向空…

使用增强回归树和随机森林模型进行溪流水质预测--文献阅读

流域特征和气候变量&#xff08;例如地形、土壤、气候数据&#xff09;也会影响河流水质。例如&#xff0c;陡坡可能会通过将污染物转移到溪流中来影响溪流水质&#xff0c;从而导致水质恶化。同样&#xff0c;土壤特性也会影响水质。例如&#xff0c;以母岩为主的流域显示出较…

解决方案架构师我需要懂代码吗_架构师不写代码,能行吗?

原标题&#xff1a;架构师不写代码&#xff0c;能行吗&#xff1f;从什么时候起&#xff0c;技术角色的提升就意味着脱离技术与交付&#xff1f;CTO 不写代码已经引起诸多争议了&#xff0c;架构师也不写代码&#xff0c;能行吗&#xff1f;就目前看来这似乎没什么问题。毕竟&a…

机器学习在地质灾害的文章--文献阅读

第一篇 Improved landslide assessment using support vector machine with bagging, boosting, and stacking ensemble machine learning framework in a mountainous watershed, Japan | SpringerLinkHeavy rainfall in mountainous terrain can trigger numerous landslide…

取消一个请求(Cancel)

CANCEL请求&#xff0c;就像名字所说的&#xff0c;是用来取消客户端发起的上一个请求的。 CANCEL请求UAS去终止上一个请求并且对上一个请求产生一个错误的应答。CANCEL对UAS已经给出终结应答的请求无效。所以&#xff0c;CANCEL请求的最大用处是取消需要服务器长时间处理的请求…

NYOJ88(数论)

题意明确&#xff0c;让计算出起始有m个金片的汉诺塔金片全部移动到另外一个针上时需要移动的最少步数是多少&#xff1f;&#xff08;由于结果太大&#xff0c;现在只要求算出结果的十进制位最后六位&#xff09; 解题思路&#xff1a;大家都很熟悉汉诺塔求移动次数公式为f(n1…

Linq 学习笔记(二)

Linq 学习笔记&#xff08;二&#xff09; 下面就来介绍一些查询的示例&#xff1a; 1。Linq查询 var racers from r in Formula1.GetChampions()where r.Wins > 15 && (r.Country "Brazil" || r.Country "Austria") select r;foreach (var …

机器学习在水文地质方面的文章--文献阅读

第一篇 Ensemble machine learning paradigms in hydrology: A review - ScienceDirecthttps://www.sciencedirect.com/science/article/pii/S0022169421003139?via%3Dihub第二篇 Stream water quality prediction using boosted regression tree and random forest models …

查询能力(SIP OPTIONS)

SIP方法OPTIONS允许一个UA来查询另外一个UA或者proxy服务器的能力。这个提供客户端一个手段来查询服务端支持的方法&#xff0c;内容类型&#xff0c;扩展&#xff0c;codecs等等。比如&#xff0c;在客户端试图在INVITE请求头中增加一个请求字段选项的时候&#xff0c;它并不知…

单体预聚合的目的是什么_高分子化学实验指导书-修改-2012

高分子化学实验指导书任课教师姓名&#xff1a;王小慧王小英所用教材&#xff1a;《高分子化学实验》何卫东主编中国科学技术大学出版社选读参考书&#xff1a;《高分子化学实验》梁晖卢江主编化学工业出版社一、教学形式1、课前&#xff0c;学生通过阅读参考书和《高分子化学实…

MemDC,GDI绘制注意点

最近绘制老犯同样的错误&#xff0c;记录下: 1.MemDC中的MemBmp大小一定要设定好&#xff0c;经常设小了&#xff0c;后面的绘不出来&#xff0c;同时最后dc.bitblt时&#xff0c;大小一定要和MemBmp 一致&#xff0c;同样经常是MemBmp必变了&#xff0c;bitblt的rcDest没变&am…

基于集成学习的不平衡数据集分类问题研究--文献阅读

参考文献 基于集成学习的不平衡数据集分类问题研究 - 中国知网https://kns.cnki.net/kcms/detail/detail.aspx?dbcodeCMFD&dbnameCMFD202201&filename1021697818.nh&uniplatformNZKPT&vK9J_5NETTyZXPhDr5D6KwISCv2zm0skRm7rEZ0KmYS0Yv_zs562Re8oiwR5h_ylK 文…

SIP注册

注册服务为特定地区的位置服务创建绑定关系&#xff0c;这个绑定关系是用来建立包含一个或者多个联系地址的address-of-recordURI。因而&#xff0c;当那个地区的proxy接收到一个请求&#xff0c;这个请求的Request-URI和address-of-record的记录匹配&#xff0c;那么这个proxy…