Silverlight技术研讨:WebClient, 文件下载利器

合集下载

一步一步学Silverlight 2系列(14)

一步一步学Silverlight 2系列(14)

一步一步学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。

Silverlight学习帮助

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学习笔记1

Silverlight学习笔记1
也就是说,对于.net framework 而言,它能支持 Silverlight,但对于 Silverlight 而言它是不 支持面向.net framework 的开发的. 这也就意味着如果你在开发 Silverlight 的应用程序的话, 那么你原有的基于.net framework 的东西是无法直接使用的.但在 vs2008 中可以调整一个 类库项目的属性转变当前的.net framework 的项目为一个.net framework for Silverlight 的项目. 设置步骤: 选中项目文件>右击>点击属性>在属性的"应用程序"中>>勾选"仅使用客户端框架" 现在我们其实面对了两个.net framework, 一个是传统的一个是面向 Silverlight. 虽然他们使 用不同的框架在开发,但他们两者有高度的相似度,几乎原来定义在.net framework 上基础类 在 Silverlight 的框架中都原封不动的保留下来,包括类的名称,用法等.这样做有一个好,我 们只需要引用不同框架下的相应程序集就可以实现从.net framekwork 到 Silverlight 的转变.
简单了解 Silverlight 平台
在开始了解 Silverlight 平台前,请看看先前章节中提到的 xap 包.你可以将 Hello word application(也许你完成了,如果没有你可以建立一个新的,直接编译就可以了)项目中位于 ClientBin 文件夹下的 HelloWorld.xap 复制到任何一个地方,将其后缀名由 xap 改成 zip.然 后用工具打开看看所谓的程序包里到底装了写什么东西. 如果你做的程序足够简单你会看到两个 文件 AppManifest.xaml 和 HelloWorld.dll 文件,这些文件会被下载到客户端,然后被客户端 runtime 运行. 这里经历了几个步骤:

基于Silverlight的网页动画开发研究

基于Silverlight的网页动画开发研究

基于Silverlight的网页动画开发研究摘要:Silverlight是微软近年推出的Web前端技术。

讨论了Silverlight 的特点和开发技术,以及XAML语言;在此基础上对基于Silverlight 技术进行网页动画开发进行了分析;重点探讨了基于Silverlight对页面元素进行二维和三维应用变换的方法。

关键词:Silverlight ; XAML;动画;变换1Silverlight概述WPF是微软近年推出的展示层开发框架,Silverlight的前身代号是“WPF/E”,也就是其Everywhere版本。

微软从2007-2010年发布了Silverlight的4个版本。

它作为一个浏览器插件,可以显示矢量图形、动画和视频。

要运行Silverlight就必须安装Microsoft 发布的插件。

Silverlight是一种跨浏览器、跨平台的技术。

它能够在常见的Web 浏览器中运行,包括IE、Firefox、Apple Safari,并可以在Windows 和Apple Mac平台上运行。

Silverlight是类似于Flash的解决方案。

Silverlight和Flash的主要区别是:一个Silverlight程序并不是传递给Flash播放器的一个编译好的二进制文件。

相反,所有的代码都是基于标准的,且图像使用了XAML。

Silverlight最值得关注之处在于,实际上就是它创建出的UI质量,它是真正以XAML格式进行数据传输,到用户前端后再解析为具体图像,文本的大小是非常小的,所以不会占用太多带宽。

Silverlight在安全边界(沙盒)中运行,无法采用与传统的.NET应用程序相同的方式访问文件系统和其它的系统资源。

默认情况下,限制对承载Silverlight插件的HTML页的访问。

2Silverlight技术框架Silverlight平台作为一个整体,由两个主要部分以及一个安装程序和更新组件组成。

Silverlight简介

Silverlight简介

深蓝软件
四、Silverlight技术开发平台
Silverlight项目隶属于 隶属于.NET平台下的项 隶属于 平台下的项 目类型之一。 开发平台还是 目类型之一。所以其依附的开发平台 开发平台 微软推出的Visual Studio 2008,而我们都 知道,Web应用程序的核心就是展现给用 户的界面UI(User Interface),所以,一般情 况下,对于我们的网络应用程序来讲都会 有一定的辅助页面设计工具,而Silverlight 项目的辅助设计工具 辅助设计工具是Expression Blend。 辅助设计工具
深蓝软件
它的视频和音频 视频和音频流,视频质量无论从移动 视频和音频 设备还是桌面浏览器都是720p HDTV video 模式。 用户可在浏览器中直接对其进行控制,可 可 以拖动、翻转、放大的图片。 以拖动、翻转、放大的图片。 它读取数据并且更新外观,但不会通过刷 不会通过刷 新整体页面来打断用户操作。 新整体页面
深蓝软件
二、什么是Silverlight?
Microsoft Silverlight是微软所发展的 Web 前端应 用程序开发解决方案,是微软丰富型互联网应用 用程序开发解决方案 程序(Rich Internet Application)策略的主要应 用程序开发平台之一,以浏览器的外挂组件方式, 提供 Web 应用程序中多媒体(含影音流与音效流) 与高度交互性前端应用程序的解决方案,同时它 也是微软 UX(用户经验)策略中的一环,也是 微软试图将美术设计和程序开发人员的工作 美术设计和程序开发人员的工作明确 美术设计和程序开发人员的工作 切分与协同合作发展应用程序的尝试之一。
深蓝软件
设计人员可以轻松的拥有 Expression Studio进行设计、编译和 发布Silverlight应用程序。Expression Studio有创建图像、媒体,设计交互和 产生体验需要的一切能力。 Expression Blend能够生成 能够生成XAML进 能够生成 进 行输出,这样使用Visual Studio的程 行输出,这样使用 的程 序员和使用Expression Blend的设计 序员和使用 的设计 人员可以共享同样的文件。 人员可以共享同样的文件。

