大多数 RIA 应用都会通过连接服务器来获取数据, FleXtense 是这类应用的辅助工具之一,它对 RIA-比如 Flex 应用访问 web services 提供帮助。FleXtentse 2.0 计划在 2008 年四月正式发布。为此,InfoQ 采访了 FleXtense 的缔造者 Murat Cim 和 Ozkan Yilmaz,了解到关于 FleXtense 是如何协助 RIA 开发的细节。
首先,Cim 解释了创建 FleXtense 的动机:
FleXtense 通过自动生成能访问 web services 的 ActionScript 通讯类,来让 Flex 开发者更容易地使用 web services。我们从 Flex 的最初发布版本就对其饶有兴趣。我们一直在使用.NET 来开发 web 应用程序。慢慢地,我们开始意识到 Flex 有一个缺点,那就是它不提供对 web services 的访问能力。这让我们相信,如果能创建一个程序,一个能够帮助更有效地使用 web services;并能够添加更多特性,比如使用 web services 自定义实体和集合的程序,那将对 Flex 非常有帮助。这是促使我们创建 FleXtense 的初衷。
FleXtense 能够带给 Flex 开发者最大的好处是:
通过强类型数据结构来使用 web service,使用它支持的数据结构和易于使用的接口来维护快速并安全的代码。
Cim 还谈到在开发 FleXtense 时遇到的挑战:
最大的挑战是,此前从未有过类似的应用程序实例可作参考,所以我们不得不完全依靠自己设计软件的框架和结构。另外一个障碍是,action script 3.0 不支持完全面向对象的编码环境。
接着,Yilmaz 就 FleXtense 是如何开发以及如何工作的问题谈了一些细节:
在开发 FleXtense 过程中,我们用的是 Visual Studio 2005 开发工具。FleXtense 具体所做的工作就是:读取并分析你所提供的 web service 的 WSDL,据此创建出将在 Flex 的 action script 中使用的新 proxy 类。而这些类,通过我们的核心通讯库,使你能够借助强大的面向对象环境来连接到 web service。
FleXtense 为 WSDL 文档中每个定义了的 web service 创建一个同名的 ActionScript 类,这些 web services 中的方法因此可以通过与其同名的类来访问。比如说,对于某个叫做 UserService 的 web service,FleXtense 会为其创建一个名叫 UserService 的 Actionscript 类,相应生成的代码可作如下调用:
<span>var</span> service:UserService = <span>new</span> UserService(); ... service.getUser.send()
还有一些为 web service 的 ActionScript 类自动生成的公有方法,比如“send”、“addResponder”和“addFaulter”。其他一些主要的生成类有:Result Event Class、用于枚举定义的 Enums Class、用于 WSDL 中数组元素的 Collection Class、用于自定义元素的 Entity Class 以及 Base Data Type Array。对于那些使用过开源 web service 引擎 Apache AXIS 的开发者来说,这些代码生成的部分会相当熟悉。
最后,Yilmaz 提供了由 FleXtense 生成的类作为范例,该类是针对 Amazon Web Service 而生成的。读者可以通过访问这里体验这个类的Flex 演示程序。
查看英文原文: FleXtense Helps Flex Applications Access Web Services
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论