Rich Internet Application(富互联网应用程序,简称RIA),一种全新的Web应用程序架构,它结合了桌面软件良好的用户体验和web应用程序易部署的优点,很快获得了企业的青睐。近年来,各大开发平台供应商相继推出新的技术来支持RIA的开发,从Ajax到SilverLight,从Apollo和AIR到Flex和Flash,从JavaFX到Laszlo,各种技术粉墨登台,以期成为大家关注的焦点。
然而,作为应用系统开发厂商,开发团队和开发者,在RIA大潮中,选择什么样的技术,让自己更好地构建RIA系统,成为一个我们需要仔细考虑的问题。
AJAX
Ajax实际上是用新的技巧把一些古老技术结合在一起使用,从而让WebApplication用户界面的交互性得到极大的提升。
在Ajax中,XMLHttpRequest是核心,是Ajax强大功能的来源,Ajax和传统的Web界面技术区别也就在此。通过XMLHttpRequest,就把浏览器中的HTML(DHTML)和服务器端的数据分离开。利用JavaScript来操纵客户端访问服务器获取数据,并修改HTML结构,以显示数据。使用Ajax的经典例子就是Gmail和GoogleMaps了。
Flash/Flex/Laszlo
Flex是为满足企业级应用而推出的应用程序框架。Flex提供基于标准的、声明性的编程方法和流程,用于开发和部署丰富客户端应用程序的表示层。Flex开发者使用直观的、基于XML的MXML来定义丰富的用户界面,利用ActionScript(一种面向对象的脚本语言)来编写程序逻辑。
该语言由 Flex服务器翻译成SWF格式的客户端应用程序,在FlashPlayer中运行。目前Flex已经发布了Flex 3.0 beta。
Laszlo是一个开源的RIA开发环境。使用Laszlo平台时,开发者只需编写名为LZX的描述语言(其中整合了XML和JavaScript),运行在J2EE应用服务器上的Laszlo平台会将其编译成swf格式的文件并传输给客户端展示。在未来的计划中,Laszlo还可以将LZX编译成Java或.NET本地代码,从而大大提高运行效率。在最新发布的Laszlo4.0中,开发人员可以选择Laszlo最终显示为Flash还是DHTML。
Flex和Laszlo从运行位置来看,他们都属于服务器端技术,和大家熟悉的ASP,ASP.NET,JSP和PHP的运行机制类似。只是ASP等动态网页技术,是把界面元素解析为HTML发送给客户端的浏览器来展现;而Flex和Laszlo是把界面元素解析为二进制的swf文件,运行到浏览器中的FlashPlayer插件里。
AIR
AIR之前称为Apollo,Adobe官方的解释为:是一个跨操作系统的运行环境,允许开发人员使用以前Web开发的技能来创建RichInternet Application,并部署到桌面上运行。总体来说,AIR就是Adobe把现有的技术,如:Flash、PDF、JavaScript、XML和ActionScript集成在一起,并提供一个客户端运行环境,可以让开发人员开发可以访问Internet资源的桌面程序。本质上,AIR就是让Flash(或者Ajax)脱离浏览器运行的一个桌面应用程序运行环境。
要开发AIR应用程序,也很简单,有两种技术可供选择:一,使用HTML+JS技术;二,使用Flex+Flash。可使用的开发工具也就是开发上述技术的工具,如:flexbuilder、 flash IDE、eclipse、notepad 等等。
使用AIR来开发RIA的优缺点和Flex等类似,最大的好处就是:可以脱离浏览器成为一个独立的桌面程序而运行,并且不受浏览器安全限制,可以有更多的权限访问本地资源。
目前,AIR还在测试阶段,很多功能还不完善,相信等正式版发布后,会有更多特性值得我们期待。
WPF
一直以来,应用程序的用户界面都可以用不同的技术开发,从MFC到VB,从WindowsForms到HTML+JS。对于开发人员来说,这就需要针对不同的应用程序类型,使用不同界面开发技术。随着Flash等多媒体2D或者3D界面的出现,选择就越来越多。如果想使用一种技术就能开发各类应用程序的界面,这将是一个巨大的挑战。
Windows Presentation Foundation(WPF),最初代号为“Avalon”,目前作为 .NET 3.0的一个组件发布,就是为解决这一难题而设计。
WPF为桌面客户端和浏览器客户端提供了通用基础,大大简化了二者的应用程序开发工作。WPF采用更为现代的方法,支持视频、动画、2D或3D图形以及各种类型的文档,从而可以让用户以全新的方式处理信息。此外,WPF还为桌面客户端和浏览器客户端提供了通用基础,大大简化了二者的应用程序开发工作。
作为微软的下一代界面技术,WPF的最大特点就是把界面的布局描述和界面逻辑代码分离。WPF通过XAML(扩展应用程序标记语言,一种基于XML的语言,允许以声明方式指定用户界面,而非代码)把专业界面设计人员的工作和专业的程序开发人员的工作分开,让他们更容易协作,以开发出界面炫丽,功能强大的应用程序。
同时微软为不同的工作提供了不同的工具,针对界面设计人员,推出Expression Studio;针对程序开发人员,推出VisualStudio 2008(有望今年年底发布RTM)。
通过提供更强大的图形支持功能,WPF 使得一系列数据可视化成为可能,而这依靠Windows Forms 或其他的早期技术是不可能实现的。WPF 还提供了 XML Paper Specification(XPS) 的基础,可定义查看、分发和打印固定格式文档的标准格式。
Silverlight
Silverlight最初的代号叫“WPF/E”,意为WPF run onEverywhere,它是WPF的一个子集。Silverlight被社区称为微软出品的Flash Killer。
官方对其的定义是:“Silverlight是一个跨浏览器的、跨平台的插件,为网络带来下一代基于.NET的媒体体验和丰富的交互式应用程序”。Silverlight提供灵活的编程模型,支持AJAX,VB, C#, Python, Ruby等语言,并集成到现有的WebApplication中,能够访问其中的DOM信息。内置多媒体技术的支持,可以以很低的成本播放媒体文件。
目前,Silverlight发布了两个版本, 1.0 beta和1.1alpha。可以运行于Windows和Mac平台下。同时Mono项目也在积极的开发Moonlight,一个在Linux下的Silverlight实现。
XUL
XUL是一种基于XML的用户界面语言,它来自于Mozilla的开放源码项目。它可用于建立窗体应用程序,这些应用程序不但可以在Mozilla浏览器上运行,而且也可以运行在其他描述引擎上,如Zulu(一个FlashMX组件)和Thinleys(一个Java实现)。XUL描述引擎都非常小(100K以下),它可以使用XML数据也可以生成XML数据。XUL的一个主要缺点在于它目前还没有获得一个主要商业实体的支持。XUL最大的优点在于它与Gecko引擎的集成(打开了通向大量Web标准的大门),以及与大多数其它XML用户界面描述语言相比,它是一种非常具有表达力和简洁的语言。
目前XUL可以嵌入在Mozilla(或FireFox)浏览器中运行,也可以通过一个XULRunner的运行环境,脱离浏览器运行。
JavaFX
“JavaFX是一个构建于Java技术之上完整的运行环境,可以用来交付到桌面、移动设备、手持设备和电视等环境的富互联网应用(RIA)。”SUN如此定义JavaFX。JavaFX是SUN进入RIA领域的开发技术,它包含JavaFXScript和JavaFX Mobile两个部分,使用一种全新的脚本语言,依赖Java SE/ME运行时,利用Java2D和SwingAPI来实现在桌面或者移动设备上运行RIA应用。
三类RIA技术比较
通过上面各种RIA开发技术介绍,我们可以看到它们各自的理念有所不同,运行的环境也不尽相同。总体说来,RIA开发技术分为三类:
1.浏览器类,整个RIA是运行于浏览器里面,依靠传统的HTML+CSS+JavaScript技术来实现界面的表现和控制。
2.浏览器插件类,RIA通过插件的方式运行于浏览器中。正在运行的程序是厂商特定的运行格式,需要特定的运行环境。
3.桌面类,RIA脱离浏览器直接运行于桌面之上。和常见的桌面程序很类似,但是可以访问Internet资源,并具有部署容易,更新简单的特点。
在三种分类的技术中,浏览器技术是成为开发RIA最直接的技术,此类技术适合一直在做Web应用的软件开发商。
新型桌面技术则完全另起炉灶,充分使用桌面开发的技术、技巧和理念,并结合WebApplication部署方便,即时安装的优点。此类技术适合做Windows应用的开发商。
浏览器插件则在浏览器技术和新型桌面之间进行了折衷,既使用新的技术来实现丰富的界面,又能和现有的Web技术进行部分的集成。
哪种RIA技术适合你
RIA是未来应用系统开发的一个重要方向,很多软件开发企业,开发团队和开发人员都希望在未来找到一个适合自己的技术,从而让自己事半功倍,在提高开发效率,降低开发成本的同时,又能交付给客户体验丰富、功能完善的软件系统。
虽然在上面我们介绍了各种技术及其优缺点,并对他们进行了一个归类,但是要回答“我们该选择那种”这个问题,还需要考虑下面的情况?
首先是我们自身的情况:
◆ 目前你的技术能力主要在Web开发方面还是Windows开发方面?
◆ 目前你开发的应用程序功能类型是内容展现为主还是事务处理为主?
◆ 目前主要在使用那个厂商或组织的技术?.NET 或者JAVA或者其他Web技术?
◆ 目前是否在进行RIA或者类似RIA的开发?
◆ 目前在使用那种RIA开发技术?
其次是考虑技术的选择标准:
◆ 学习成本,开发效率
◆ 对应用程序类型的适合性
◆ 运行环境部署成本
◆ 运行效率
◆ 完善的功能特性
◆ 技术授权成本和服务器部署成本,开源、免费或收费
◆ 官方和社区的技术支持
◆ 完善的开发工具
◆ 完善的UI组件
◆ 跨平台特性
最后,我们根据自己的具体情况和选择技术的标准,可以为对这些技术进行一个定位和排序。
以技术运行环境部署成本来比较(由低到高):
Ajax > Flex/Laszlo> Silverlight > XUL >WPF > AIR > JavaFX
以技术授权成本来看:
开源的有:Ajax,Laszlo,XUL,JavaFX
免费的有:Silverlight,WPF,AIR
收费的有:Flex
从技术支持来看:无疑Silverlight和WPF会获得最好的官方支持,Flex的官方技术也在改善,其他技术主要依靠社区的支持。
就开发工具来看:Silverlight和WPF可以有最强大的工具使用,Flex、AIR和Laszlo也有优秀的IDE可供使用,JavaFX的开发工具尚未明朗,Ajax要看具体的实现而定,XUL的开发工具进展缓慢。
就可使用UI组件的情况来看:WPF和Silverlight需要自己扩展或者使用第三方的;Flex、AIR和Laszlo都提供了丰富的UI组件,XUL自己有一套基本够用的UI组件,JavaFX依赖JRE自带的UI工具箱。
对于跨平台特性和兼容性我们也可以得到一个排序:
Flex/Laszlo > Ajax> XUL > JavaFX > AIR> Silverlight > WPF
总而言之,要选择一种适合自己的RIA开发技术,需要从各个方面来权衡。不仅要明确自己的情况,考虑未来的需求,也要熟悉每种技术的差异和优缺点,这样才能找到一种正确的技术。
以上是几种RIA技术介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