Silverlight交流

Silverlight交流

ComponentArt-Web.UI for Silverlight
/
Silverlight技术点验证
多线程支持
SL2之后,即Silverlight 3,4支撑完整的Thread类,即System.Threading 对应的Assembly :mscorilib
两个开发工具
MicroSoft Visual Studio 2008 or 2010+ Silverlight Tools Microsoft Expression® Studio3- Blend3
Silverlight开发套件
DevExpress –SilverlightControls
/AgDataGridDemos/
Silverlight 整体架构
Silverlight 结构
Silverlight 工作原理
从浏览器发出HTTP请求,服务器接到后返回HTML、Javascript Javascript首先检查是否安装了Silverlight插件,如果没有则提供 下载 Silverlight插件是以一个ActiveX运行的,这个ActiveX加载 Silverlight运行时(可以认为是.Net FrameWork的缩减版)到指定 的路径下载执行代码和资源文件的XAP包 Silverlight的部署单位是XAP文件。这个文件包含了manifest信息, 还有运行Silverlight应用所需的所有代码
Silverlight 特点
跨平台的用户体验 小巧方便 丰富的内容功能 可扩展的编程模型和协作工具:Silverlight兼容大量其他标准和现有技术 (包括、AJAX以及.NET3.5),支持JavaScript,C#,VB,Ruby以及 Python等多种开发语言,使得开发者可以根据现有标准,或是采用微软已成 熟技术来开发基于Web的内容。 无需编译:Silverlight基于XAML和JavaScript,由浏览器解释执行,并以 DOM型式公开它的元素树,内容能很好被搜索引擎收录。 高质量、低成本的多媒体技术,最新的SL4支持H.264高清标准 结合数据、服务器和服务 支持内容接入保护技术:无论在Windows还是Mac平台上,Silverlight都支 持多种商业模型,包括订阅、租用、付费浏览或是预览等。

Silverlight API学习笔记

Silverlight API学习笔记

Silverlight API学习笔记(一)上一篇/ 下一篇 2010-06-08 13:03:57 / 个人分类:ArcGIS Server查看( 439 ) / 评论( 4 ) / 评分( 0 / 0 )ArcGIS Silverlight API安装资源下载ArcGIS Silverlight API的帮助是在线的,访问的URL为:/en/webapi/silverlight/help/index.html关于如何搭建应用开发环境,可以参照左边的目录树中的Installation,其中包含各种开发资源的下载链接。

在系列教程的第一讲中,我先将本Help中提到的相关资源全部下载整理了一下,放在QQ空间的中转站中。

QQ帐号是:arcgiser@密码是:giser1234567,大家登录QQ邮箱后,直接在文件中转站中可以看到下载链接。

因为这个资源是开放给GISer方便学习用的,请不要随便更改QQ密码。

文件默认的存放时间为7天,如果有人看到即将过期,请帮忙续期一下。

(VS2010实在太大了,就不上传了,大家自己找下载地址吧)这个资源主要包含以下几个,简要介绍如下:(1)Expression Blend 4RC:Expression Blend,是一款用于设计桌面和Web应用用户界面的可视化工具,用户可以通过拖拉控件方式创建用户交互界面,即Expression Blend是一款Silverlight API编程的IDE。

Expression Blend 4RC是4.0 Release Candidate版本。

(2)Silverlight4_Tools如果您是在VS2010中进行ArcGIS Silverlight API开发的话,必须在安装完VS2010之后再安装Silverlight4_tools (/downloads/details.aspx?familyid=BF5AB940-C011-4BD1-AD98-DA 671E491009&displaylang=en)。

Silverlight

Silverlight

浅议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 2 Web 部件打造更为出色的 SharePoint

使用 Silverlight 2 Web 部件打造更为出色的 SharePoint

使用Silverlight 2 Web 部件打造更为出色的SharePointSteve Fox 和 Paul Stubbs本文基于Silverlight 2 的预发布版本撰写而成。

所有信息均有可能发生变更。

本文将介绍以下内容:▪创建 Silverlight 媒体播放器▪创建Web 部件▪部署到 SharePoint 站点▪应用程序故障排除本文使用了以下技术:Silverlight 2、SharePoint目录创建媒体播放器为应用程序UI 编码应用程序代码创建和部署 Web 部件向SharePoint 站点添加应用程序故障排除在 Web 应用程序开发领域中,用户们一直追求不断改进的应用体验。

