什么是Silverlight?

 Silverlight  微软Silverlight是一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验与富交互(RIA,Rich Interface Application)的网络交互程序。

  因为Silverlight提供了一个强大的平台,能够开发出具有专业图形、音频和视频的Web应用程序,增强了用户体验,所以SilverLight吸引了设计人员和开发人员的眼球。同时,Silverlight还提供了强大的工具来提高他们的工作效率。

  Silverlight能创建一种具有很高艺术性的应用程序,具有以下的特点:

  ◆一种跨浏览器、跨平台的技术。可以在所有流行的浏览器中运行,包括Microsoft Internet Explorer、Mozilla Firefox,Apple Safari,和Opera,同样可以运行于Microsoft Windows和Apple Mac OS X。

  ◆无论在哪运行,都能提供一致的用户体验。

  ◆需要下载很小的文件来安装以支持,只需几秒。

  ◆它的视频和音频流,视频质量无论从移动设备还是桌面浏览器都是720p HDTV video模式。

  ◆用户可在浏览器中直接对其进行控制,可以拖动、翻转、放大的图片。

  ◆它读取数据并且更新外观,但不会通过刷新整体页面来打断用户操作。

  Silverlight将多种技术结合到一个开发平台,可以在其中选择符合需求的合适的工具和编程语言。SilverLight提供了如下的特性:

  ◆WPF和XAML。Silverlight包含了Windows Presentation Foundation(WPF)技术,这个技术在创建用户界面时极大的扩展了浏览器元素。WPF可以创建融合图形、动画、媒体和其他的富客户端特性,扩展了基于浏览器的用户界面,超越了HTML所提供的。可扩展应用程序标记语言(XAML)提供了创建WPF元素的声明性标记。

  ◆对于JavaScript的扩展。Silverlight提供了对于全球浏览器脚本语言的扩展,从而为浏览器用户界面提供更加强大的控件,包括与WPF元素工作的能力。

  ◆跨浏览器,跨平台的支持。Silverlight在所有的流行浏览器(任何平台)运行一致。设计和开发应用程序不需要担心你的用户是什么平台什么浏览器。

  ◆与现存应用程序的集成。Silverlight可以与已经存在的JavaScript和ASP.NET AJAX代码无缝集成,不会使已经创建的功能缺失。

  ◆可访问.NET Framework编程模型和相关工具。可以使用托管的Jscript和IronPython或者C#和VB这样的动态语言来创建基于SilverLight的应用程序。可以使用Visual Studio这样的开发工具来创建基于Silverlight的应用程序。

  ◆LINQ。Silverlight包含集成查询(LINQ)语言。

  ◆如果已经使用ASP.NET,可以将Silverlight集成到熟悉的ASP.NET服务器和客户端功能。可以在ASP.NET中创建基于服务器的资源,使用ASP.NET的AJAX特性与服务器端资源交互而不会打断用户。

  开发工具:

  可以使用已经具有的技能和熟悉的工具来创建基于Silverlight的应用程序,在Web页面中,既可以使用HTML,也可以使用Silverlight的WPF元素,和HTML一样,在Web应用程序中XAML同样可以使用声明的标记来创建用户界面,不同的是,XAML提供了更强大的元素。

  可以使用强大的Visual Studio 2008 创建Silverlight应用。(Silverlight在Visual Studio 2008 的IDE中作为一个插件而得到支持。)同样Visual Studio为Silverlight提供了开发工具,比如.NET Framework中已经为创建应用程序提供的强大的编辑器、项目管理、调试等等。

  设计人员可以轻松的拥有使用Expression Studio进行设计、编译和发布Silverlight应用程序。Expression Studio有创建图像、媒体,设计交互和产生体验需要的一切能力。Expression Blend能够生成XAML进行输出,这样使用Visual Studio的程序员和使用Expression Blend的设计人员可以共享同样的文件。

  Silverlight 的核心是浏览器增强模块,其作用是呈现 XAML 并在浏览器界面上绘制生成的图形。它的下载体积较小(不到 2 MB),可以在用户点击包含 Silverlight 内容的站点时进行安装。该模块向 JavaScript 开发人员公开 XAML 页面的底层框架,以便实现页面级的内容交互,这样,开发人员就可以进行自己的工作,例如编写事件处理程序或使用 JavaScript 代码来处理 XAML 页面内容。

  在此,可以表明微软的Silverlight将会更加灵活和交互,并且具有超高的矢量方式,可以对图像进行无限制的伸缩,对flash MX地位发起了挑战。