c#.netissutableforenterprise-levelapplications withemofrosoftecosystemdueToItsStrongTyping,richlibraries,androbustperraries,androbustperformance.however,itmaynotbeidealfoross-platement forment forment forment forvepentment offependment dovelopment toveloperment toveloperment whenrawspeedsportor whenrawspeedseedpolitical politionalitable,

C#在.NET中的编程过程包括以下步骤:1)编写C#代码,2)编译为中间语言(IL),3)由.NET运行时(CLR)执行。C#在.NET中的优势在于其现代化语法、强大的类型系统和与.NET框架的紧密集成,适用于从桌面应用到Web服务的各种开发场景。

C#是一种现代、面向对象的编程语言,由微软开发并作为.NET框架的一部分。1.C#支持面向对象编程(OOP),包括封装、继承和多态。2.C#中的异步编程通过async和await关键字实现,提高应用的响应性。3.使用LINQ可以简洁地处理数据集合。4.常见错误包括空引用异常和索引超出范围异常,调试技巧包括使用调试器和异常处理。5.性能优化包括使用StringBuilder和避免不必要的装箱和拆箱。

C#.NET应用的测试策略包括单元测试、集成测试和端到端测试。1.单元测试确保代码的最小单元独立工作,使用MSTest、NUnit或xUnit框架。2.集成测试验证多个单元组合的功能,常用模拟数据和外部服务。3.端到端测试模拟用户完整操作流程,通常使用Selenium进行自动化测试。