此外,对这些Web 应用程序的要求已不再仅仅是支持单个浏览器或平台。

如果您目前正在构建某个 Web 应用程序,您需要的技术不仅要支持提供更令人信服的用户体验,还要能使开发人员将这种体验快速递送给多项技术和受众。

在能够为开发稳健的Web 应用程序提供良机的技术中,Silverlight 2 就是一个范例。

Silverlight 是一种跨浏览器、跨平台的插件,可供开发人员访问丰富的编程模型以打造基于Web 的用户体验。

SharePoint 是另一种经常应用于 Web 应用程序开发的技术。

原本采用SharePoint 开发内联网的公司如今想将此技术扩大到外部Web 站点。

Silverlight 和SharePoint 将共同提供一个简单但功能强大的基础结构,用于构建具有尖端的用户界面设计和交互功能的内联网及外联网应用程序。

在本文中,我们将讨论如何通过在SharePoint Web 部件内集成 Silverlight 应用程序来配合使用SharePoint 和Silverlight。

我们首先会指导您利用Silverlight 2 Beta 2 构MSDN Magazine Blog‗Contraction‘ ResolutionI recently wrote a blog ent contractions in MSDN Mag thank the m any, m any res am azed, a... More... Contraction: Distraction?I was told by an author tha (e.g. ―we‘ll‖ instead of ―we of ―you are‖) in MSDN Mag confusio... More...Clarif ication to January Ed Several readers have point m y January Editor‘s Note c was worth m entioning here t... More...Helpful Windows Phone 7 T I recently got an em ail from veteran developer who‘s n Windows Phone 7. He‘s en and passed alon... More... More MSDN Magazine BlogCurrent Issue建一个相当简单的媒体应用程序(请参见图 1)。

Silverlight研究报告

Silverlight研究报告

编绎后系统自动生成的 Silverlight插件。
Silverlight项目及元素说明 Silverlight项目及元素说明
html中如何调用Silverlight
Silverlight版本号 Silverlight插件路径 Silverlight出错处理

Silverlight播放插件下载路径
Silverlight项目及元素说明 Silverlight项目及元素说明
认识XAML

XAML是eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言,它是微 软公司为构建应用程序用户界面而创建的一种新的描述性语言。XAML提供了一种便于扩展和定位的语法来定义和程 序逻辑分离的用户界面,而这种实现方式和中的"代码后置"模型非常类似。也就是说在开发一个应用程序时, 我们可以将开发工作分成开发人员和设计人员两个团体分别进行,各自负责后台程序代码逻辑和前台程序界面的设计, 这样就使得开发人员和设计人员之间的协作更通畅,也极大地发挥了他们的专长。 常用的XAML设置工具有Expression Blend.我们在Silverlight开发过程中,通常在XAML中声明对象、为元素设置属性 等。)
驱动语言
JavaScript
Javascript ,C#,VB .NET
Silverlight开发环境搭建 Silverlight开发环境搭建
建立Silrlight开发环境分以下四个步骤: Silverlight开发环境分以下四个步骤
1. 首先需要安装开发工具,对于Silverlight 3项目开发,必须使用 Visual Studio 2008 SP1 或者 Visual Web Developer Express with SP1 作为开发工具。在安装过程中,.Net Framework 3.5 sp1同时被安装, 如果没有安装.Net Framework 3.5 sp1需要独立下载安装。 安装开发工具后,需要下载安装Silverlight工具开发包. 点击下载: Silverlight Tools for Visual Studio 2008 SP1, 完成Silverlight开发包安装后,Visual Studio 2008中将自动更新添加Silverlight项目 开发模板,以及Silverlight SDK和相关开发环境. 针对Silverlight 3项目,用户界面设计人员来讲,还需要安装Microsoft Expression Blend 3 . Blend是 Expression配套软件,可以让界面设计人员很轻松的开发出专业的Silverlight用户界面. 最后,需要下载Silverlight Toolkit. 该控件是微软开发的Silverlight控件扩展包.

Silverlight技术的发展与应用

Silverlight技术的发展与应用

Silverlight技术的发展与应用作者:崔欣来源:《电脑知识与技术(学术交流)》2009年第22期摘要:该文介绍了微软Silverlight技术的概念、特性、未来的发展趋势,举例说明了其在Web中应用。

Silverlight做为Flash竞争者,具有比Flash更加优秀的特性。

关键词: Silverlight; 微软.NET; WPF; Flash竞争者; Web应用中图分类号:TP311.52文献标识码:A文章编号:1009-3044(2009)22-pppp-0c1 引言目前,Flash作为主流网络流媒体和交互式应用的解决方案,已经进入到千万用户的浏览器中,呈现垄断的局面。

但是随着网络技术的发展,用户渐渐不再满足于Flash提供的低画质视频,简单的交互式游戏,此时,微软公司认识到要开发一个能在浏览器中展示富媒体交换性的应用架构,于是最初被定名为WPF简化版的WPF/E被推出了。

在2006年北京的微软Tech Ed大会上,这个产品被第一次展示在公众面前,以后这个产品更名为Silverlight,并公开和Adobe的Flash叫板,成为新的最有表现力的网络富媒体应用架构。