Silverlight 2

  2008年6月底,微软发布silverlight2.0 beta,在2008北京奥运会时,NBC网站使用了silverlight2.0进行奥运的网上全程直播和点播。

  Microsoft 努力帮助保护您的隐私,同时为您提供个人计算所需的性能优异、功能强大且便于使用的软件。此隐私声明对 Microsoft Silverlight 2 ( "Silverlight" ) 的数据收集和使用惯例进行了说明。此隐私声明不适用于其他联机或脱机的 Microsoft 网站、产品或服务。

  Silverlight 可帮助您使用 Internet 浏览器访问和体验网站上的丰富内容。此隐私声明对 Silverlight 如何与 Microsoft 进行交互来为您提供 Silverlight 更新以及其他支持 Internet 的功能进行了说明。

  Silverlight 不会要求您提供联系信息,例如姓名、地址或电话号码等。但是,Silverlight 有时会通过 Internet 将独特的计算机特定信息传递到 Microsoft。

  基于 Silverlight 的应用程序可能会出于各种原因而在您计算机本地存储数据文件:为了保存自定义设置、为了存储具有大量图形特性的大型文件(例如游戏、地图和图像),以及为了存储在某些特定应用程序中创建的内容。应用程序存储在默认情况下是出于开启状态的,但网站最初会被限制为存储容量总计 1MB。如果应用程序要求 1MB以上的容量, Silverlight 就会询问您是否要为承载该应用程序的网站增加可储存空间。

Silverlight 3 Beta

  1. 支持更多的媒体编码格式

  在Silverlight3中新增加的多媒体编码格式包括H.264,AAC,MP4。Silverlight这项技术,从出生以来,就一直把对多媒体,尤其是视频的支持,放在首要位置。这次对更多的编码格式提供支持,方便网站建设者更容易的发布、部署视频资料,只需要如下一行XML:

  2. 利用GPU加速

  随着显卡计算能力的加强,应用程序把越来越多的图形计算任务从CPU中拿出来交给GPU完成。然而,要利用到GPU,对程序员而言通常意味着更多的编码任务,在Silverlight3中,这个任务的复杂程度被大大简化,只需要在XAML中多加入几行XML代码,就可以轻松享受GPU的超强计算能力。

  3. 透视化3D

  透视化3D,简单的说,就是把2D对象放到3D空间中去。和传统的3D把一个3D空间的对象投影到2D空间中不同,透视化3D意味着更高的性能,更友好的编程接口,同时能完成我们80%的3D任务。

  4. 自定义特效

  在silverlight3中,引入了shader的概念,它是一个像素粒度的操作——每当silverlight3要显示一个像素的时候,它对shader说:“我要显示这个像素了,你是否要做些处理,实现某些特效?”。我们来看看shader的强大之处:下面一个示例中,左边的图像是背景图像,右边的图像是前景图像,在silverlight3之前,我们尽管可以同时显示这两个图像,但是背景图像会被前景遮住。(当然可以设 置前景的透明度,但是这样整个前景图像的清晰度就下降了)我们在显示前景图像的时候可以应用一个shader:把所有的黑色过滤掉。这样,我们在前景上过滤掉所有黑色背景的同时,还拥有了一个清晰的火焰。

  目前,除了官方提供的阴影(shadow)和模糊(blur)shader使用GPU加速,其他的shader仍需运行在CPU上。

  5. 更多的控件支持

  每一个新的silverlight版本的发布,都伴随着很多新的控件的问世。这个版本也不例外,新推出的控件有:DockPanel,Expander,Label,TreeView,ViewBox等等。在这里举一个“Save as...”(另存为)控件的例子。可能有的朋友会问,“另存为”作为一个耳熟能详的控件,为什么要等到silverlight3才提供?答案是出于安全性的考虑:silverlight为了保护用户的安全,对本地文件的读写有很大的限制。(否则的话,如果服务器端可以随意读写用户的本地文件,那么就很容易做出一个钓鱼网站了)。silverlight3中,对另存为控件的支持也有着安全性的考虑。开发人员可以创建一个SaveFileDialog实例,但是当用户选定本地文件的时候,他只能得到这个文件的stream,而不是这个文件的路径。这样的设计避免了提供一个打开任意路径的本地文件的功能,从而使silverlight运行在一个更为安全的环境中。

  6. 本地消息传递(local messaging)

  Silverlight是浏览器的一个插件,在同一时间可能会有多个实例。比如多个浏览器同时访问包含silverlight的网页,就会有多个silverlight的实例同时运行,本地消息传递允许这些不同的siliverlight控件实例之间互相通信。

  7. 在浏览器外运行silverlight (Out of Browser)

  silverlight3支持把一个silverlight页面安装到本地,用户可以像一个桌面程序一样离线使用这个程序,并且可以右键卸载这个程序。