C#高级开发者面试需要掌握异步编程、LINQ、.NET框架内部工作原理等核心知识。1.异步编程通过async和await简化操作,提升应用响应性。2.LINQ以SQL风格操作数据,需注意性能。3..NET框架的CLR管理内存,垃圾回收需谨慎使用。

C#.NET面试问题和答案包括基础知识、核心概念和高级用法。1)基础知识:C#是微软开发的面向对象语言,主要用于.NET框架。2)核心概念:委托和事件允许动态绑定方法,LINQ提供强大查询功能。3)高级用法:异步编程提高响应性,表达式树用于动态代码构建。

C#.NET是构建微服务的热门选择,因为其生态系统强大且支持丰富。1)使用ASP.NETCore创建RESTfulAPI,处理订单创建和查询。2)利用gRPC实现微服务间的高效通信,定义和实现订单服务。3)通过Docker容器化微服务,简化部署和管理。

C#和.NET的安全最佳实践包括输入验证、输出编码、异常处理、以及身份验证和授权。1)使用正则表达式或内置方法验证输入,防止恶意数据进入系统。2)输出编码防止XSS攻击,使用HttpUtility.HtmlEncode方法。3)异常处理避免信息泄露,记录错误但不返回详细信息给用户。4)使用ASP.NETIdentity和Claims-based授权保护应用免受未授权访问。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)