2 什么是SilverlightSilverlight是由微软公司最新推出的一个跨浏览器的、跨平台的插件,为网络带来下一代基于.NET的媒体体验和丰富的交互式应用程序。

Silverlight提供灵活的编程模型,并可以很方便集成到现有的网络应用程序中。

Sivlerlight可以对运行在Mac或Windows上的主流浏览器提供高质量视频信息的快速、低成本的传递。

Silverlight作为微软.NET 3.0战略的一部分,是为了和Adobe公司的Flash相抗衡,成为今后网络上最有表现力的网络富媒体应用架构。

2.1 Silverlight的特性2.1.1 跨平台跨浏览器Silverlight支持支持微软及苹果的多种操作系统,主要支持Microsoft Windows XP SP2、Microsoft Windows Vista、Microsoft Windows 7 、Microsoft Windows Server 2003,以及Apple Mac OS X 10.4.8以上和OS X Leopard操作系统。

Silverlight技术简介及发展

Silverlight技术简介及发展

微软silverlight技术介绍目录这篇文章的内容●目录●概述●什么是silverlight定义支持平台丰富的交互式应用程序富客户端应用技术统计为什么选择silverlightSilverlight VS. flashSilverlight VS. WCF丰富VS 达到功能展示深度缩放技术●Silverlight内核Silverlight 和XAML(Extensible Application Markup Language,扩展应用程序标记语言)部署过程Silverlight架构●Silverlight 5●开发工具和坏境Microsoft visual studio 2010Microsoft expression studio 4●Silverlight展望●总结概述这篇文章将要给出微软公司silverlight技术的简单介绍,看看它到底是如何和当今的其他技术相融合的,到底能起到什么作用。

让我们开始吧!什么是silverlight定义Silverlight是微软公司一种致力于帮助开发者创建丰富的web交互应用程序从而使用户得到良好体验效果的技术。

Silverlight作为一个有效的插件程序,使他支持当下的大多数主流浏览器。

他被用来开发下一代媒体应用和web应用。

(图1 siverlight商标)当我们说丰富的应用程序的时候,我们并不是指那些有惊人的接口和很多的图片。

事实上,我们指的是那些很多的标准的web应用程序所不具备的功能。

常见的富交互应用程序是在线文件编辑和图像处理。

他们交互性都非常的强,并且提供了许多标准的web应用程序所不能万层的功能。

实质上那才是Silverlight技术的主要目的所在,它的主要目标就是在web上交互性强的应用程序。

支持的平台并不像微软公司的其他技术一样,Silverlight应用程序可以运行在任何地方。

据说这项技术是跨平台,跨浏览器,跨设备的。

Silverlight可以跑在Windows,Linux,甚至是苹果操作系统上;Silverlight可以跑在IE浏览器,火狐浏览器,谷歌浏览器还有其他主流的浏览器上;Silverlight可以跑在PC机上,手机上,还有其他装置上。

SilverLight学习笔记--silverlight如何在客户端读取文件

SilverLight学习笔记--silverlight如何在客户端读取文件

出于安全的考虑,在Silverlight中我们不能随心所欲的读写客户端本地的文件系统。

这样不论对客户端还是程序员都是有着安全上的好处的。

在实际操作中,我们能够通过给客户端呈现"打开文件"的对话框,由客户端自己来选择所想要打开的文件,在这种情况下,你的Silverlight应用程序就可以打开这个指定的文件(并且只能打开这种情况下指定的文件)本文我们就实践这一功能。

还是如前面的文章所述,我们首先要建立一个新的Silverlight应用程序,我们把它命名为ReadLocal FilesInSL。

Page.xaml文件的代码内容如下:<UserControl x:Class="ReadLocal_FilesInSL.Page"xmlns="/winfx/2006/xaml/presentation "xmlns:x="/winfx/2006/xaml"Width="400" Height="400"><Grid x:Name="LayoutRoot" Background="DarkBlue" ><Button x:Name="btnOpenFile" Content="Open" BorderTh ickness="2" BorderBrush="WhiteSmoke" Background="Blue" Width="75" Height="25" Click="btnOpenFile_Click"VerticalAlignment="Top" HorizontalAlignment="Lef t" Opacity="1"/><TextBlock x:Name="Status" Margin="0,25,0,0" Foreground="White"/><Image x:Name="Image" MinWidth="200" MinHeight="200 " Margin="0,50,0,0"/></Grid></UserControl>在此代码中,我们建立了一个按钮,当我们点击它时就会跳出打开文件对话框,一个textblock 控件用于显示我们所打开的文件的文件名,以及一个image控件,用于显示我们所选择的图片文件(在本文我们只打开图片文件)为了从一个文件中读取内容,我们就需要创建一个“打开文件”对话框,并把它呈现给客户端用户以供他们作出选择。

Silverlight核心技术研究

Silverlight核心技术研究

Silverlight核心技术研究摘要:本文对silverlight核心技术进行了研究。

对于用户而言,silverlight安装简单;对于开发人员而言,silverlight是一种融合微软多种技术的web呈现,与、ajax等开发环境实现了无缝对接。

