当前位置: 老葡京网站娱乐 > web开发 > Silverlight > 正文

Silverlight和Java的互操作

时间:2013-11-15 infoq Robert Bell

老葡京网站娱乐 www.sdguanhua.com 摘要

本文针对那些希望把Silverlight集成到解决方案中的Java社区开发人员,给出了一些入门指导。微软 Silverlight是一个跨浏览器、跨平台和跨设备的浏览器插件,旨在设计、开发和发布下一代多媒体体验与富 交互(rich interface application)的网络应用程序。 本文同时也介绍了Silverlight的一些背景知识,其基 本功能和开发理念;介绍了在开发支持多种媒体的富客户端应用时如何合理定位Silverlight;还介绍了 Silverlight的架构,优点及其局限性等等。

本文探讨了Silverlight和Java交互的三种不同情况:SOAP web服务、REST web服务以及聚合(RSS)服务 。SOAP web服务和REST web服务是通过NetBeans中的工具来实现的。文中为每种交互都提供了演示程序代码, 并且讨论了最适合应用该种交互的情况。Silverlight也可以直接与sockets交互,但相对比较复杂,并不常见 ,因此将会在以后加以讨论。本文着重于Silverlight 2 Beta 2的Silverlight-Java交互的讨论和一些架构 方面的指导。

范围

本文将主要讨论Silverlight-Java的互操作。通过Visual Studio创建一个Silverlight应用程序,帮助开 发者对下列这些互操作方式有所了解:

与SOAP web服务的互操作

与REST服务的互操作

与聚合 (RSS) 服务的互操作

Silverlight也可以与sockets交互,但相对比较复杂,本文将不作讨论。

终极目标

为Java社区提供实现基本的Silverlight-Java服务互操作的几种可选方案。

目标

读者对什么是Silverlight及其用途有准确的理解。

读者对Silverlight的架构,它的优缺点,能有个基本的了解。

通过对上文“范围”一节中提到的三种基本互操作实例的描述,就Silverlight客户端是如何与Java服务进 行交互这个问题给读者提供一个实用的指南。

Silverlight简介

微软Silverlight是个跨浏览器、跨平台、跨设备的浏览器插件,旨在设计、开发和发布下一代多媒体体验 与富交互(rich interface application)的网络应用程序。Silverlight的定位是,应用于可以快速部署到 浏览器中的富互联网应用。 “Silverlight是为连接到主机的网页内容而设计的,其特点是不但用户可深入地 参与到交互中,而且应用还可在任何浏览器中运行。”使用Silverlight的场景。

把用户界面设计和底层逻辑分开可以大大提高应用程序开发生命周期(ADLC)的生产率。结合使用 Microsoft Expression和Microsoft Visual Studio,用户界面设计人员和开发人员能够发挥各自所长,改进 相互间的合作。

扩展应用程序标记语言(XAML)是一种基于XML的说明性语言,支持对流程的控制,专门用来做用户界面设 计。而.NET语言则用来编写用户界面的后台逻辑,例如VB.NET、C#、IronRuby和IronPython。Windows Presentation Foundation (WPF)和Silverlight都采用XAML。

Silverlight的运行时环境是其架构的基础。Silverlight 2 Beta 2有一个一次性下载的大小为4.6MB的插 件,能够部署到IE、Firefox、Opera或者Safari浏览器中。一个zip格式的“.xap”文件是Silverlight应用程 序的开发包。这个“.xap”包中包含了应用程序及其接口,供Silverlight插件控制运行。这个“.xap”文件 是在Visual Studio .NET中开发的,每次编译,客户端的“.xap”文件都会得到更新。Silverlight应用程序 (“.xap”文件包)可以由任何web服务器部署。

图1:Web浏览器沙箱中的Silverlight

Silverlight控制器内嵌在HTML网页中,自然就包含在web浏览器的沙箱内。 MSDN有一篇技术文章 Silverlight架构概述对Silverlight的架构做了大体的描述,阐释了Silverlight在微软用户体验(UX)计划中 的地位。 非常重要的一点是,在Silverlight运行的客户端机器并不需要安装.NET。运行Silverlight所需的 必要资源全都包含在Silverlight浏览器插件中。所有互操作场景都建立在Silverlight 2 Beta 2之上。 Silverlight 2 Beta 2的新特性有:

框架语言(Visual Basic.NET, C#, IronPython, IronRuby)

存储分离

JSON、REST、SOAP/WS-I、POX和RSS Web Services(也支持Sockets)

支持WCF

ADO.NET数据服务

LINQ to Objects和LINQ to XML

Deep Zoom技术

XML可编程

媒体内容?;?/p>

丰富的可管理控制框架这里列举了一个简单的crossdomain.xml文件的例子:“