E文
许多Silverlight开发人员注意到Silverlight的安装呈现模型在Silverlight1.0与Silverlight2.0之间有着根本的区别.Silverlight1.0依赖一个JavaScript帮助文件——Silverlight.js,供于插件的安装体验.Silverlight2.0的项目却脱离了JavaScript模型,转为一个更为常见的标签模型.这就带来了一些问题:为什么1.0使用Silverlight.js?为什么2.0使用<object>?更重要的是,哪一个模型更适合我?
为什么1.0使用Silverlight.js?
许多Silverlight1.0的开发人员记得开发时需要一个名为Silverlight.js的帮助文件.这个文件的核心包括了一个
Silverlight.createObject函数.当一个页面调用这个函数时,Silverlight.js将检测Silverlight是否安装,如果已经安装,将会推送一个Silverlight控件至一个预定的<DIV>.这个模型为开发人员提供了许多便利.首要的,Silverlight1.0是一个新产品,使用<object>标签不便于大多数开发人员的理解.通过提供一个命名为helper函数的参数我们可以帮助人们习惯Silverlight的开发模型,并且无需手动创建<object>;标签.第二个是安装体验.Silverlight.js提供一个统一的跨平台安装体验,不依赖于特殊的浏览器安装技术.第三是Installation binary选择.Silverlight1.0适用于Windows,Intel Mac,与PPC MAC.通过Silverlight.js的使用,开发人员无需为不同系统提供相应的安装URL.在用户点击安装按钮后,js文件将执行恰当的事件.最后,Silverlight.js提供了有一个有用的功能.如果一个已配置Silverlight的站点希望提供特殊的安装体验,可以通过预设JavaScript达到目的.使用JavaScript同样可以帮助网站在IE中去除”点击激活插件(Click To Activate)“的请求.
为什么在2.0中使用<object>?
虽然Silverlight.js有许多好处,但是站长为了使用它仍然需要积极的更新.Web环境随着时间的推移而变化,Microsoft也会继续升级Silverlight.js文件.它这样做,那么希望使用新功能的站长也需要下载最新版本的文件,升级进而测试他们的站点,配置产品.
在Silverlight1.0时,我们希望提供一个轻量级的Silverlight安装呈现方法,这将会给开发人员许多方便,脱离Silverlight.js,进而无需花费时间精力维护Silverlight.js.明确这点,我们希望一个模型遵循以下标准:
1.兼容Silverlight1.0
2.仅基于静态的HTML
3.为客户端提供合适的安装文件(Mac,Windows,其它)
4.为不能够使用Silverlight的用户提供可行的反馈.
5.提供一个易用的可定制的安装升级体验
经过许多提议和测试后我们发现<object>标签方法,它整合了许多优秀的服务和控制技术,使我们有能力满足上述需求,拥有更强的可扩展性.我会在接下来的文章总结关于它如何工作的详细内容,这里有一个概要,你可以使用<object>的方法:
- 支持关闭script的用户
- 不间断服务器端的用户环境侦测.
- 简单的HTML安装升级体验开发
*他们需要Windows exe?
*他们需要Mac dmg?
*他们运行在一个不支持模式中(64位浏览器)?
*他们运行在一个不支持的平台上?
哪一个模型适合我?
如同你所期望的,两个模型仍然继续同时存在,因为有些情况下,两者之间不可替代.
使用<object>标签,如果你希望在不会干扰HTML或JavaScript的情况下增加Silverlight内容.你的用户会在不启动JavaScript的情况下安装升级,查看Silverlight内容.Microsoft会为你的站点用户提供基于服务器端侦测的安装和错误解决的web内容.你的站点会与最新的Silverlight自动工作。浏览器的改变不会对你的站点功能产生影响.因为你使用的是简单的HTML标签而不是script.
使用Silverlight.js,如果你可以积极的维护你的Silverlight内容,并且希望有良好的可操控的用户体验.你希望使用script提供特殊的JavaScript驱动体验,如当Silverlight未安装,当安装按钮按下,当安装结束,等等.你也希望确信用户在IE中不会看到”Click To Activate”.最后,你可以实现当安装结束后刷新Web页面.因为script更容易受浏览器改变的影响,所以确信能够经常核对最新的Silverlight.js文件.
使用整合的模型,如果你希望简单的<object>能够实现在安装后自动页面刷新.仅需要包括[coolcode lang=”xml”][/coolcode]指向Silverlight2 Beta2 SDK的Silverlight.js文件,即可以实现上述体验.
Thanks !
What for?
[…] 接上一篇《呈现Silverlight:HTML vs. Script》 原文 水平有限,出现不准确的地方请指正。谢谢。 […]