研究它具有很好的现实意义。

abstract: in this paper, the silverlight core technology is studied. to the users, the installation of silverlight is simple; to the developers, silverlight is a web appearance fusing various technologies of microsoft, it realizes the seamless joint with the development environment of and ajax. studying it has good practical significance.关键词: silverlight;核心技术;现实意义key words: silverlight;core technology;practical significance中图分类号:tp393 文献标识码:a 文章编号:1006-4311(2013)20-0233-021 silverlight概述①silverlight技术框架。

silverlight从出现到现在的silverlight5.0做了很大优化提高。

silverlight1.0仍然选择使用javascript脚本语言来负责客户端的运行,因此相对于ajax技术而言没有任何效率优势,并且存在严重的安全问题。

silverlight2.0增加了coreclr(专门为silverlight设计的精简的.net运行时环境),在客户端提供了.net框架支持,从而提高了运行效率,并实现了多线程运行。

Silverlight改进总结

Silverlight改进总结

Silverlight改进总结交流1、Silverlight4新特性●打印API●RichTextArea 富文本控件(支持Paragraph,InlineUIContainer…)●ButtonBase和Hyperlink支持MVVM的ICommand接口●通过WebBrowser控件支持Html内容显示(只支持OOB 的Windowless,不支持输入中文)●Notification 提示框API●WebClient的网络认证●依赖对象绑定●IDataErrorInfo 和异步校验●XAP签名●自定义窗口外观●上下文菜单控件●SLLauncher silent installs2、应用INotifyDataErrorInfo实现异步校验通过Model类继承INotifyDataErrorInfo接口实现异步校验.一个方法public IEnumerable GetErrors(string propertyName)一个属性ErrorList = new Dictionary<string, List<string>>();添加错误列表,并显示到App.LoginedUser.AddError("LoginPassWord", "无效密码");public void AddError(string propName, string error){ErrorList[propName] = new List<string>();ErrorList[propName].Add(error);if (ErrorsChanged != null)ErrorsChanged(this, newDataErrorsChangedEventArgs(propName));}对应的属性和对应的校验提示信息支持TextBox, ComboBox, DatePicker3、WCF分页服务访问定义两个操作契约//返回二进制的数据表///<summary>///分页获取数据集///</summary>///<param name="sql">SQL语句</param>///<param name="startIndex">开始索引</param>///<param name="maxCount">如果是-1则不分页</param>///<param name="parameters">参数</param>///<param name="isStoredProcedure">是否存储过程</param>///<returns></returns>public byte[] ExcuteDataTable(string sql, int start, int size, List<SqlParameterInfo> parameters){…System.Data.DataSet ds = ExcuteDataTable(sql, start * size, size, parameters, false);//记录总的记录数ds.ExtendedProperties.Add("RecordCount", recordCount);var ms = new MemoryStream();//通过C1.C1Zip进行压缩using (var sw = new C1.C1Zip.C1ZStreamWriter(ms))ds.WriteXml(sw, XmlWriteMode.WriteSchema);//ds.WriteXml(ms, XmlWriteMode.WriteSchema);//返回XML的字节数组return ms.ToArray();}//更新数据public string UpdateData(byte[] dtAdded, byte[] dtModified, byte[] dtDeleted, string dataTableName){//对于不同DataRow….UpdateData(dtAdded, DataRowState.Added, transaction);UpdateData(dtModified, DataRowState.Modified, transaction);UpdateData(dtDeleted, DataRowState.Deleted, transaction);mit();….}void UpdateData(byte[] data, DataRowState state, OracleTransaction trans) {if (data == null)return;var ds = new DataSet();var ms = new MemoryStream(data);//通过DataSet的ReadXml方法恢复ds.ReadXml(ms);ds.AcceptChanges();foreach (DataTable dt in ds.Tables){foreach (DataRow dr in dt.Rows){switch (state){case DataRowState.Added:dr.SetAdded();break;case DataRowState.Modified:dr.SetModified();break;case DataRowState.Deleted:dr.Delete();break;}}}//计算总共有多少条记录public int CalculateRecord(string sql){string strCount = string.Format("select count(*) as co from {0}", tableName); }//分页获取数据集public System.Data.DataSet ExcuteDataTable(string sql, int startIndex, int maxCount, List<SqlParameterInfo> parameters, bool isStoredProcedure){...adapter.FillSchema(dt, SchemaType.Source);if (maxCount >0 )//分页处理adapter.Fill(ds, startIndex, maxCount, tableName);else//做分页dapter.Fill(ds);return ds;...}4、Silverlight端数据访问string sqlSel = "select * from 反馈需求记录where 编号=:BH";BasicHttpBinding binding = new BasicHttpBinding();EndpointAddress address = new EndpointAddress(newUri(Application.Current.Host.Source, "/WCFDataService.svc"));binding.MaxReceivedMessageSize = Int32.MaxValue;binding.MaxBufferSize = Int32.MaxValue;binding.SendTimeout = TimeSpan.FromMinutes(10);binding.OpenTimeout = TimeSpan.FromMinutes(10);binding.ReceiveTimeout = TimeSpan.FromMinutes(10);List<ZLBH.SL.App.WCFDataServiceRef.SqlParameterInfo> sqlParas = new List<ZLBH.SL.App.WCFDataServiceRef.SqlParameterInfo>();ZLBH.SL.App.WCFDataServiceRef.SqlParameterInfo sqlParaItem = new ZLBH.SL.App.WCFDataServiceRef.SqlParameterInfo();sqlParaItem.ParameterName = "BH";sqlParaItem.ParameterType = BizFieldType.文本;sqlParaItem.ParameterValue = bh;sqlParas.Add(sqlParaItem);WCFDataServiceRef.WCFDataServiceClient detailclient = new WCFDataServiceRef.WCFDataServiceClient(binding, address);detailclient.ExcuteDataTableCompleted +=delegate(object s,WCFDataServiceRef.ExcuteDataTableCompletedEventArgs e){if (e.Error == null){var ms = new MemoryStream(e.Result);DataTable dt = new DataTable();DataSet _ds = new DataSet();//解压缩using (var zr = new C1.C1Zip.C1ZStreamReader(ms))_ds.ReadXml(zr);dt = _ds.Tables[0];//绑定到DataGridView上this.DetailTab.DataContext =dt.DefaultView.Table.Select().First<DataRow>().GetRowView();}};detailclient.ExcuteDataTableAsync(sqlSel, 0, -1,sqlParas.ToArray());///<summary>///绑定分页///</summary>///<param name="sql"></param>///<param name="pageIndex">当前页索引</param>///<param name="pageSize">分页大小</param>///<param name="pager">分页控件</param>///<param name="selCol">是否有选择列</param>///<param name="grid">要绑定的DataGrid</param>///<param name="parameters"></param>private void BindGrid(string sql, int pageIndex, int pageSize, DataPager pager, bool selCol,Control grid, ZLBH.SL.App.WCFDataServiceRef.SqlParameterInfo[] parameters){var ms = new MemoryStream(e.Result);DataTable dt = new DataTable();DataSet _ds = new DataSet();using (var zr = new C1.C1Zip.C1ZStreamReader(ms))_ds.ReadXml(zr);dt = _ds.Tables[0];if (pager != null){if (pager.PageIndex <= 0){object recordcount;//获得总的行数_ds.ExtendedProperties.TryGetValue("RecordCount", out recordcount);pager.BindSource(Convert.ToInt16(recordcount), 10);//绑定到DataPager的PageIndex事件pager.PageIndexChanged -= (s1, e1) =>{BindGrid(sql, pager.PageIndex, pageSize, pager, selCol,grid, parameters);};pager.PageIndexChanged += (s1, e1) =>{BindGrid(sql, pager.PageIndex, pageSize, pager, selCol,grid, parameters);};}}if(selCol)dt.DefaultView.Table.Columns.Add("选择",typeof(bool)); }5、Silverlight端数据更新string sqlSel = "select * from 反馈需求记录 where 1=2";WCFDataServiceRef.WCFDataServiceClient detailclient = new WCFDataServiceRef.WCFDataServiceClient(binding, address);detailclient.ExcuteDataTableCompleted +=delegate(object s,WCFDataServiceRef.ExcuteDataTableCompletedEventArgs e){if (e.Error == null){var ms = new MemoryStream(e.Result);DataTable dt = new DataTable();DataSet _ds = new DataSet();//获取一个空的数据表结构using (var zr = new C1.C1Zip.C1ZStreamReader(ms))_ds.ReadXml(zr);dt = _ds.Tables[0];dt.TableName = "反馈需求记录";DataRow newRow = dt.NewRow();DataRowView rowView =(DataRowView)newRow.GetRowView();rowView.SetData("ID", Guid.NewGuid().ToString());….rowView.SetData("附件", fjbyte);dt.Rows.Add(newRow);_ds.Tables.Clear();_ds.Tables.Add(dt);//获得相应DataRowState的记录的字节数组值byte[] dtAdded = GetChanges(_ds,DataRowState.Added);byte[] dtModified = GetChanges(_ds,DataRowState.Modified);byte[] dtDeleted = GetChanges(_ds,DataRowState.Deleted);WCFDataServiceRef.WCFDataServiceClientupdateClient = newWCFDataServiceRef.WCFDataServiceClient(binding,address);updateClient.UpdateDataAsync(dtAdded, dtModified, dtDeleted, _ds.Tables[0].TableName);updateClient.UpdateDataCompleted += newEventHandler<UpdateDataCompletedEventArgs>(updateClient_UpdateDataComple ted);}};6、IIS配置支持Silverlight在IIS6.0中,允许 V4.0 Web服务扩展注册如果 没有注册到IIS,在FrameWork4.0目录下运行Aspnet_regiis.exe – i增加对XAP和XAML文件的支持在新建网站的HTTP选项中,选择添加“MIME类型”加入.xaml、.xap、.xbap扩展名.xap application/x-silverlight-app.xaml application/xaml+xml.xbap application/x-ms-xbap允许匿名访问选择Internet来宾账户7、IIS配置支持WCF在FrameWork4.0目录下运行ServiceModelReg.exe -ia8、WCF配置文件设置启动IIS,通过WcfTestClient.exe测试调用服务,或者通过http://webSite/WCF服务.svc 访问测试获取MetaData元数据进行测试。

