【IT168 技术】Silverlight 是一种新的 Web 呈现技术,能在各种平台上运行。借助该技术,您将拥有内容丰富、视觉效果绚丽的交互式体验,而且,无论是在浏览器内、在多个设备上还是在桌面操作系统(如 Apple Macintosh)中,您都可以获得这种体验。Microsoft .NET Framework 3.0(Windows 编程基础结构)中的呈现技术 XAML(可扩展应用程序标记语言)遵循 WPF (Windows Presentation Foundation),它是 Silverlight 呈现功能的基础。
Silverlight 3 包含以下新特性:
1 在线按需的720p+的流媒体播放支持:提供了一个叫做IIS Media Pack的IIS插件。它可以让Silverlight监测用户的带宽和CPU状态,然后让IIS自适应的传递合适码率的视频
2 更多的多媒体格式的支持:除了支持原来VC-1/WMA,Silverlight 3增加了对基于MPEG-4格式的H.264/AAC音频格式的支持。而且Silverlight 3将支持第三方的解码器。视频和音频可以在运行时外解码,然后在Silverlight 3中呈现出来
3 全面支持3D, 大家现在不需要第三方的开发包来实现Silverlight的3D效果了。

4 像素着色效果:内在支持模糊化和投影效果


5 全新的位图API:这个全新的API可能让我们更加方便的操作位图的每个像素。这也就为开发网络图片编辑器带来可能
6 支持GPU加速
7 动画效果:支持多种动画效果,比如Spring,Bounce,Elastic等等

以上是支持高质量的视频和音频的新特性,下面介绍一些用于提高RIA吸引力的。
1 Silverlight 3将会提供有100+的控件以及其源代码
2 内置的导航机制,支持深度链接。

3 支持SEO:这样以后用Silverlight做网络应用,就不用担心由于SEO的问题,导致搜索引擎搜索不到降低网站的知名度了。
4 增强的数据绑定支持:支持类似WPF的Element-To-Element绑定。如下面的代码就是直接把Image的Width绑定给了TextBlock作为其Text。
<Image x:Name="image" Source="win7_login.jpg" Width="400">
<Image.Projection>
<PlaneProjection RotationX="0" RotationY="-30" RotationZ="0"/>
</Image.Projection>
<Image.Effect>
<DropShadowEffect BlurRadius="5" ShadowDepth="10" Opacity="0.8"/>
</Image.Effect>
</Image>
<TextBlock Text="{Binding ElementName=image, Path=Width}">
</StackPanel>
5 DataForm控件:支持显示,编辑更新数据,并提供验证和分页功能(分页功能是由DataPager来实现的)。如下面的一段示范代码用来显示某公司的员工信息:
给这个DataForm定义了HeaderTemplate,DisplayTemplate,EditTemplate。
<form:DataForm.HeaderTemplate>
<DataTemplate>
<TextBlock Text="员工详细信息"/>
</DataTemplate>
</form:DataForm.HeaderTemplate>
<form:DataForm.DisplayTemplate>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="姓名:"/>
<TextBlock Grid.Row="1" Grid.Column="0" Text="邮箱:"/>
<TextBlock Grid.Row="2" Grid.Column="0" Text="性别:"/>
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Name}"/>
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Email}"/>
<TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Gender}"/>
</Grid>
</DataTemplate>
</form:DataForm.DisplayTemplate>
<form:DataForm.EditTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="姓名:"/>
<TextBlock Grid.Row="1" Grid.Column="0" Text="邮箱:"/>
<TextBlock Grid.Row="2" Grid.Column="0" Text="性别:"/>
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Name}"/>
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Email}"/>
<TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Gender}"/>
</Grid>
</DataTemplate>
</form:DataForm.EditTemplate>
</form:DataForm>
效果图如下:


6 提供离线功能:支持在离线的状态下桌面上安装并运行网络应用程序

选择将你的程序安装到电脑后,会弹出界面让你选择


综述:
Silverlight 3在媒体和图形支持上相对Silverlight 2有了非常大的进步。此外其引入的Navigation框架和支持SEO,支持数据验证等功能使得Silverlight 3更加的适合用于开发企业级应用程序(LOB)。