Silverlight交流
- 格式:ppt
- 大小:1.12 MB
- 文档页数:15
一步一步学Silverlight 2系列(14):数据与通信之WCF概述Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON、Web Service、WCF 以及Sockets的支持等一系列新的特性。
《一步一步学Silverlight 2系列》文章将从Silverlight 2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。
本文将简单介绍在Silverlight 2中如何与WCF进行通信。
简单示例在本示例中,我们将通过WCF来获取一个最新随笔的列表,在Silverlight中显示出来,最终完后效果如下所示。
先定义一个数据契约:在Web项目中添加一个WCF Service文件,命名为Blog.svc 定义服务契约:实现服务,这里可以是从数据库或者其他数据源读取,为了演示方便,我们直接初始化一个集合:修改Web.config中的服务配置,这里使用basicHttpBinding绑定,并且开启httpGetEnabled,以便后面我们可以在浏览器中查看服务:设置一下Web应用程序的端口号为固定端口52424,在浏览器中输入http://localhost:52424/ Blog.svc,看看服务是否正常:好了,现在服务端我们就实现完成了。
现在编写界面展示部分,XAML如下:在Silverlight项目中添加服务引用,输入地址http://localhost:52424/Blog.svc,输入命名空间BlogService。
添加完成后,我们可以在对象浏览器中浏览一下生成的客户端对象:当然大家也可以手工去编写客户端的代码,请参考WCF的相关内容,这里不再赘述。
下面编写调用服务并获取数据,这里仍然是采用异步模式,由于在WCF服务的配置中我们采取了BasicHttpBinding,客户端也要采用BasicHttpBinding。
1.调试WCF相关问题的一般步骤是什么?2.如何使得Silverlight和HTML元素之间进行交互?2.1. 如何从JavaScript调用中可脚本化的方法?2.2. 如何从代码后置调用客户端JavaScript函数?2.3. 如何从代码后置访问HTML元素?3.如何在Visual Studio中调试带有Silverlight 功能的网站中的JavaScript代码?4.如何处理 Out-Of-Browser 相关问题?4.1. 如何检测应用程序是否工作在OOB( Out-Of-Browser)模式?4.2. 如何检测OOB更新?4.3. 如何将HTML元素融入Silverlight应用程序?4.4. OOB模式下如何调用JavaScript访问HTML 元素?4.5. 在Silverlight中如何访问cookie?5.如何调试OOB应用程序?6.在OOB模式下如何得到网络状况?7. 如何将XAML转换为图像?8. 如何使用Perspective 3D?9. 何时并如何使用Isolate Storage?10. 如何使同一页面的2个Silverlight应用程序交互?11. 如何指定安装界面?12. 什么是Element Binding?13. 什么是Binary Xml?14. Silverlight应用程序如何相互交互?15. Silverlight中如何访问本地字体?16. 什么是 Silverlight 导航应用程序(Navigation Application)?========================================== =====================1.调试WCF相关问题的一般步骤是什么?默认情况下,Silverlight使用浏览器HTTP栈。
这种情况下,如果WCF发生了一个错误,它会发送HTTP 404响应码,错误详细信息并不能在Silverlight客户端中被访问到。
一.Silverlight学习 (2)1.1 Silverlight概述 (2)1.2 Silverlight 结构 (3)1.2.1 Silverlight平台 (3)1.2.2 Silverlight 结构 (3)1.2.3 核心表示层组件 (4)1.2.4 NET Framework for Silverlight (4)1.2.5 附加Silverlight 编程功能 (5)1.3 Silverlight 3.0 环境的搭建 (6)二.开始第一个Silverlight工程 (6)2.1 Silverlight 应用程序项目文件 (8)2.1.1 Silverlight 应用程序项目包含以下配置、程序集引用和代码文件: (8)2.1.2 Silverlight 应用程序项目将包含对以下程序集的引用: (8)2.2 工程示例 (9)2.2.1 Silverlight工程的独立运行 (11)2.2.2 Silverlight中XAML页面的导航 (11)三.Silverlight的特点分析 (12)3.1 Silverlight 3概述 (13)3.2 Silverlight 3 特点之增强媒体特性 (13)3.3 Silverlight 3特性之强化丰富的体验 (14)3.4 Silverlight 3特性之提高富互联网应用的效率 (14)3.5 Silverlight 3增强特性之其它 (15)3.6 Expression Blend 3中的新特性 (15)四.Deep Zoom Composer (16)4.1 Deep Zoom技术原理简介 (16)4.2 开始第一个Deep Zoom Composer应用 (17)4.2.1 建立Deep Zoom图片 (18)4.2.2 将Deep Zoom图片添加到Silverlight工程 (20)4.3 Deep Zoom Composer正式版的特点分析 (21)4.3.1 Deep Zoom Composer正式版的特点之容易的交互式Deep Zoom体验 (22)4.3.2 Deep Zoom Composer正式版的特点之追踪分析 (22)4.3.3 Deep Zoom Composer正式版的特点之增强的DeepZoomPix播放器 (23)4.3.4 Deep Zoom Composer正式版的特点之让你的导出走得更远 (24)4.3.5 Deep Zoom Composer正式版的特点之更新的UI (24)4.3.6 Deep Zoom Composer正式版的特点之支持Smooth Streaming (24)五.JSON-RPC (25)5.1 JSON数据格式 (25)5.2 JSON数据格式转换 (25)5.2.1 JSON在java中的数据转换 (25)5.2.2 JSON数据格式在Silverlight中的转换 (26)5.3 JSON-RPC (27)5.3.1 JSON传输协议 (27)5.3.2 Silverlight对基于Http的服务发出请求 (27)一.Silverlight学习1.1Silverlight概述Microsoft Silverlight 是一种跨浏览器、跨平台的.NET Framework 实现,用于为Web 生成和提供下一代媒体体验和丰富的交互式应用程序(RIA)。
Silverlight之美Silverlight为Web应用程序带来了更加丰富的交互性。
与Adobe公司的Flash相比,二者都是基于互联网技术的互动架构,同样可以显示矢量图形、动画和视频,并可以运行在多种操作系统甚至移动设备上。
Silverlight在用户体验方面同样出色,例如其富媒体体验、动画效果、滤镜特效、3D引擎以及简洁明了的原型设计等等,其实目前Silverlight框架已经很完善,但缺少的正是像Flash一样拥有大量的界面设计师,如果在Silverlight项目中拥有较强的用户体验设计人员,那Silverlight之美才能发挥出来。
下面我们就来一起分享一下Silverlight在商业应用中的魅力到底在哪里?强大的用户体验Silverlighth具有强大的用户体验及用户交互性,可以提供给使用者绚丽完美的效果,整个体验都是以用户为中心、以人为本,着重于研究用户情感,也就是互动过程中的瞬间用户体验,并将这一理念贯穿在一切设计、创新的过程当中。
Silverlight以产品吻合用户的需求、简洁明了的操作、友好的用户界面、有吸引力的视觉设计,创造出以用户黏度为首要体验的设计目标。
我们一起来看看中国人寿及中国人保在Silverlight领域中的用户体验案例:中国人寿养老金精算咨询系统(PACS)系统登录界面以黑色渐变为背景,以中国人寿的绿色为跳跃色,突出登录控件,让用户可以很快定位主体功能。
中国人寿养老金精算咨询系统(PACS)——登录界面在数据映射功能中采用二次贝塞尔曲线,以动画形式进行数据项关联,可以增加使用过程中的趣味性,当数据项类型不匹配时采用高亮色主动提示方式,使用户在拖拽时避免了错误的发生。
中国人寿受托业务办理界面中,引入对有无任务的差异显示,提高用户的关注度,并通过动画提示增强交互感。
中国人寿受托业务办理界面中国人寿数据校验工具在主界面底层添加了绚丽的粒子特效动画,丰富了界面的动感。
谈谈Silverlight 2中的视觉状态管理 Part2 电脑资料概述在WPF和Silverlight中的控件模板支持自定义控件的观感,外观,指控件的视觉效果;而感觉那么是控件交互的响应性,如在控件上按下鼠标、控件获得焦点等状态的改变,本文为该系列第二篇,介绍如何利用Silverlight 2中的视觉状态管理来定制控件观感。
在前一篇我们介绍了视觉状态管理中的一些根本概念,下面将通过一个实例来展示如果利用视觉状态管理来定制控件的观感,最终我们完成的例如效果如下列图所示:本文中的例如使用了这篇文章中的代码。
定义控件模板我们现在先来定义CheckBox控件的模板,即上篇文章中所介绍的部件,如下代码所示:为了减少代码,这里去掉了一些属性,只是给出了必备的一些部件名称。
现在我们运行后,可以看到虽然CheckBox的样式有了,但它并没有任何交互的效果,如点击鼠标后CheckBox并没有选中。
定义视觉状态组我们知道,视觉状态管理器(VisualStateManager)负责管理控件的状态和状态组以及状态的迁移,所以我们所有的视觉状态组、视觉状态迁移、视觉状态等都通过它来管理,在XAML定义时,它们之间的架构关系如下:在引用VisualStateManager之前,需要先引入命名空间,这是Silverlight 2 Beta 2的一个Bug。
如下代码所示:xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"接下来我们定义视觉状态组,在上篇文章中我们就介绍过CheckBox的状态组,总共有三个: FocusStates、CommonStates、CheckStates,这里我们只定义CommonStates和CheckStates状态组,大家可以自行定义FocusStates状态组,如下代码所示:这里需要为每个视觉状态组指定名称,且名称是固定的。
浅议Silverlight我们看微软的网站时就会发现,它在使用大量的flash。
在电子文档领域,adobe与微软在几年前就开始交手,尽管当时还未正式亮相,silverlight还没有正式发布,但公认flash是最强有力的竞争对手。
当年adobe收购macromedia时,看重的也正是flash。
随着微软正式发布silverlight,微软计划公布大量有兴趣使用这款软件的媒体和广告代理合作伙伴,双方将在互联网富媒体领域展开新一轮的竞争。
什么是silverlight?它是一种web技术,能在各种操作平台上运行。
利用该技术,我们能够拥有内容丰富、视觉效果绚丽的交互式体验,并且,无论是在微软本身的ie内,还是在firefox、opera等浏览器上,在多个移动设备上还是在桌面操作系统(如 apple macintosh,red hat linux)中,您都可以获得这种体验。
xaml(可扩展应用程序标记语言)是microsoft .net framework 3.0(windows 编程基础结构)中的呈现技术遵循 wpf (windows presentation foundation),它是 silverlight 丰富的呈现功能的基础。
主要有以下特点:一、在web上提供丰富灵活的用户体验(一)富媒体体验和灵活的网络应用。
ria(rich interactive applications),中文翻译为“因特网互动丰富应用”。
包括了那些经常闪耀让你烦不胜烦的页面广告、精灵般跳动的小游戏以及眼花缭乱的视频。
运用silverlight技术,使用者就可以直接看到影音动画,如果您想随时切换到想看的编目,您可以写成分段式影片。
当然您只要快速点击一下也支持全荧幕观赏,按esc键又可以切换回正常画面。
(二)强大的基于向量的图形及交互。
silverlight拥有visual studio和expression blend的全面支持,其中主要的新特性和功能包括主流及扩展媒体格式支持、基于微软iis7的强大流媒体播放体验、允许web应用在桌面运行的浏览器外支持、大幅图形性能改进包括3d图形支持、gpu加速等很多提升ria开发效率的特性。
Silverlight g 系列课程35讲 Silverlight2与HTML互相访问苏鹏 MVP MSDN 特约讲师点击添加MSN机器人小新 为您收听下载MSDN中文网络广播课程加油助力!内容介绍• • • • • 借助 JavaScript 使 Silverlight 可脚本化 借 HTML Bridge 中的异常处理行为 HTML Bridge HTML 桥中的安全设置 Silverlight 和 JavaScript 封送处理 总结Level 200HTML Bridge可以做的事• 对 JavaScript J S 公开全部托管类型以便于编写脚本 • 对 JavaScript 公开托管类型的各个方法以便于编写 脚本 • 将托管类型作为参数传递给 JavaScript 函数和对象 • 从 JavaScript 返回托管类型 • 作为事件处理程序分配托管类型,这些事件处理程 序可从 JavaScript J S i 调用 • 从托管类型调用 JavaScript 事件处理程序 • 控制基于 Silverlight 的应用程序的各个安全方面借助 JavaScript 使 Silverlight 可脚本化• 将 将类型和成员标记为可脚本化 成 为 • 将 JavaScript JavaScript 方法附加到可脚本化的托管事 件 • 类型 EventHandler dl 的属性 • ScriptEventHandler 类 API • 对 AJAX 的特殊支持将类型成员标记为可脚本 化• • • • • • • • • • • 属性脚本化 代码示例 p public class MyStockWatcher y { [ScriptableMemberAttribute] public string SomeProperty {get; set;} public string SomeProperty {get; set;} [ScriptableMemberAttribute] public event EventHandler SomeEvent; [ScriptableMemberAttribute] public string DoWork(int count); }对象脚本化示例• 通过使用 使 RegisterScriptableObject(String, j ) 方法,可以 方法,可以显式地向运行时注册可 行 注册可 Object) 脚本化类型的一个实例。
SilverLight目前已经成为互联网应用当中的终点,其本身具有的巨大市场前景,尤其是提供丰富的网路表示控件方面已经成为了flash的最大竞争对手,几天我们通过一个简单的示例演示如何使用SilverLight创建一个使用数据访问的应用,同时为了配合微软最新的.NET 3.5技术,这个例子还将使用微软的LINQ数据源作为数据集合的基础,使用WCF进行远程的数据访问,从而实现分布式调用。
整个过程共分为5个部分1.创建一个SilverLight应用2.创建一个使用LINQ的数据源映射对象3.创建一个WCF应用4.在SilverLight中添加对WCF的引用5.在SilverLight添加DataGrid数据显示控件1 创建一个SilverLight应用本程序使用Visual Studio 2008中创建新的SilverLight应用。
在Visual Studio 2008中只要安装了SilverLight 2.0 Beta 1的Visual Studio 2008模板即可看到如下图1.1所示的新工程模板,图1.1 新建SilverLight 2.0工程在新建Sl工程的时候有一个选项,就是是否添加的网站作为宿主如下图1.2所示图1.2 选择是否添加网站应用在这里我们为了后面编辑数据库应用服务器,选择添加 2.0的网站,添加之后的工程窗体项目文件如下图1.3所示1.3 添加工程以后的应用界面可以看到Sl被编译成为了一个SilverLightDemo.xap文件,这个文件到底是什么内容呢,我们在这里对它的内容进行解密,首先修改文件后缀为zip之后解压缩,就可以看到文件是把SL运行需要调用的程序打包之后随应用程序提供。
图1.4显示了这几个文件图1.4 SilverLightDemo.xap所包含的文件这些文件除了基本的SL库文件之外还有一个应用程序描述文件,AppMainfest.xaml,这个文件记录了当前应用程序所使用的基本业务逻辑和表示层内容。
Silverlight学习总结Binding1.概念:绑定(Binding)是指数据属性路径运行绑定,可以不用后台代码赋值。
3.三種重要的屬性:(1).OneTime:一次绑定,在绑定创建时使用源数据更新目标,适用于只显示数据而不进行数据的更新。
(2).OneWay:单向绑定,在绑定创建时或者源数据发生变化时更新到目标,适用于显示变化的数据。
(3).TwoWay:双向绑定,在任何时候都可以同时更新源数据和目标3.创建方法:例如對一個TextBlock的綁定(1)Xaml頁面<TextBlock x:Name="MyTextBlock"Text="{Binding Info,Mode=TwoWay}"/>(2)動態綁定Binding MyBinding=new Binding();MyBinding.Path=new PropertyPath("Info");MyBinding.Mode=BindingMode.TwoWay;MyTextBlock.SetBinding(TextBlock.TextProperty,MyBinding); INotifyPropertyChanged1.概念:当客户端绑定一个数据模型以后,数据模型变化以后可以自动通知客户端更新界面显示,这就是INotifyPropertyChanged接口要做的工作。
INotifyPropertyChanged接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。
若要在将客户端与数据源进行绑定时发出更改通知,则绑定类型应具有下列功能:实现INotifyPropertyChanged 接口。
2.什麽情況下使用數據綁定,UI界面有數據更新,針對某一個對象或者一個集合。
3.创建方法:例如針對某一個InfoPublic Class ZoneTimeIfoImplements INotifyPropertyChangedPrivate_zonetime As StringPublic Property ZoneTime()As StringGetReturn_zonetimeEnd GetSet(ByVal value As String)_zonetime=valueMe.NotifyPropertyChanged("ZoneTime")End SetEnd PropertyPublic Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChangedPrivate Sub NotifyPropertyChanged(ByVal propertyName As String)If Me.PropertyChangedEvent IsNot Nothing ThenRaiseEvent PropertyChanged(Me,NewPropertyChangedEventArgs(propertyName))End IfEnd SubEnd ClassDependencyProperty1.概念:表示向Silverlight依赖项属性系统注册的依赖项属性。