silverlight 文档

silverlight 文档

微软Silverlight是一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验与富交互(RIA,Rich Interface Application)的网络交互程序。

因为Silverlight提供了一个强大的平台,能够开发出具有专业图形、音频和视频的Web应用程序,增强了用户体验,所以SilverLight吸引了设计人员和开发人员的眼球。

同时,Silverlight还提供了强大的工具来提高他们的工作效率。

Silverlight能创建一种具有很高艺术性的应用程序,具有以下的特点:◆一种跨浏览器、跨平台的技术。

可以在所有流行的浏览器中运行,包括Micro soft Internet Explorer、Mozilla Firefox, Apple Safari, 和Opera,同样可以运行于Microsoft Windows和Apple Mac OS X。

◆无论在哪运行,都能提供一致的用户体验。

◆需要下载很小的文件来安装以支持,只需几秒。

◆它的视频和音频流,视频质量无论从移动设备还是桌面浏览器都是720p HDT V video模式。

◆用户可在浏览器中直接对其进行控制,可以拖动、翻转、放大的图片。

◆它读取数据并且更新外观,但不会通过刷新整体页面来打断用户操作。

Silverlight将多种技术结合到一个开发平台,可以在其中选择符合需求的合适的工具和编程语言。

SilverLight提供了如下的特性:◆WPF和XAML。

