(本文发表于《程序员》杂志2005年第2期)
2004年10月,Laszlo Systems公司开放了主要产品Laszlo Platform的源代码,于是有意转向富客户端(rich client)的J2EE开发者们又多了一种选择。在Laszlo之外,rich client的实现策略大抵可以分为两类:以Flex为代表的一派采用独立于浏览器的展现格式(例如Flash),显示效果更美观,也不受浏览器局限,但表现层的开发需要专门技能,J2EE开发者常常不能胜任;以XUL/XAML为代表的一派则依赖于浏览器,开发者只需要编写类似于HTML的标记语言,但浏览器的兼容性则很差。Laszlo则兼具了两者的优势。
上面是Laszlo的应用架构图,看起来平淡无奇,任何一个基于Flash的rich client应用都有类似的架构。Laszlo的不同之处在于:在客户端运行的Flash界面不是由美工在Flash编辑器中制作出来的,而是在Laszlo表现服务器(Laszlo Presentation Server,LPS)中根据LZX文件编译生成、再发送到客户端的。LZX是一种界面描述格式,其中包含两部分内容:用于描述界面的XML标记,以及用于事件处理的JavaScript脚本。读者可能会说了:这样的格式不是就和传统的HTML页面很相似了么?正是如此。所以J2EE开发者自己也可以完成整个rich client界面的开发,不必去向美工学习Flash编辑器的用法了。
下面是一段典型的LZX代码。我们在<dataset>中描述一组来自服务器端的数据,随后的<text>标签就可以通过XPath定位到这些数据,并将它们以Flash的形式展现出来:
<canvas>
<dataset name="dset">
<employee>
<firstName>John</firstName>
<lastName>Smith</lastName>
<phone>617-536-7855</phone>
</employee>
</dataset>
<text datapath="dset:/employee/firstName/text()"/>
<text datapath="dset:/employee/lastName/text()"/>
<text datapath="dset:/employee/phone/text()"/>
<simplelayout axis="x"/>
</canvas>
为了迎合J2EE开发者的口味,Laszlo可谓用心良苦:不仅采用标准的XML作为界面描述和数据绑定格式,连事件处理机制都舍弃了Flash现成的ActionScript,转而采用程序员更熟悉的JavaScript。不过用XML描述界面的弊端也很明显,就是开发效率较低。针对这个问题,IBM也开源了一个基于Eclipse的编辑器插件,专门用于可视化开发Laszlo应用程序。读者可以在下列地址找到这个插件:
http://alphaworks.ibm.com/tech/ide4laszlo。
可是,尽管具备了Flash美观、高度可移植的特点和XUL/XAML的简洁、易开发,但Laszlo仍然存在着诸多问题。首先,脚本的调试会是一件颇为麻烦的事情。虽然Laszlo提供了一个漂亮的脚本调试器,但由于LZX必须通过LPS的编译之后才能显示,因此整个调试过程必须连接在服务器上进行。当界面逻辑变得复杂时,可以预见脚本的调试过程将严重影响开发效率。其次,Laszlo的运行效率和稳定性都存在问题,尤其是在访问一个新界面时,编译Flash的过程长得足以吓跑用户,而且通过网络传输的数据量也偏大。最后,Laszlo对服务器硬件的要求相当高,在大负载环境下是否能保持稳定运行颇可怀疑。
综上所述,Laszlo确实为rich client应用开发提供了一种便利而具有高度可移植性的方案,但这种方案目前看来只适于开发企业内部应用。如果用来开发面向公网的应用,效率和传输数据量的问题可能变得非常严重。因此,将Laszlo称为“Rich Internet Application平台”恐怕还为时过早。
分享到:
相关推荐
【Laszlo 与 Web 应用】 Laszlo 是一个开源项目,它遵循 GNU General Public License (GPL) 协议。该项目的核心是 LZX 文件,这是一种标记语言,用于构建富互联网应用程序(RIA)。LZX 文件在 Laszlo Presentation ...
Laszlo in Action is the first comprehensive guide to the Laszlo system and its language LZX. OpenLaszlo is an increasingly popular open-source platform for the development and delivery of rich ...
这本书不仅提供了深入的理论知识,还附带了源码,使得读者能够通过实际操作来学习和理解Laszlo平台。以下是关于Laszlo技术和本书内容的详细知识点: 1. **Laszlo简介**: Laszlo是一种开源的富互联网应用程序...
《Laszlo技术手册续》深入解析 Laszlo是一种基于Open Source GPL协议的开源项目,专注于构建富互联网应用程序(RIA)。它以其独特的LZX语言为核心,允许开发者创建交互性强、图形丰富的用户界面。LZX文件在Laszlo ...
Laszlo是一种开源的富互联网应用程序(RIA)开发平台,它允许开发者使用类似JavaScript和XML的LZX语言创建交互性强、用户体验丰富的Web应用。手册首先解释了RIA的含义,强调其结合了桌面应用的响应速度和Web应用的...
Laszlo编译器可以将LZX(Laszlo XML)代码转换为Flash SWF或JavaScript,这样就能在各种浏览器和平台上运行。Laszlo的主要特点包括: 1. **跨平台**:Laszlo应用可以在Flash Player和HTML5浏览器中运行,提供了广泛...
Laszlo Presentation Server是一款开源的平台,它允许开发者用LZX语言创建丰富的用户界面。LZX是一种基于XML的标记语言,类似于HTML,但提供了更多的动态功能和组件支持。通过Laszlo,开发者可以构建跨浏览器、跨...
【Laszlo Faces - 开源】项目是一个创新的IT解决方案,它主要关注的是将OpenLaszlo富Web应用程序与基于JavaServer Faces (JSF) 的服务器端组件进行无缝集成。这个开源项目为开发者提供了一个强大的工具集,允许他们...
1. Laszlo架构(Laszlo Architecture):文档开头提到的“Laszlo Architecture”即为RIA开发工具Laszlo的架构设计。RIA(Rich Internet Application,富互联网应用)是一种网络应用程序,它将桌面应用程序的富客户端...
2. **Laszlo**:这是一个开源的RIA开发环境,开发者使用LZX语言(结合XML和JavaScript)编写应用,Laszlo平台会将其编译为SWF文件。Laszlo的跨浏览器兼容性和未来将LZX编译为Java或.NET本地代码的计划,提升了运行...
:grinning_face: Patrik Laszlo的简历网站 码头工人docker pull patrikx3/resumedocker run -h docker-patrikx3-resume -p 8080:8080 -t -i patrikx3/resume电子邮件文件:deployment / settings.json { " debug " :...
- **Laszlo**: 一个开源的RIA开发环境,开发者使用LZX语言(整合了XML和JavaScript)编写代码,Laszlo平台则将其编译为SWF格式文件并在客户端展示。Laszlo计划未来还能够将LZX编译为Java或.NET本地代码,进一步提高...
### OpenLaszlo:领先的开源富互联网应用开发平台 #### 一、项目概述与历史 OpenLaszlo 是一个开放源代码平台,旨在为全球范围内的互联网提供丰富的应用程序开发及交付服务。它由 Laszlo Systems 公司于 2001 年...
GeoAr打算成为WMS和WFS服务的丰富客户端。 它是在LZX(OpenLaszlo)上开发的,因此可以使用dhtml(不久以后)并刷新到用户的浏览器,从而可以在它们之间进行选择,但是只有一个服务器的密码。
Flex教程 - Flex简介 Flex是由Adobe公司开发的一种支持RIA(Rich Internet Applications)开发和部署的技术,主要用于构建企业级应用。RIA技术旨在将桌面应用程序的丰富交互性和浏览器的便捷性结合起来,提供比传统...
UPX(Ultimate Packer for eXecutables)是一款著名的可执行文件打包工具,它能够将程序压缩,减小程序的大小,提高程序的加载速度。UPX壳是一种常见的保护程序,可以防止恶意用户逆向工程分析代码。...
Flex是一种用于构建富互联网应用程序(RIA)的开源框架,而Laszlo是另一种开放源码的RIA开发平台。通过myeclipse-spket,开发者可以在Eclipse环境中无缝地进行Flex和Laszlo项目的开发,享受统一的代码编辑体验。 **...
ria的发展历程大致经历了从主机应用程序到客户端/服务器,再到浏览器/服务器模式的转变,最终发展出如Adobe Flash/Flex、Laszlo和Microsoft WPF/Expression等各具特色的ria客户端开发技术。 Flex作为ria技术的一个...