使用Silverlight技术开发Rich Internet Applications的研究-毕业论文_第1页
使用Silverlight技术开发Rich Internet Applications的研究-毕业论文_第2页
使用Silverlight技术开发Rich Internet Applications的研究-毕业论文_第3页
使用Silverlight技术开发Rich Internet Applications的研究-毕业论文_第4页
使用Silverlight技术开发Rich Internet Applications的研究-毕业论文_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用Silverlight技术开发Rich Internet Applications的研究本科毕业论文(科研训练、毕业设计)题 目:使用Silverlight技术开发Rich Internet Applications的研究 姓 名: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 学 号: 指导教师(校内): 职称: 指导教师(校外): 职称: 年 月 50摘 要Rich Internet Applications(RIA)技术在最近几年以来发展突飞猛进,由于其发展尚处于早期阶段,还拥有很广阔的市场和发展空间。本文讨论了RIA体系结构与Client/Server,Browser/Server体系结构的区别,回顾了RIA的发展过程,优点,不足之处和开发RIA的各种技术。最后选取2008年3月5日由Microsoft发布的Silverlight 2.0测试版本,开发了一个英语学习的Silverlight全站用例,来说明Silverlight和RIA的开发方式,阐述了它们的优缺点以及可拓展空间。关键词:富英特网程序;微软银光;英语学习软件AbstractRich Internet Applications (RIA) had conquered quite a large market of the Web application in the last few years. For this technology is still in its initial stages, it has a bright future and need to be standardized in the future. Here in the thesis, we introduced the main differences among Client/Server, Browser/Server and RIA architectures, discussed the advantages and disadvantages of RIA, and listed a few developing technologies to build RIA. Then we choose the Microsoft Silverlight 2.0 Beta, which was lately released on March 5, 2008, as the core technology to build an English Study Website, illustrating the wide space that Silverlight and RIA might go.Key words: RIA;Microsoft Silverlight;English Study Software.目 录第一章引言11.1 Client/Server结构11.2 Web程序和Browser/Server结构11.3 本章小结2第二章 Rich Internet Application富英特网程序32.1 RIA的发展历史32.2 RIA的优点42.3 RIA的不足之处52.4 RIA的发展现状82.5 开发RIA的各种技术8Adobe Flash,Adobe Flex和Adobe AIR8Backbase9Curl9Google的GWT Framework10Java Applets10Java程序10JavaFX11JavaScript/Ajax11Microsoft ActiveX11Microsoft Silverlight11Mozilla Prism12OpenLaszlo12REBOL 2.6和Smalltalk的Seaside122.6 本章小结13第三章 Microsoft Silverlight143.1 Silverlight概述143.2 Silverlight的兼容性163.3 Silverlight发布的版本19Silverlight 1.019Silverlight 2.0203.4 Silverlight开发工具223.5 本章小结24第四章 Silverlight开发项目实例Pancake English254.1 Pancake English项目简介254.1.1 现有英语学习软件分析254.1.2 Pancake English的优势254.2 项目详细介绍264.2.1 基于记忆遗忘曲线的背单词功能264.2.2 多媒体英汉词典功能304.2.3 按字幕定位的媒体播放器334.2.4 基于媒体播放器的听写功能和字幕编辑功能364.2.5 服务器端设计404.3 本章小结44第五章 结论465.1 Pancake English扩展前景465.1.1 Pancake English的适用场合465.1.2 Silverlight Beta版本的局限性465.1.3 Pancake English在移动终端上的部署475.2 Silverlight开发未来47致 谢48参考文献49ContentsChapter 1 Overview11.1 Client/Server11.2 Web Application and Browser/Server11.3 Summary2Chapter 2 Rich Internet Application32.1 History of RIA32.2 Benefits of RIA42.3 Shortcomings of RIA52.4 Current Status of Development82.5 List of RIA Platforms and Approaches8Adobe Flash,Adobe Flex and Adobe AIR8Backbase9Curl9Googles GWT Framework10Java Applets10Java Applications10JavaFX11JavaScript/Ajax11Microsoft ActiveX11Microsoft Silverlight11Mozilla Prism12OpenLaszlo12REBOL 2.6 and Seaside for Smalltalk122.6 Summary13Chapter 3 Microsoft Silverlight143.1 Overview of Silverlight143.2 Compatibility163.3 Releases19Silverlight 1.019Silverlight 2.0203.4 Development Tools223.5 Summary24Chapter 4 A Silverlight Project-Pancake English254.1 Overview of Pancake English254.1.1 Current status of English Study Softwares254.1.2 Advantages of Pancake English254.2 Project Details264.2.1 Words Function Based on the Forgetting Curve264.2.2 Multi-Media Dictionary304.2.3 Subtitle-Based Media Player334.2.4 Dictation and Subtitle Edit364.2.5 Design of Server404.3 Summary44Chapter 5 Conclusion465.1 Pancake Englishs Future465.1.1 What can Pancake English Do465.1.2 Limitaion of Silverlight Beta465.1.3 Pancake English on Mobiles475.2 Silverlights Future47Acknowledgement48References49第一章 引言1.1 Client/Server结构Client/Server(C/S),即我们所熟知的客户机/服务器结构,属于计算机软件体系结构的一种。它通过将任务合理分配到Client端和Server端,充分利用两端的硬件环境的优势,降低系统的通讯开销,同时增强了数据的安全性。Client/Server这种说法首次出现于19世纪80年代,代表网络中的各个终端电脑,而直到80年代末期,C/S模型的概念才广泛为人们所接受。我们日常生活中所使用的大部分桌面应用程序即属于C/S结构,譬如用于及时通讯聊天所使用的Windows Live Messenger(MSN),或各种类型的网络游戏譬如梦幻西游,等等。Client端程序在用户的个人电脑中运行,而各项服务程序则在指定Server中运行。使用Client/Server结构开发的应用程序交互性较强,网络通信量较低,响应速度快,方便处理大量数据,同时C/S结构的程序也具有较为优良的用户界面。但是,也因其结构特点,C/S结构的程序往往具有如下的缺陷:l 开发不够灵活,兼容性较弱,对于不同的应用及环境,无论是Server还是Client端都需要开发特定的软件;l 软件的维护开销较大,需要做到Server和Client同时维护,且任何Server端的修改都会导致Client端相应的修改或更新;l 部署和实现不够灵活,必须安装Client端,局限于固定用户,缺少通用性。1.2 Web程序和Browser/Server结构在对C/S不断改进的过程中,同时伴随Internet技术的发展,Browser/Server(B/S)体系结构应运而生。B/S结构将绝大部分的处理保留在Server端,Client端只需通过Browser(浏览器)对Server端生成的标准格式文件进行解析,譬如我们平时使用的搜索引擎,各种新闻网站,以及电子邮件服务等。这种方式下只需对Server端进行维护,用户无需了解Server端底层究竟采取了什么样的技术,Server端的修改、升级也不需要Client完成任何更新。同时,Web 应用程序的部署十分灵活,无论是Windows的用户或者Mac系统用户,都可以通过其运行平台上不同的浏览器,体验完全相同的功能服务。B/S结构在拥有其部署灵活,维护相对较简单等优点的同时,也具有这样一些缺陷:l Web应用程序对于服务的每一次请求都需要刷新页面,即任何交互都是一次远程的传输,占用了相当大的网络资源;l Web程序与用户交互性较差,同时也无法与其他应用程序进行交互;l 由于页面刷新所占用的资源较大,无法进行大量的数据处理,开发者无法对其界面做大量的修饰,导致了Web应用程序在界面导上的单调,损失了很大一部分的用户。1.3 本章小结随着C/S与B/S两种技术各自的不断发展和交互运用,已有各种技术出现以弥补两种结构各自的缺陷。而近几年来出现的RIA(Rich Internet Applications,富英特网应用程序),结合了C/S与B/S的优点,尽管其发展还不完善,但却在很大程度上革新了传统Web应用程序的开发过程与使用方式,同时也成为继C/S和B/S两大传统软件体系结构之后的第三种软件开发体系结构。本文将在第二章中对RIA做具体介绍。第二章 Rich Internet Application富英特网程序Rich Internet Applications(RIA)是指具有C/S程序结构特征的Web应用程序。RIA将数据操作保留在Server端,同时把部分必要的用户界面等操作留在客户端(即浏览器)中运行,以减少网络开销,提供优质和交互性更强的图形用户界面。RIA通常运行在浏览器中,不需要安装其他软件,有时也需要用户浏览器安装特定的语言解释器,其功能类似于Java语言的虚拟机,也即为我们平时说的“插件”。插件一旦安装,便可以解释执行同类型的所有功能。2.1 RIA的发展历史Rich Internet Application的说法首次出现于Macromedia公司2002年3月份的白皮书1中,而富英特网应用程序的概念则在更早的时候就已出现,之前曾被表述为:l 1998年左右,Microsoft公司,称之为远程脚本(Remote Scripting);l 2000年8月,Forrester Research,X Internet;l Rich (web) Client(胖(网络)客户端);l Rich web application 富网络应用程序.传统的web应用程序主要围绕Client和Server两端的通信运行,这种情况下,所有的处理过程都在Server端完成,而这里的Client,所谓的瘦客户端(Thin Client),只需显示静态的HTML页面内容。这种结构最大的缺陷是,用户的一切服务请求都必须传回服务器,由服务器处理后生成新的页面,再传回浏览器显示。RIA通过在客户端执行的指令,可以直接与用户进行交互而避免了这种相对较慢的同步模式。RIA对于传统Web程序的革新,有点类似于Client/Server结构对于终端/主机模式的进化。由于Internet标准本身为了适应更好的应用也在不断的发展变化,所以我们对于何种应用程序属于RIA何种不属于并没有一个明确的划分。但所有的RIA都具有这样的一个特点:它们都引进了一种称为客户端引擎(Client Engine)的中间层代码,运行于用户和服务器之间。客户端引擎通常在服务实例化时被部分下载,程序运行过程中继续补充下载,作为浏览器功能的一种延伸,负责渲染程序用户界面以及与服务器交互。RIA提供的功能与其所运行于的客户端使用的系统相关。总的来说,设计者设计客户端引擎的目的是为了提供某种功能,以提升用户界面效果,或者增强特定的交互能力,而这些功能是传统的Web程序无法做到的。此外,浏览器与服务器传统的同步模式无法改变,而客户端引擎能够做到与服务器的异步传输,即用户直接与客户段引擎交互,而客户段引擎直接与Server交互。2.2 RIA的优点尽管开发运行于浏览器上的程序要比普通Web程序或是桌面应用程序要复杂,而且其效果却并不一定会比C/S结构的程序好,RIA却拥有着它不可比拟的优点:l 安装简单:RIA的安装和更新过程的总开销远比桌面应用程序或操作系统本机程序要小得多,如Microsoft Silverlight插件,大小约为2MB左右;l 程序的更新和升级是自动的或者对用户透明;l 用户可以使用任意计算机通过网络连接来使用程序;l 已出现一些程序支持RIA的离线使用,譬如Adobe AIR,Google Gears等;l RIA的跨操作系统特性保证了用户对产品使用的连贯性,比如某用户在公司使用Windows系统,在家中使用Mac系统,而两处所使用的RIA程序在界面和功能上几乎完全一致;l 基于网络的应用程序比运行于本机的C/S的Client端被病毒入侵的可能性小。对于客户端引擎的引进,使得RIA具有了如下的特征:l 更丰富:RIA提供了标准浏览器使用传统HTML技术所无法实现的用户界面行为,诸如控件的拖放(drag-and-drop),使用滑动条(Slider)对数据进行控制等,这些计算都在客户端本机中运行而无需传回服务器处理。l 响应更快:相比于传统B/S结构中所有处理都须回传服务器的模式,RIA在本机处理部分操作的模式使得程序对于用户的交互响应更快。最为复杂的RIA能够提供与C/S程序外观相媲美的使用环境,同时也可以做到:l Client端与Server端的平衡:由于将部分处理转移到了客户端,浏览器的负担相应减弱,使得同一Server可以同时处理更多的服务请求;l 异步传输:客户端引擎可以在用户未发出命令前与服务器进行传输,这使得用户对于页面的操作与服务器形成异步效果。这种技术的本质是在用户调用数据前事先传入数据,减少了用户等待的时间,因此提高响应速度。Google Map便是使用的这种模式,在用户放大图像之前,事先读入调整图片。l 网络效率:特别设计的客户端引擎可以判断数据中哪些必须回传服务器而那些可以不用回传,从而加快了单个请求的响应速度,降低了整个网络的使用负载。但是,由于异步传输和事先读取数据技术的使用,这项优点很有可能被中和甚至是反而加重网络的负担。比如代码并不能事先预测用户下一步动作,为了提升响应速度,就必须下载多余的数据以方便调用。2.3 RIA的不足之处RIA同时也具有如下的一些缺陷:l 沙盒(sandbox)效应:某些RIA必须运行于特定的浏览器中,称之为沙盒,限制了程序与系统其他资源的交互,若对于资源使用的假设错误,则会造成程序出错;l 脚本禁止:一些RIA必须通过脚本程序来运行,若用户禁止了本机浏览器中的脚本运行,则会造成整个RIA无法运行;l 客户端处理速度:为了实现跨平台性,一些RIA使用了诸如JavaScript等的解释性语言,因此会带来运行效果上的损失,而这些损失对于移动终端设备来说,意义重大。而对于像Java这样的编译文件,与传统的编译语言可媲美,则不存在这样的问题。如Flash,Curl和Silverlight,也是使用它们各自的插件来运行已编译的文件。l 脚本下载:RIA不需要普通意义上的“安装”过程,但它的客户端智能(即客户端引擎)却需要从服务器端获取,尽管过程是自动的,但也需要下载至少一次。依据所需的文件的大小和类型,脚本的下载时间也许会很长。RIA的开发人员可以通过压缩技术或将下载时间分部在一个程序的多个页面中来减少用户的等待时间; l 完整性的丢失: 若程序建立在X/HTML的基础上,则容易发生两者目标的冲突,因为程序的目标是控制功能和表现,而X/HTML的目标是为达到标准化而放弃功能和表现。DOM为X/HTML提供了创建RIA的可能性,但是却无法保证绝对正确的功能。因为RIA的用户可以调整程序的基础结构并重写功能和表现,而这样可能会引起在客户端的运行错误。当然,新近出现的RIA技术可以通过限制客户端修改资源的权限来减少这样的问题。(本机运行的程序则不会出现这样的问题,因为这种程序对所有它要用到的资源都作了定义。)l 对于搜索引擎不可见:搜索引擎可能无法检索到程序中的文本内容。Microsoft Silverlight引入的控制矢量图形的XAML文件则从某方面解决了这个问题,写入XAML的文档对于搜索引擎是可见的,但是由代码生成的动态控件中的文档,尽管也是使用XAML语言,但却无法被搜索到。l 依赖于网络连接:尽管理想中的代替C/S结构的网络程序可以让人在任何地方都能联网使用,而离线使用的RIA程序仍旧需要特殊的平台,如Adobe AIR,Google gears。l 可使用性:RIA存在多个网络可用性的问题,而其中最为人所知的是屏幕阅读器从HTML中的JavaScript中读取动态变化需要相当长的一段时间。l 无部署:除了Adobe AIR技术之外,几乎所有的RIA都不像C/S程序那样拥有部署。软件开发的复杂度:RIA技术的出现同时引入了网络应用程序开发上的复杂性。传统的Web程序的建立只需使用标准的HTML,拥有相对简单的软件体系结构,构建时也只需使用有限的开发模式,更容易设计和操作。而对于要开发RIA的个人或企业,他们则面临着更为复杂的设计,测试,测量和支持。使用RIA技术面临着几个新的服务层级管理(Service Level Management,SLM)问题,而这些都是至今还未解决的。SLM旨在减少对于程序开发者的关注,从其诞生以来鲜有人问津,但对于Web程序的网络传输至关重要。RIA程序结构的复杂性2表现在以下几个方面:l 越来越大的复杂度使得开发过程越来越艰难:将代码转移到客户端的方法给与了程序设计者和开发者更大的想象空间。但这也使得开发过程变得艰难,增加了可能出现的bug的数量,使得软件的测试工作相应变得复杂,而这些复杂性延长了软件的开发过程。在使用Web程序框架的过程中可以中和RIA这方面的问题,但是持续增长的软件解决方案复杂性同时也增加了软件测试的复杂度,即增加了需要测试的用例的数量。而未经完整测试的程序在质量和可信度上都会大打折扣。当然,同样的怀疑也存在于其他的技术中。比如19世纪80年代苹果公司和微软公司分别发布GUI时,甚至是福特公司宣布T模型时,都存在过这样的疑问。不过,人类具有解决困难的天性,若是几十年内解决不了,百年之后也必定能够解决。l RIA破坏了网页程序的标准化:传统的Web程序是一组连续的Web网页,每一页都需要一个下载,由HTTP的GET功能获取。这样的模型可以被称之为网页标准化。而RIA为了达到更好的交互性用户界面,通过与Server的异步传输破坏了这种模型。在RIA中,为了提前取得数据,而使下载页面所需要的时间与用户所需求的资源的真实相应时间不符。为了取得用户与程序交互的真实时间,必须使用新型的测试技术。而这样的技术还未出现,所以RIA的开发者不得不为SLM提供相应的代码来测试交互时间。l 异步通讯使得问题的隔离变得困难:自相矛盾的是,为了提升程序的交互性,异步通讯使得程序的测试,理解,报告和管理的交互性变弱。一些RIA从第一张页面开始后便不需要再使用HTTP的GET功能,通过异步传输来初始化和下载其后的所有页面。一些RIA的客户端引擎被设计为一直不断的下载内容来更新界面,或者服务器会一直不停的向客户端浏览器发送内容更新。这样一来,所谓的页面下载就不再“可控制”,而这样的程序则是无法刷新的。这些复杂度使得程序的测试更加困难,对于子程序响应时间的测试也无法完成,而这一点对问题隔离和服务层级管理相当重要。现有的一些Web程序测试工具也只会将这样的程序看作单一页面,或不相关的一组服务器活动,而这两者都无法真实表现这一层级程序的活动。l 客户端引擎使得真实响应时间无法测量:对于传统的网络程序,测量软件会安装在客户端或靠近服务器的某台机器上,以测量TCP和HTTP级别的网络通讯量。由于这些协议的同步性且可预测,一个包探测器就可以阅读和翻译包级别的数据,然后通过跟踪HTTP消息和TCP包的相应时间来推测用户的体验响应时间。但是RIA体系结构降低了这种包探测性的功能,因为客户端引擎打破了用户和服务器的通讯,将其一分为二。这里划分后的两个通讯循环都很重要,因为任意一个都可以单独使用,而两者之间的交互构成了程序的各种功能。但是这样的交互完全依靠设计,无法由任何测量工具来推测。所以,RIA最为完成的测量工具都只能通过安装在客户端的工具来观察者两个通讯循环。2.4 RIA的发展现状RIA的发展尚处于早期阶段,用户和开发者都还没有完全的接受这样技术。在其发展过程中,仍旧存在如下的限制急需解决:l 浏览器的兼容性问题:很多RIA都需要借助现代的浏览器来运行,高级的JavaScript必须跟RIA一同运行在允许执行XMLHTTPRequest的客户端浏览器交流中,且需要DOM Scripting和高级CSS技术的支持。l 网络标准:不同的浏览器使得开发跨浏览器的RIA变得复杂,而自从Java 1.1过后的Java平台的通用性变得越来越好,使用Java applet开发的RIA也取得了同样的的通用性。l 开发工具:像诸如Ajax Frameworks,Curl,Adobe Flex和微软公司Silverlight等为开发RIA提供了完整的开发环境。l 可使用性:附加的交互性可能会需要特定的技术支持,而使用这些技术会带来程序可用性的限制。l 用户适应性:一些已经适应了标准网络程序的用户也许会对一些浏览器功能不适应,比如“Back”操作的效果会与传统网络程序大相径庭。2.5 开发RIA的各种技术Adobe Flash,Adobe Flex和Adobe AIRAdobe Flash属于开发RIA的一种特殊技术,该技术支持跨平台,能够开发功能较强的程序界面。Adobe Flex基于XML语言,提供了通过编译MXML开发用户界面的框架。Adobe Flex开发的框架文件被编译为SWF文件,运行于Adobe Flash Player中。Adobe公司同时发布了Adobe AIR(Adobe Integrated Runtime),是独立于操作系统的一个运行时平台。Adobe AIR允许Flash Player和Ajax程序安装/部署在用户的电脑之中,类似于传统的桌面应用程序。BackbaseBackbase是一种基于Ajax的RIA框架,用于开发基于各种标准的RIA。客户端运行一个普通的浏览器,通过使用Java,PHP,.Net,Perl或XML/XSLT技术以结合现有的表现层。Backbase Visual Ajax Builder是一种WYSIWYG可视化RIA编辑器,可用性等同于Eclipse插件。Backbase提供了JSP版本使得RIA的开发能够符合JSF(Java Server Faces)标准。CurlCurl诞生于19世界90年代的MIT,最初是作为一项研发项目,其商用价值由Curl公司开发,于2000年发布了第一个版本。现今发布的最新版本为6.0,可用于Windows,Linux,和Mac系统上。Curl开发不需要特定的服务器端构件,任意服务器都可使用。Curl提供了一组丰富的特性,但又相对易于使用,它允许不同背景的开发者来开发程序的不同层级,如从简单的类似于HTML格式的通用语言,到复杂的基于对象的编程。免费的Curl插件大小为10MB,宽带用户可以很方便的下载使用。其插件式的体系结构优势表现在,Curl applets可在任何平台,任何浏览器中以相同的方式运行,当然也不排除一些浏览器提供了特殊的RIA功能。为了保证运行速度,Curl applets被编译成机器语言,而各种各样的缓存技术也加快了程序的加载速度。在非商业用途,以及某些商业用途中,Curl的使用是免费的,有偿的企业级的开发包提供了附加的企业级开发功能。Curl支持开发大型复杂软件的软件工程,且与其他技术相比,使用了相对少量的代码。有关比较测试证明,使用Curl开发的程序所用到的代码是使用Adobe Flex和Ajax开发相同程序所需代码的三分之一。Curl在很多年前就已经拥有了所谓“分离程序”的特性,即像Adobe AIR那样,可以浏览器窗口中独立运行,支持离线使用。事实上,开发Curl使用的Curl IDE便是用Curl技术本身构建的。Google的GWT Framework由Google于2006年发布的Google Web Toolkit,也称为GWT,允许开发和测试使用JavaScript和Ajax编写的RIA。GWT编程用例围绕着使用Java逻辑来编写用户界面,等同于Swing或AWT模型,然后使用GWT编译器将该逻辑翻译成跨浏览器的JavaScript。由于是专门为Java开发者设计的,GWT可以使用现有的工具如Eclipse来进行Java编程,更新,编译和单元测试,而不需要JavaScript或浏览器DOM不规则性的特殊知识,当然,如有必要,手写的JavaScript也可在GWT中运行。Java AppletsJava小程序运行于标准的HTML页面,在页面被打开之后自动运行,在其设计的区域之内,其功能可以直接表现在屏幕上,其功效就像音响,键盘和鼠标 那样,在网络上提供实时的交流。Java程序基于Java的RIA允许浏览器内部打开程序,同时也提供了使用集成于桌面的Java Web Start方式打开。Java RIA的优势在于,它可以使用由Java平台提供的全部特性,例如更为丰富的编程功能,2D和3D图形技术,离线功能等。Java技术早已被广泛使用,在商业和开源方面都拥有大量可使用的平台类库,在任何系统下都有相应的支持。Java支持的RIA,最大的弱点便是对于多媒体的支持,Java 6 Updates N在这方面有一些解决方案,如对于开始时间和下载大小的控制,而且Sun公司预计在2008年第二个季度发布的更新中,会对多媒体做更多的支持。现有的支持Java RIA的框架包括基于XML框架的Swixml,Canoos,UltraLightClient等。JavaFXSun公司的Microsystems已经发布了JavaFX,是一组基于Java的专用于提供一致性体验的多媒体技术,包括桌面应用程序,网络程序,移动设备,和DB播放器。JavaFX平台包含了JavaFX脚本和JavaFX Mobile。作为Sun公司重抢占RIA市场的重要项目,JavaFX脚本允许使用类似于SVG的句法快速开发2D接口。Sun公司也准备将JavaFX脚本作为开源项目,但JavaFX Mobile将会用于商业用途。JavaScript/Ajax第一个允许在客户端使用代码的技术便是JavaScript,尽管在一开始其功能相当局限,但结合了不同层级和其他DHTML开发,JavaScript也使得RIA的开发成为可能。Ajax是这种技术结合的一个新的形势,被最广泛的运用于Google的各个项目中,如Gmail和Google Maps。但是,靠这样的框架建立大型程序相当困难,因为需要使用多项技术相互交流,且浏览器需要支持每一种技术的运行。为了解决这些问题,众多的开源或商用开发都已投入实践测试中。Microsoft ActiveX在HTML中嵌入ActiveX控件后,便具有了相当强大的开发RIA功能。但是ActiveX只能运行于Internet Explorer中,不具备跨浏览器的特性。且由于ActiveX不在沙盒中运行,极为容易受到病毒和恶意软件的侵袭。现今的Adobe Flash Player都是作为Internet Explorer的ActiveX控件安装于Windows环境中,而在跨平台的Netscape浏览器中则作为插件使用。在Internet Explorer与其他浏览器达成标准之后,ActiveX技术可能成为建立RIA最优先的选择。Microsoft SilverlightMicrosoft Silverlight,也是Windows Presentation Foundation(WPF)的一个功能子集,是Microsoft公司发布的专门用来开发RIA的工具。这里是本文最终选择用于开发实验用例的技术。与WPF相同,Silverlight使用XAML来开发界面,因此有.NET或XAML开发经验的开发者都会发现Silverlight开发过程的熟悉性,也因此可以吸引当前大部分.NET开发者。为了运行Silverlight程序,客户端必须安装一个Silverlight运行时插件,而这个插件的大小约为2MB左右,十分便捷。至今为止,Silverlight的插件可以运行于Windows和Mac OS X系统浏览器之上,实现了部分的跨浏览器,跨平台性。而一个第三方开源插件,称为moonlight,则可以实现在Linux上运行Silverlight创建的RIA。且Microsoft公司也承诺将会拓宽所支持的客户端范围。在今年Las Vegas的MIX08会议上,Microsoft发布了Silverlight 2.0的测试版本,运行在Nokia S60平台上,同时发布的也包括Microsoft Windows Mobile 6。Silverlight 2.0 Beta也是本次系统所使用的版本,而正式版将于2008年8月推出。Mozilla PrismMozilla Prism用于集成Web程序和桌面应用程序,允许通过桌面应用程序制定特定浏览器来运行Web程序。OpenLaszloOpenLaszlo是由Laszlo System公司开发的一款开源RIA框架。OpenLaszlo的服务器将由LZX语言(一款结合XML和JavaScript的语言)编写的程序编译为DHTML(现称为Ajax)或Adobe Flash位代码,同时也支持Flash7和Flash8。该服务器技术曾属于专利项目,在2004年8月是通过Common Public License被开源。OpenLazlo是唯一一款能够将同一代码编译成为两种运行语言的RIA工具。REBOL 2.6和Smalltalk的Seaside与Java开发的RIA可媲美的技术还包括REBOL和Smalltalk编程语言。REBOL不需要浏览器,而Smalltalk的Seaside更为丰富的网络体验。两种技术与Java和JVM相比,发展程度都还不够。2.6 本章小结RIA是为了解决Web Application各种局限而诞生的,它结合了Client/Server结构的许多优点,也是软件产业追求更高效,更加推崇用于交互体验的一种象征。尽管RIA的发展还不完善,需要我辈不懈的努力使之发展壮大,但相信RIA在各大软件龙头企业的带动下,一定会有更为广阔的开发前景。在下面的章节中,我们将选取Microsoft Silverlight作为重点,阐述其发展历史,优缺点并使用该技术开发了一个名为Pancake English的英语学习网站作为实例,来探讨该技术的开发过程以及发展空间。第三章 Microsoft Silverlight表1 Silverlight发布信息Microsoft Silverlight开发商:Microsoft下一版本预计发布时间:2008年8月上一版本发布时间:2008年3月5日 2.0测试版开发语言:C+与C#混合开发运行系统:Windows,MacMicrosoft Silverlight是一种网络浏览器插件,它为RIA提供了诸如动画,矢量图型和音频视频播放的支持。作为Microsoft公司抢占RIA市场重拳出击的项目,Silverlight需要与Adobe Flash,Adobe Flex,Adobe Shockwave,JavaFX和Apple Quick Time竞争。其2.0版本更是引进了更加强大的交互性,并提供了对于.NET语言和开发工具的支持。最初的Silverlight被称为Windows Presentation Foundation/Everywhere(WPF/E),可以运行于Windows系统和Mac OS X操作系统上。对于移动设备,从Windows Mobile 6或Symbian(60系列)之后的手机,都将会支持Silverlight。一个名为Moonlight的第三方软件如今也正在开发中,将会实现Silverlight在GNU/Linux上的支持。3.1 Silverlight概述与WPF相似,Silverlight提供了图像系统的保留模型,可以集成多媒体,图像,动画和各个运行之间的交互。Silverlight使用XAML语言,同时可以使用JavaScript进行脚本编程,其中XAML语言提供了矢量图型和动画的各种数据。相比于Flash无法编译的文档,Silverlight的文字内容更容易被搜索和定位,但必须在XAML文档中定义。(若是动态生成的控件中的文字,则无法被搜索引擎识别)。Silverlight也可以用于开发Windows Vista系统中的边栏功能。以下是一段XAML文档的内容:代码段1 XAML范例该段代码在一个Canvas对象上设置了一个文本框,这里Canvas等同于一块画布,开发者可以通过在其上添加各类控件来开发用户界面。而在文本框TextBox中,有一个TextChanged的对象,指向一个后台代码的函数,用于处理各种动态事件。XAML界面与后台代码的关联也就表现在这里。Silverlight提供了对于所有浏览器上WMV,WMA和MP3文件格式的播放功能,且不需要Windows Media Player或是Windows Media Player ActiveX的支持。因为Windows Media Video 9属于SMPTE VC-1的实现,所以Silverlight也提供了对于VC-1的是的支持,但必须使用ASF格式的文件。而H.264格式的视频是不为Silverlight所支持的。Silverlight可以使用DOM接口动态的加载XML内容,并支持与Ajax技术交互。Silverlight提供了一个名为Downloader的对象,专门用于下载脚本,媒体内容或其他程序所需要的数据。在2.0版本中,程序逻辑可以由任意.NET语言编写,如VB和C#,而Ruby和Python等动态编程语言也可使用。3.2 Silverlight的兼容性表2 Silverlight的兼容性操作系统:Windows Vista/2008IE 6 SP1不可用IE 6 SV1不可用IE71.0和2.0IE82.0Firefox/SeaMonkey/Mozilla1.0和2.0Safari通过NPAPI支持1.0和2.0Konqueror不可用Opera非官方操作系统:Windows XP/2003/Home ServerIE 6 SP1不可用IE 6 SV11.0和2.0IE71.0和2.0IE82.0Firefox/SeaMonkey/Mozilla1.0和2.0Safari通过NPAPI支持1.0和2.0Konqueror不可用Opera非官方操作系统:Windows 2000IE 6 SP12.0IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla不可用Safari通过NPAPI支持2.0Konqueror不可用Opera计划操作系统:Windows Mobile 6IE 6 SP11.0IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla不可用Safari不可用Konqueror不可用Opera不可用操作系统:Mac OS 10.4/10.5 PowerPCIE 6 SP1不可用IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla1.0Safari1.0Konqueror不可用Opera计划操作系统:Mac OS 10.4/10.5 IntelIE 6 SP1不可用IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla1.0和2.0Safari1.0和2.0Konqueror不可用Opera计划操作系统:Linux x86-64(moonlight)IE 6 SP1不可用IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla计划Safari不可用Konqueror计划Opera计划操作系统:Linux x86(moonlight)IE 6 SP1不可用IE 6 SV1不可用IE7不可用IE8不可用Firefox/SeaMonkey/Mozilla计划Safari不可用Konqueror计划Opera计划注释:l Opera对于Silverlight的官方支持将正在建设中。非官方的支持现都采用黑客方法。l 在Linux系统中,程序功能由第三方软件moonlight来实现。Moonlight将会为Linux的各种分布提供支持,对于Firefox,Konqueror和Opera的支持正在研发中l Silverlight移动终端版本也将会发布

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论