Silverlight包含了Windows Presentation Foundation(WPF)技术,这个技术在创建用户界面时极大的扩展了浏览器元素。

WPF可以创建融合图形、动画、媒体和其他的富客户端特性,扩展了基于浏览器的用户界面,超越了HT ML所提供的。

可扩展应用程序标记语言(XAML)提供了创建WPF元素的声明性标记。

◆对于JavaScript的扩展。

Silverlight提供了对于全球浏览器脚本语言的扩展,从而为浏览器用户界面提供更加强大的控件,包括与WPF元素工作的能力。

silverlight 项目案例

silverlight 项目案例

"Silverlight 项目案例:深度解析与实践探讨"一、Silverlight 项目案例简介Silverlight 是一个基于 .NET Framework 的应用程序框架,它可以用来开发和部署互联网应用程序。

在本文中,我们将会深入探讨Silverlight 项目案例,以便更好地理解其深度和广度。

二、Silverlight 项目案例的开发过程1. Silverlight 项目案例的背景和需求在进行深入探讨之前,首先来看一下一个典型的 Silverlight 项目案例的背景和需求。

通常,一家企业需要一个在线视频播放器来展示其产品宣传视频,并且希望用户能够在网页上直接观看视频或者下载。

这个需求将会是我们在探讨中不断提及的重要主题。

2. 技术选型与开发架构在开发一个 Silverlight 项目案例时,我们需要考虑的技术选型和开发架构非常重要。

我们可能会选择使用 MVVM 模式来构建 Silverlight应用程序,或者使用 Entity Framework 来管理数据。

3. UI 设计与交互在Silverlight 项目案例中,良好的UI 设计和交互体验是至关重要的。

我们可能会涉及到设计响应式布局、实现动画效果、以及优化用户交互体验的主题。

三、Silverlight 项目案例的实际应用与价值1. 实际应用场景与案例分析通过对实际应用场景的分析,我们可以更直观地理解 Silverlight 项目案例的实际应用价值。

我们可以探讨该在线视频播放器是如何满足企业宣传需求的,以及其在用户体验和功能上的优势。

2. 技术实现与解决方案借助 Silverlight 项目案例,我们可以深入探讨其涉及的技术实现和解决方案。

我们可以分析该在线视频播放器是如何实现视频流的加载和播放的,以及如何处理各种格式的视频文件。

这些内容将会是我们在文章中多次提及的重要主题。

3. 成果展示与用户反馈我们可以共享该 Silverlight 项目案例的成果展示,并对用户反馈进行总结。

Silverlight网页游戏设计思想WebGam

Silverlight网页游戏设计思想WebGam

Silverlight网页游戏设计思想WebGamSilverlight网页游戏设计思想(WebGame Essence):(二)动态多国语言支持(本地化)此文于2010-06-22被推荐到CSDN首页如何被推荐?一款Silverlight开发的游戏最终发布时无论是部署于网站上或是手机等移动设备中,为能让其拥有最广泛的用户使用群体,我们必须在开发初期就将游戏的本地化实现提上议程。

微软为我们提供的Silverlight原生态是通过在XAP中嵌入多国语言Resource File来实现,过程比较烦琐且效果差强人意。

企业应用中就算多包装几个语言文件进XAP亦无关痛痒;然而一款集成有丰富故事脚本、事件剧情及历史背景比如《龙与地下城》之类史诗级游戏巨著的Silverlight游戏,将所有语言文件一并打包让用户去下载那绝对是糟糕致极的用户体验。

此时我联想到了传统网站开发中的多国语言支持方式:通过定制语言文件格式,用户可在程序入口处根据自身的语言情况去选择加载所需语言包。

