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效果了。
图1 全面支持3D
4 像素着色效果:内在支持模糊化和投影效果
图2 支持模糊化
图3 投影效果
5 全新的位图API:这个全新的API可能让我们更加方便的操作位图的每个像素。这也就为开发网络图片编辑器带来可能
6 支持GPU加速
7 动画效果:支持多种动画效果,比如Spring,Bounce,Elastic等等
图4 支持动画效果
以上是支持高质量的视频和音频的新特性,下面介绍一些用于提高RIA吸引力的。
1 Silverlight 3将会提供有100+的控件以及其源代码
2 内置的导航机制,支持深度链接。
图5 支持深度链接 内容导航
3 支持SEO:这样以后用Silverlight做网络应用,就不用担心由于SEO的问题,导致搜索引擎搜索不到降低网站的知名度了。
4 增强的数据绑定支持:支持类似WPF的Element-To-Element绑定。如下面的代码就是直接把Image的Width绑定给了TextBlock作为其Text。
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
<
StackPanel
>
<
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。
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
<
form:DataForm x:Name
=
"
PeopleForm
"
AutoGenerateFields
=
"
False
"
>
<
form:DataForm.HeaderTemplate
>
<
DataTemplate
>
<
TextBlock Text
=
"
员工详细信息
"
/>
</
DataTemplate
>
</
form:DataForm.HeaderTemplate
>
<
form:DataForm.DisplayTemplate
>
<
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}
"
/>
<
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 图7 效果图
6 提供离线功能:支持在离线的状态下桌面上安装并运行网络应用程序
图8 选择程序
选择将你的程序安装到电脑后,会弹出界面让你选择
图9 确认安装
图10 Silverlight 3 程序弹出
综述:
Silverlight 3在媒体和图形支持上相对Silverlight 2有了非常大的进步。此外其引入的Navigation框架和支持SEO,支持数据验证等功能使得Silverlight 3更加的适合用于开发企业级应用程序(LOB)。