Silverlight新型的富媒体

 

微软用 Windows打倒了最先实现视窗界面的苹果电脑,又用Office杀死了昔日办公软件领域的巨头Lotus,当微软盯上浏览器市场的时候,又成功的用IE浏览器取代了网景浏览器,成为绝对霸主。而今微软又推出Silverlight 3,目标直指Flash……
 
Silverlight 的富内涵
提起网络动画, Flash大概会是许多人第一时间联想到的,如今在互联网中,由于Flash的便捷与所具有的丰富功能,Flash已经成为了富媒体的代表软件,曾为了许多网站的必备的标准元素,甚至产生了独特的闪客文化。
Flash诞生的最初只是为了解决如何利用有限的带宽传输矢量动画的技术,随着网络带宽与速度变得越来越快,Flash的多媒体互动效果在这样的网络环境中发挥出了巨大的效果。特别是在HTML无法实现丰富的多媒体效果下,Flash逐渐成为了HTML之外的另一个业内富媒体标准。
近年来伴随着网络带宽不断的扩展,特别是云计算的发展, HTML不再能够满足云端这样的瘦客户机的需求,此时Flash这种富媒体技术开始展现自己的魅力,并且随着网页对多媒体与互动效果的需求日渐成为未来发展的趋势。而此时对于微软而言,推出一款自己的富媒体标准就显得十分必要,于是Silverlight急迫的诞生了。
目前 Silverlight虽然看起来和Flash具有同等的功能,然而实际上Silverlight虽然与Flash构成竞争关系,但在产品定位上有很大的不同。在微软的产品梯队中,Silverlight属于Windows Presentation Foundation (WPF) 的一个子集,同时也是 XAML (eXtensible Application Markup Language) 的子集,具有向量式的绘图能力,以及多媒体与图形显示的支持。
也就是说开发人员能够使用声明式开发 (declarating development) 来发展 Silverlight 应用程序,因此与Flash不同,Silverlight产品的亮点更偏重于程序设计,它能够配合.net framework与微软其他开发系统让程序员开发出交互性更强的互动多媒体网站,而在Flash在程序控制方面一直相对较弱。
Silverlight 1从诞生到如今的 Silverlight 3,一直在加强程序的控制能力,而且对于Adobe提出富媒体等于“Rich Internet Application”不同的是,微软所理解的富媒体概念是“Rich Interactive Application”,也就是更加丰富的网络动态应用。由此也能够看出,Silverlight虽然是Flash的强劲对手,但是实际上两个产品的定位却相距甚远。
 
快速成长与Flash分庭抗礼
Silverlight诞生的那一天起,大众就一直拿它同Flash进行比较。这种竞争虽然没有摆到台面上,但是实则一天都没有停止过。2007年9月,Silverlight 1.0 RTM初涉市场时,它只是一个由许多内核展示层架构组成,支持基本网页调用银光元件,加载XAML 档。提供的元素也只是几何基元,像是:线、椭圆以及其它简单形状。
然而不到两年的时间,到 Silverlight 2.0时,它已经能够支持.NET Framework缩小版的基类函数库,并且大量内置了Silverlight控件,以及广泛的网络Networking支持能力,举例来说就是支持REST、WS*/SOAP、POX,RSS及标准HTTP服务等网络技术的调用,这部分对前端的Silverlight特别重要,通过网络程序才能访问后端Server的数据,以回传绑定显示在用户界面之上。
在视觉效果的提升方面,最新发布的 Silverlight 3.0,微软加强了它对于影音媒体内容的保护,是通过DRM技术来进行内容保护。并大大将强了对视频流的处理性能,让Silverlight 3的视频效果完全可以和电视视频媲美,在流行音乐天王迈克•杰克逊的悼念晚会以及温布尔登网球公开赛网络直播时,Silverlight 3的平滑视频功能充分的现实了自己的实力。
而且 Silverlight 3支持更强大的3D显示功能,新增加的一些功能可以用于图片的深度缩放,现场感更强。在2007年刚推出Silverlight的时候,使用Silverlight必须基于IE浏览器,如今的Silverlight 3突破了只支持IE的单一路线,实现了跨平台及跨浏览器支持,甚至可以摆脱浏览器,让Silverlight 3开发的应用可以直接运行。
虽然就目前来讲, Flash基本还是一家独大的情形。不管从插件的装机率,还是开发人员的数量来讲都具有绝对的优势。但是我们也需要看到Silverlight的装机率在不断的提高,微软官方发布的下载数据已经达到4亿,同时还拥有数千个Silverlight应用,而Silverlight3.0发布后,更充分的技术准备让Silverlight具备了在富媒体领域和Flash一争高下的资本。而这一切变化仅用了不到3年时间。
 
