众所周知,学习一门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的一些基本理论,在理论的基础上,我们将开始下一篇的实例演示。
转载jv9的Blog,学习之用.

转载于:https://www.cnblogs.com/kingdom_0/articles/2286028.html

Out of Browser 开篇相关推荐

  1. Silverlight实例教程 - Out of Browser开篇

    众所周知,学习一门IT技术,最关键的是实践,无论是软件开发还是网络调试,只要在真实环境下勤于动手和思考,很快就能掌握一门技术,Silverlight也不例外.为了帮助更多朋友快速学习掌握Silverl ...

  2. Silverlight - Out of Browser配置,安装和卸载

    Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Sil ...

  3. 一起谈.NET技术,Silverlight实例教程 - Out of Browser的Debug和Notifications窗口

    Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Sil ...

  4. Silverlight实例教程 - Out of Browser在线更新和Silent安装

    通过前几篇的学习和实践,相信大家可以很轻松的创建个性化Silverlight Out of Browser应用.上周,在银光中国网论坛有人问到对于Silverlight Out of Browser应 ...

  5. Android系统架构开篇

    Android系统庞大且错综复杂,Gityuan带领大家初探Android系统整体架构,一窥其全貌. 一.引言 本文作为Android系统架构的开篇,起到提纲挈领的作用,从系统整体架构角度概要讲解An ...

  6. neo4j browser执行脚本后不提示用时_还不懂什么是分层自动化测试的,有赞的实践经历告诉你...

    来源:https://testerhome.com/articles/19109 #  背景 先理一下自动化测试的概念,从广义上来说,一切通过工具(程序)的方式来代替或者辅助手工测试的行为都可以成为自 ...

  7. 智能会议系统(30)---WebRTC学习之一:开篇

    WebRTC学习之一:开篇 一.无插件的实时通讯 想像一下,如果你的手机.电视.电脑都可以通过一个平台进行通信,想像一下,你可以在Web应用中轻松地加入视频聊天和p2p数据分享,这就是WebRTC的愿 ...

  8. Android 系统(54)---Android系统开篇

    Android系统开篇[转 学习] 一.引言原网址 Android系统非常庞大.错中复杂,其底层是采用Linux作为基底,上层采用包含虚拟机的Java层以及Native层,通过系统调用(Syscall ...

  9. deepin初试与file browser使用小结

    ①c盘也可以弄压缩盘安装deepin啊 ②deepin硬盘格式Windows看不见,而在deepin中Windows硬盘可以看见 ③安装完deepin如果直接进入了win10,其实不用费这么大劲搞来搞 ...

  10. VS2013自带的Browser Link功能引发浏览localhost网站时不停的轮询

    浏览localhost网站时候不管你打开那个页面它都会不停的轮询.据悉这是VS2013自带的Browser Link功能,里面用到SignalR机制 什么是Browser Link功能,什么是Sign ...

最新文章

  1. 各种主流 SQLServer 迁移到 MySQL 工具对比
  2. 26.使用ajaxSetup()方法设置全局Ajax默认选项
  3. 微信小程序 wx:key 提示-解决
  4. 初使用swagger遇到的问题(1)
  5. 关于'java' 不是内部或外部命令,也不是可运行的程序 或批处理文件 和 错误: 找不到或无法加载主类 helloworld的问题...
  6. HTML注释的表示方法,如何表示HTML注释
  7. 注意啦,Struts 2.1.6跟sitemesh-2.4.1不兼容
  8. JN5169 ZigBee 3.0 协议栈之 ZigBee 网络参数
  9. 2021-06-02使用Digispark(ATTINY85)制作一个Badusb
  10. ASP.NET MVC 上传文件方法
  11. 【思特奇杯·云上蓝桥-算法集训营】第1周----真题汇总+思路分析
  12. 滴滴新算法让你应对女友?道翰天琼认知智能机器人平台API接口大脑为您揭秘
  13. Oracle存储过程基本语法和存储过程的各种实例
  14. Linux非常牛逼的命令
  15. 快上车,老司机带你实现后台录像功能
  16. IOST节点搭建【私链】
  17. 分割与合并bin文件
  18. Green Hills Software GHS MULTI安装过程介绍
  19. 【Java-文件下载】
  20. 新库上线 | CnOpenData·A股上市公司现场检查随机抽查数据

热门文章

  1. Valid Palindrome LeetCode Java
  2. 局域网简单的SVN服务器的搭建
  3. 获取JQuery UI tabs中被选中的tabs的方法
  4. 好文要顶之 --- 简单粗暴地理解 JavaScript 原型链
  5. Hadoop可视化与交互式工具:Zeppelin和Hue
  6. notepad++ 快捷键大全
  7. C# 如何遍历删除某个控件上的所有子控件
  8. 近期团队博客的摘要 5
  9. override 和 new 关键字的总结
  10. 现代编译原理——第五章:活动记录