FleXtense帮助Flex应用程序访问Web Services

大多数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类,相应生成的代码可作如下调用:

   var service:UserService = new 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

你可能感兴趣的:(FleXtense帮助Flex应用程序访问Web Services)