Silverlight 的前景
不断完善的 Silverlight最终能否彻底征服Flash的用户,占领Adobe的市场呢?从目前来看,这条道路似乎还很漫长。首先微软缺乏像Adobe那样的强大的多媒体产品线,Silverlight虽然能够实现Flash的效果,但是也仅是网页效果而已。对于将富媒体融合到电子出版物,如PDF等之类的工作,微软目前不仅是缺乏相关产品,也没有能力做到如同Adobe如此长,且环环相扣的产品线中。
此外, Silverlight想要实现如同Flash动画一样的效果,也需要Photoshop、Fireworks、IIustrator等丰富的周边设计软件的支持,而目前微软的Expression Studio 3要想赶上Adobe的设计软件能力仍然需要奋斗很长一段时间,或者说现在仅是万里长征中的第一步。
毕竟 Flash已经占据市场多年,具有90%以上的市场占有率,其产品的成熟度和普及率都是Silverlight现阶段无法比拟的。最有趣的证明是,微软为了Windows 7制作了一个新的产品演示页面,并邀请专业设计公司Digital Kitchen负责完成这段演示。但是有趣的是,这段演示在这家公司的网站上并非用Silverlight播放的,而是Adobe的Flash播放。这足以显示,Adobe在众多设计公司心目中的地位,而微软目前在设计行业中并没有这样的影响力。
除此之外,由于大家都看到了富媒体的趋势,大家都希望在该市场能分一杯羹。像 Google这样的网络巨头正在积极的推动新一代的Web标准HTML5,HTML5是集多媒体与互动性为一体的新一代的Web标准,简单的说他可以让浏览器不需要安装插件就可以实现现在Flash和Silverlight所能达到的富媒体功能。
尽管 HTML5还是一个未来的标准,真正的实现还需要几年的时间。但我们可以看到在将来的富媒体市场上,将不会是一家独大的局面,而是有多种技术并存,各种技术之间的差异性将会越来越小。
技术平台的稳定性和延续性,技术平台对开发人员的友好程度,技术的应用成本等将决定其命运。而 Silverlight将很有可能借助这些方面的优势占据一个更有利的位置,让我们拭目以待吧。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的IsEnabled=“{BindingABC}”,但这不起作用–MenuItem总是启用.提前感谢您的线索!干杯编辑:有趣的是,当设置Mode=TwoWay时,绑定似乎有效.但是,在菜单项上移动鼠标后,将更新上下文菜单的外观.这是异步工作吗?右键
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,因为我确信即使是一个c#人也可以使用类似的.net实现来回答这个问题).我申请的简短说明:我的桌面应用程序将仅在win平台上运行,使用vb.net,它是一个简单的网吧管理软件,在服务器上运行服务器gui,在工作站上运行客户端gui,
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如果它在UIThread上,如何将文件请求和ProcessFile()移动到单独的线程?varxClient=newServiceReference1.Service1SoapClient();xClient.Retrieve_File_Completed+=newEventHandler<ServiceReference1.Retrieve_Fi
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不在办公室使用sharepoint.所以不知道如何开始.这些是我的新手问题>学习共享点值得努力吗?>学习sharepoint的资源在哪里?>我是否应该考虑开发哪些参考项目?感谢您的意见.解决方法:SharePoint以如此积极的方式改变了我的职业
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:Thecollectiondatacontracttype‘System.Collections.Generic.Listcannotbedeserializedbecauseitdoesnothaveapublicparameterlessconstructor.Addingapublicparameterlessconstructorwillf
我需要根据Silverlight中的某些配置值设置给定控件的Style.我想有可能从两种可用的样式(静态资源)中选择一个控件样式.我试图做一些像:<TextBoxStyle="{BindingABC}"/>哪里publicstringABC{get{return"{StaticResourceMyStyle}";}}不幸的是,这不起作用.你有
我刚买了第一台Android设备,我喜欢它…我也很喜欢你可以创建自己的应用程序并随意分发它们.我已经阅读了一些关于Monodroid的内容,而且显然微软希望将Silverlight放在这些设备上,尽管没有太多关于它们的信息……但是Moonlight呢?如果Monodroid就像Mono……为什么我们需要它呢?相反
我们的ASP.NET网站允许用户执行各种查询,并根据从数据库查询的结果显示网络图(如UML图).目前,我们正在生成一个位图并显示它.但由于我们需要支持允许用户以交互方式显示/隐藏某些块的功能,因此我们计划使用Silverlight来渲染图形.我们还计划在未来添加更多互动.我有两个问题:>ASP
我正在开发一个Silverlight4应用程序,我已经创建了一个自定义的启动画面.乍一看,自定义启动画面运行良好–非常好.几天后,我开始注意到闪屏不再显示,屏幕仍然是空白.这似乎只发生在我打开多个指向同一个应用程序的IE选项卡/窗口时.前几个将加载正常,而以下选项卡/窗口将保持“白
这是我的XAML:<ImageVerticalAlignment="Center"HorizontalAlignment="Center"Source="{BindingInput,Converter={StaticResourceByteArrayToBitmapConverter}}"><Image.Rend
问候,我有一个ItemsControl,我更改了模板,为绑定的ItemsSource中的每个对象显示一个RadioButton.但是ItemsSource可以为空,当它为空时我想显示默认值.像“绑定列表中没有可供您选择的项目”……我想到的一种方法是将ItemsControl.Visibility设置为Collapsed,并将TextBlock.Vsibi
堆栈溢出的第一个问题……我是C#的新手,但在学习它时却非常直接.几分钟前我才看到这个tutorial.通过各种c#技术阅读WCF,WPF,Silverlight,c#和asp.net,这是很多技术都可以用c#来实现.我将创建一个Web应用程序c#.我认为SilverLight似乎是我最好的选择.该应用程序将拥有一个数
我正在使用MVVM(Model-View-ViewModel)模式编写应用程序,并利用MicrosoftP&P团队的Prism和Unity位.我有一个包含项目列表的视图.这些项包含在ViewModel中的ObservableCollection中,View中的列表框是数据绑定的(ViewModel设置为View的DataContext).在ViewModel中,我有一个运行的
我有一个应用程序,它在首次运行时显示免责声明页面.选择“接受”或“拒绝”后,您再也看不到该页面了.但是,当您在第一次运行后按后退键尝试关闭应用程序时,您将返回免责声明页面,然后再次点击该页面,返回主页面,然后再次退出.这仅在应用程序第一次运行时发生,但我希望应用程序在
我正在尝试在SilverlightforWindowsPhone中使用异步HttpWebRequest.一切都很完美,直到我到达我应该打电话的地方privatestaticManualResetEventallDone=newManualResetEvent(false);...request.BeginGetResponse(newAsyncCallback(GetResponseCallback),request);a
嗨,我有两个Writablebitmap,一个来自jpg,另一个来自png,并使用此方法在循环中混合颜色:privatestaticColorMix(Colorfrom,Colorto,floatpercent){floatamountFrom=1.0f-percent;returnColor.FromArgb((byte)(from.A*amountFrom+to.A*perc
我需要开发一个程序,它包含一个图像(png),中心有一个洞.在这个图像下将有一个框架,我想点击图像的透明孔我可以点击框架内的按钮.我不知道是否有一种方法可以通过图像或其他方式传播点击.谢谢你的帮助解决方法:你在图像上将IsHitTestVisible设置为false,然后点击浏览.
我正在研究一个silverlight应用程序,我发现List没有Find扩展方法说,List<Something>list=newList<Something>(something);list.Remove(list.Find(e=>e.id==10));没有查找扩展方法我错过了什么?解决方法:它不包括在内以减小运行时的大小.建议您使用LINQ扩展,例如First
我试图弄清楚如何设置Path元素的Data属性来获得此类型的软角:alttexthttp://i42.tinypic.com/1rzu6w.jpg现在我只有这样的尖角:alttexthttp://i42.tinypic.com/2eeleah.jpg我尝试用椭圆玩,但我无法得到我想要的东西.谢谢最佳答案:路径的段具有IsSmoothJoin属性,默认为false.
问题我有一个在远程服务器上运行的restfulWeb服务.我已经制作了一个使用它的WP7应用程序,所以我知道它有效.我正在将应用程序移植到SilverlightWeb应用程序并遇到问题.我已经包含了代码的简化版本以及引发的错误.EndGetResponse方法抛出错误.随意询问更多信息.我一直在寻找解