接下来的问题是,这个方案能否移植到Silverlight游戏产品中?答案是肯定的。

于是,我再次打开当年那些尘封已久的项目,依葫芦画瓢随便建它个5国xml语言文件,嘿嘿:以我最可爱的母语-简体中文(CN.xml)为例,我的规格设定类似如下结构:接下来就是在游戏入口处根据用户选择下载指定的语言xml配置文件(在中有详细讲解xml的动态下载及缓存方法):Downloader downloader=new Downloader();pleted+=(s,e)={if(e.stream!=null){Global.PackInfo["Language"]=XElement.Load(e.stream);}downloader.GetResource(string.Format(Global.WebPath("Language/{0} .xml"),languages[i].Tag.ToString()));}根据原则,此xml下载后即缓存到用户电脑中,因此需要时我们只需通过LINQ2XML即可轻松读取指定代号(Code节点中的文字内容:///summary///获取语言包中指定代号文字内容////summary///param name="code"代号/param///returns文字内容/returns public static string GetLanguagePackContent(int code){try{returnPackInfo["Language"].DescendantsAndSelf("Content").Single(X=X.Attribu te("Code").Value==code.ToString()).Attribute("value").Value;}catch{return"?";}}当我们需要某代号文字内容时,通过例如Text=Global.GetLanguagePackContent(code)模式即可获取。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Silverlight技术研讨:WebClient, 文件下载利器
对于小型的Silverlight应用程序,可以把所有内容,包括资源,都包含在一个Xap包中发布。

对于开发者来说,是个很便利的选择,可以把更多的精力和时间用到程序的功能方面,提高开发效率。

但是对于使用者来说,如果xap文件过大,需要下载几分钟或者更长时间才能看到实际效果,可能是一个很糟糕的用户体验,一定需要很大的勇气和决心才会再次访问。

为了解决初始下载主包时间太长的问题,开发者一般会把比较大的音频,视频和图片等资源从主包中剥离出来,使用动态下载方式。

而无论是那种动态下载技术,WebClient类都扮演着十分重要的角色。

我们需要深刻的认识和理解WebClient,才能更好的决定动态下载技术和策略。

这一节作者首先介绍和剖析WebClient类。

首先看看官方的在线帮助,是最权威的解释。

用于上传服务器文件的方法就不提了,这里只关心用于下载的两个方法:DownloadStringAsync和OpenReadAsync,一个用于下载字符串,另一个下载文件流。

使用方法很相像,以OpenReadAsync为例,值得注意的有这么几点:
1. 此方法使用GET 方法检索指定的资源。

资源是异步下载的。

2. 在完成第一个下载操作前,不能对同一WebClient 对象再次调用OpenReadAsync 方法。

执行此操作会导致异常。

3. 如果BaseAddress 属性不是空字符串,且地址不包含绝对URI,则该地址必须是相对URI,此URI 与BaseAddress 组合在一起构成所请求数据的绝对URI。

第一点异步下载没什么好说的了,这对于好的用户体验是必须的,否则在下载过程中用户只能绝望的等待,不能看到一点进一步的信息,用户是会疯掉的。

第二点有点意思,是说一个WebClient 对象不可以同时进行两个下载,否则会导致异常。

不过言外之意是,如果想要同时下载另外一个文件,可以创建一个新的WebClient 对象。

作者未曾验证过,希望没有误解权威的意思。

第三点很重要,WebClient需要一个绝对地址来进行下载。

你可以直接提供一个绝对地址,没问题。

如果你打算用相对地址,则必须保证BaseAddress 与这个相对地址可以组合成正确的绝对地址。

缺省时BaseAddress 为主xap包的地址,那么你一定要保证相对地址是相对于的。

注意对于DownloadStringAsync和OpenReadAsync 方法,还可以传递一个用户自定义的参数,userToken。

“将userToken 作为传递到在完成异步操作时调用的方法的AsyncCompletedEventArgs 的UserState 属性接收。


举个例子来说,当调用OpenReadAsync 时,可以把文件名当作第二个参数。

在注册的下载完成的方法里,erState包含了该文件名,于是你就知道下载的是哪个文件了。

WebClient还有一个十分酷的特性,可惜官方帮助没有提及。

WebClient可以与浏览器共享缓存文件!具体说来,如果你通过网页浏览已经缓存了某个文件,当你用WebClient下载这个文件时,WebClient会直接从缓存文件中直接读取,不再重新下载。

反之亦然,WebClient下载的文件会保存在浏览器缓存目录中,供浏览器和WebClient下次使用。

这可是实现silverlight动态下载并缓存的理论基础,十分重要!!
当然有些时候开发者并不想使用缓存文件。

例如服务器文件更新了,希望下载最新的文件而不是缓存的文件。

这种情况怎么处理呢?有人提出了一个解决办法:因为文件缓存是基于url的,如果在url后面加上一些随机的无意义的字符,例如?o=123,则可绕过缓存。

缺点是每次下载都会增加新的缓存文件,浪费空间啊。

理论准备暂时就这么多了,后面文章将详细讲述WebClient在动态下载中的具体应用。

相关文档
最新文档