Silverlight 3 新特性

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)。

你可能感兴趣的:(silverlight)