【原文地址】Silverlight
【原文发表日期】 Monday, May 07, 2007 2:49 PM
上个星期一,我在拉斯维加斯的MIX大会上做了一个主题演讲,讨论了过去的一年里花费了我大部分时间的一个新项目:Silverlight。
Silverlight是个跨平台,跨浏览器的.NET插件,允许设计师和开发人员在浏览器中建造丰富的媒体体验和RIA应用。这个星期我们发布的预览版目前在Mac和Windows上支持Firefox, Safari 和 IE浏览器。
想感受一下使用Silverlight你都能建造哪类富浏览器应用的话,观看一下Metaliq的这个7分钟的“顶级香蕉(Top Banana)”视频编辑例程的录像:
“顶级香蕉(Top Banana)”应用是用C#开发的,可以在任何安装了Silverlight的系统上跨平台运行。整个应用的下载大小(意即在用户输入该网站的地址时,所有的XAML和编译过的代码的大小)只有50KB左右。我们将在今夏晚些时候作为例程发布这个应用的源码版本。
你可以在这里观看我的整个主题演讲(注:目前这个录像只显示了讲义和演示,一个星期内他们将更新推出一个更完整的录像版本)。
我非常幸运有一些很重要的客户在台上和我一起展示用Silverlight开发的一些非常丰富的体验,他们包括,Netflix(展示了一个很棒的“按需电影(movie on demand)”录像服务,同时支持社会网络), CBS (展示了用户产生的录像支持), Metaliq (展示了上面这个视频编辑应用) 和MLB.com (展示了他们精妙的棒球大联盟的新在线体验)。
在主题演讲中,我们还展示了你可以使用一些新的Expression Studio产品(包括Design, Blend 和Media Encoder产品)来建造可交互的视频播放器体验。我还做了一些开发演示,包括使用Visual Studio建造一个新的Silverlight项目,以及使用 .NET中的新Ruby支持在一个动态语言控制台里迭代开发一个Silverlight应用(该控制台是完全使用IronPython开发的,是在Mac的Safari浏览器中Silverlight里运行的)。
这个夏天我们将推出Silverlight的第一个版本。它着重于促成丰富的媒体场景,下载大小在1.2MB左右。它包括下面一些特性:
Silverlight也可支持内置的媒体流广播(media streaming)。这允许你在后端使用一个象Windows Media Server这样的流广播服务器(streaming server),做视频/音频流广播(注:Windows Media Server是运行在Windows Server上的的免费产品)。流广播(Streaming)带来一些非常大的好处: 1) 它可以在用户在一个大的视频流里搜寻时改进用户的体验,2) 它可以极大地降低带宽的成本(大部分用户并不观看整个录像,所以在使用渐进下载时如果他们在视频结束之前离开的话,你就浪费了带宽)。
Silverlight允许你创造丰富的UI和动画效果,把矢量图像与HTML混合起来创造出引人入胜的内容体验。它支持一个Javascript编程模型来开发这些效果。一个好处是,它极大地简化了把这些体验集成进AJAX网页(因为你可以编写Javascript同时来更新HTML和XAML元素)。
Silverlight使得建造丰富的视频播放器交互体验极其容易。你可以把它的媒体能力与矢量图像支持混合起来创造你想要的任何类型的媒体播放体验。Silverlight包含了全屏的功能来创造一个完全沉浸的体验,以及直接在正播放的视频内容之上覆盖菜单/内容/控件/文字的能力(允许你促成DVD一样的体验)。Silverlight还提供了动态改变正在播放的视频的长宽的功能,而不要求视频流中止或重启。
你可以使用任何标准的文字编辑器来开发Silverlight应用,而不用特别的工具。微软也将通过Expression Studio配套产品发布针对Silverlight 1.0应用的支持,包括内容管理和视频编码的丰富的工具支持。你今天就可以在这里下载支持Silverlight的Expression Blend 和 Expression Media Encoder CTP预览版。
想进一步了解Silverlight 1.0的特性,以及如何开始开发针对Silverlight 1.0的体验的话,我强烈推荐你在这里观看最近发布到新www.silverlight.net社区网站上的一些精彩“How do I?”录像。
我也推荐你观看这些免费的MIX大会的分会场讲座,它们讨论了Silverlight 1.0和媒体场景:
在MIX上我们推出Silverlight 1.0的beta版本(这个夏天将推出1.0的最终版本)的同时,还推出了Silverlight 1.1的alpha版本。
Silverlight 1.1包括了.NET框架的跨平台版本,来促成在浏览器中的丰富的.NET开发体验。Silverlight 1.1安装包(包括所有的Silverlight 1.0的特性+CLR+WPF和.NET FX库API的一个子集+动态语言支持)的整个下载大小为4M左右,只需花少于20秒的时间即可在安装在一个机器上。
Silverlight V1.1包括下面一些特性:
下面是我录制的一个22分钟的录像,示范如何使用Visual Studio和Expression Blend从头开始建造一个Silverlight应用(点击这里下载我使用的UI控件):
你可以点击下面这个图案下载一个非常好的海报,该海报对目前 Silverlight 1.1 alpha版本支持的一些主要的.NET命名空间和特性做了一个概述:

我还做了一个Channel9采访,你可以观看一下,进一步了解托管编程模型在Silverlight里的工作细节,以及我们是如何添加CLR支持的:
我也推荐你观看MIX大会的这些免费的分会场讲座,它们讨论了在Silverlight 1.1中使用.NET的场景:
你可以在Nick这里的网站上下载Part1/Part2讲座里例程的源码。
在MIX上,我们还宣布发布了我们称之为“动态语言运行时(Dynamic Language Runtime)”(简称为DLR)的新.NET库的第一个版本。
我们为使.NET和CLR成为第一流的动态语言环境投资甚巨,一年多以前,我们在我的团队里组成了一个专门的开发组,专注于对动态语言建造更棒的CLR运行时支持,以及对流行的动态语言提供.NET上的优异实现。
新的动态语言运行时(DLR)往CLR里添加了一些为动态语言场景特别设计的服务。这些服务包括共享的动态类型系统,语言宿主模型和对方便生成快速的动态代码的支持。有了这些额外的特性,在.NET上建造高质量的动态语言实现就非常容易了。
非常重要的是,使用新的DLR支持建造的动态语言实现不是解释的。而是,我们使用在CLR 2.0里添加的轻量级的代码生成特性创建在内存里的IL,然后在运行时JIT到机器代码,而不用保存任何东西到硬盘上。这导致比解释代码好得多的运行时性能,轻量级的代码生成特性确保了一旦我们使用完了JIT过的代码,我们可以垃圾回收,以避免内存泄漏。这促成了非常精妙和强有力的动态语言编程环境,允许开发人员轻松地使用动态语言来对整个.NET API编程。
DLR以及建立在其之上的所有的动态语言,可用于浏览器里的跨平台Silverlight应用,服务器端的ASP.NET 2.0应用,和桌面上的WPF/WinForms应用中,即,基本上就是所有启用了CLR的地方。
在MIX上,我们宣布了微软将发布我们自己在.NET上实现的4门动态语言:
我们将在CodePlex上发布我们的Python和Ruby实现的源代码,以及底层的DLR库的源代码,所有的源码都将在可完全修改的许可下发布。你现在可以在IronPython codeplex网站上下载DLR以及Python实现 (IronPython)。Ruby实现(我们将称之为IronRuby)的源代码,将在几个星期内在CodePlex上发布,等它有所进展之后。
想进一步了解我们的动态语言支持的话,我强烈建议你观看一下 John Lam 的这个15分钟的录像,他展示了一个用IronPython开发的动态语言控制台,在Mac上Silverlight里运行。它允许开发人员在浏览器里使用Ruby, Python, Javascript和VB交互性开发Silverlight应用(带有intellisense 支持!):
我也建议你观看MIX大会上这个免费的分会场讲座,它讨论了Silverlight1.1和动态语言:
Jim Hugunin,DLR的首席架构师,著有一个关于.NET中动态语言的精彩的博客,我建议你订阅这个博客,如果想理解DLR是如何工作的,你都能用它来做什么的话。
上个星期我们推出了我们最新的在线社区网站:http://www.silverlight.net
就象 www.asp.net 和 www.iis.net 一样,我们将使用这个新的Silverlight网站有规律地发布例程和“How-do-I?”录像。它也提供了一个论坛系统,你可以在上面得到Silverlight方面问题的帮助。
点击这里订阅我们在将来的几个月里将在这个网站上发表的新内容的RSS feed。
Silverlight开创了无穷多的机会,来建造可以跨平台和跨浏览器运行的极其丰富的客户端体验。
对.NET开发人员来说,这意味着你现在可以在浏览器里(使用Silverlight),在web服务器端(使用ASP.NET),在桌面应用里,在移动设备里,使用任何开发语言(VB, C#, Javascript, Python, Ruby等等)来编写.NET 代码。你能够使用强大的Visual Studio开发人员工具和Expression Studio设计师工具来产生这些体验。
不用说,我对Silverlight的前景感到无比的兴奋。我们还有工作要做,缺陷要修补,高层次的UI控件/特性要添加,但我们上个星期发布的核心图像/媒体/运行时引擎是极其强有力的,为我们将来要建造的东西提供了一个非常稳固的可扩展的基础。
在将来的几个月内,我将在博客里发表更多关于Silverlight以及如何使用它的的贴子。
希望本文对你有所帮助,
- Scott
附注:上个星期我度假去了,所以主题演讲之后没有及时发布贴子。这个星期的其他时间我将去苏格兰度假,所以请原谅我不能对评议做及时答复,可能会晚几天才会答复。
Other Posts:
>>开始玩一玩XBAP
>>Jasper中的定制
>>Visual Basic到底有多少个版本
>>SharePoint – Silverlight 集成竞赛
>>使用Visual Studio 2005开发Silverlight 1.1应用
>>题外话:SharePoint之歌
>>Silverlight Streaming:我的帐号328
>>Silverlight 1.1 特性之现在和将来
>>Mix07 Keynote Silverlight demo with source code
>>Silverlight 1.1的海报
>>MIX07讲座的录像上线了
>>使用Jasper和IronPython操作数据 - 补充说明
Month Archives:
Top Tags:
Company & Product Profiles Technology Internet Google Search feature column letter WebApp咨询 analysis Business and Technology Search Headlines comment Startups application 业界信息 Google/SEO news Web2.0 业界动态 創投 未來趨勢 產業策進 互联网络 創業案例 Yahoo 国际政治 widget Search Types: Local
@2007 All rights Reserved |