Silverlight安装配置与注意事项

  [1]作为Microsoft现下火热推出的新一代的网络技术,Silverlight受到了相当的关注。一项能跨浏览器,跨平台(原文为cross browser,cross platform,当我在官网上看到这两句的时候着实小小的吃惊了一下)更直观联动前台和后台的技术,无疑让更多B/S开发人员感到兴奋。

  到底Silverlight应该怎么理解?可能大家第一眼见到它的时候,觉得和Flash没什么区别——至少视觉效果上如此。但当你了解到这个“类Flash”的东西除了能实现Flash的全部功能外,竟然还能进行数据绑定的时候,肯定会感到相当的新奇!能随时更改按钮链接的“Flash”!能显示数据库数据的“Flash”!能实现前后台交互的“Flash”!Just think about it!

  无论你只是抱着看一看的态度也好,想深入了解也好,Silverlight都有足够的理由让你一试,因为它的安装和配置是多么的简单直观……

  必备的软件平台:(来自http://silverlight.net/GetStarted/)

  Visual Studio 2008 beta2,代号Orcas的IDE,大家肯定都知道了

  Silverlight 1.0 and 1.1 Alpha,目前Silverlight应用的两个版本

  VisualStudio SilverlightTools Alpha,对应Visual Studio的Silverlight工具

  Expression Blend 2 September Preview,用于开发Silverlight视觉的工具,Flash与Photoshop的结合体

  以上软件的安装顺序应该是Visual Studio 2008 beta2--->Silverlight 1.0 and 1.1 Alpha--->Expression Blend 2 September Preview和VisualStudio SilverlightTools Alpha。

  其实理论上,只要Visual Studio 2008 beta2在Expression Blend 2之前安装,就不会有什么问题,因为Expression Blend 2要求。Net Framework 3.5。

  鉴于Silverlight技术推出时间实在是很短,各方面的资料都不齐全。学习资料上唯一推荐的只有两个:

  Visual Studio 2008 beta2 安装时可选的MSDN 9.0 和 官方论坛 http://silverlight.net/forums/ 强烈推荐大家上官方论坛了解和学习,上面的都是第一手资料。并且也是一个锻炼英语的好机会。后续的文章中,我会节选出官方论坛上比较有代表性的一些话题翻译出来,给大家参考,共同学习。

  [2]必须要注意的一些问题:

  1.Silverlight要求CPU支持SSE,也就是说,老旧的CPU已经不能满足开发的需要了。

  2.和号称的“cross browser,corss platform”相符,Silverlight有对应Mac和Windows的版本,不要用错了。

  3.配置好平台后请上官方网站的Gallery Section http://silverlight.net/community/communitygallery.aspx查看下是否能观看对应的Silverlight应用。如果不能观看并始终提示安装Silverlight(并且给出一个中文链接),请检查下自己的SIlverlight是否已经安装了最新版本(暂时是1.1 Alpha)。检查方式是注册表中HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Silverlight,检查Version值是否是对应版本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 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方法抛出错误.随意询问更多信息.我一直在寻找解