THE INSANE JAVA

曾每日與 Java 搏鬥的 .NET Programmer 日誌

FleXtense 。 Flex 。 Web Services

leave a comment »

Picture 2.png

好一個 ActionScript web services proxy generator 。簡單直接。

主要功能

1. Generate strong typed proxy classes for web services. 這真是做福人民呀。Intellisense 重見天日。

2. 上述一點還不足夠嗎?

Flex 實在令人又愛又恨。打從 Flex 1.0 起已經開始把玩,當年也可算是劃時代的產品,簡單的一個 MXML 加少量的 ActionScript 已經足以將當時的 ASP JSP 比下去。時至今日,Flex 3.0 的轉變說多不多,說少不少。Component Library 、Class Library 是強大了,但 ActionScript 仍然很爛。那些模仿 OO 但又學得不像樣的語法及行為 ,對於長期浸淫 Java 與 C# 的我來說實在是太嘔心了。再加上早已被 Eclipse, Visual Studio 的 Intellisense 寵壞了﹐對著 Flex Builder 3 真的要哭出來。最討厭是 ActionScript 的 event subscription mechanism,時而像 .NET 的 delegate method,時而像 Java 的 ActionListener,完全無法捉摸,又沒有 Intellisense 幫助,弄得每次都要到 livedoc 找 API Reference,費時失事。連 Adobe 自己都承認 ActionScript 3.0 以前是一塌胡塗:

“Unfortunately, the syntax used by the various event models overlap in various ways, and differ in others. For example, in ActionScript 2.0, some properties, such as TextField.onChanged, can be used as either a callback function or an event listener. However, the syntax for registering listener objects differs depending on whether you are using one of the six classes that support listeners or the UIEventDispatcher class. For the Key, Mouse, MovieClipLoader, Selection, Stage, and TextField classes, you use the addListener() method, but for components event handling, you use a method called addEventListener().”

喜歡 proxy class 原因不單是為 Intellisense ,最重要是 type safe,省了 casting 的功夫。Code 看起來更簡潔實在。

簡易三寶,wsdl url、package name、output directory。完成。

Picture 3.png

ASP.NET Web Services 裡的 business entity

Picture 6.png

asmx 裡邊的一個簡單 method

Picture 9.png

換成 ActionScript 後大概的模樣

Picture 4.png
Picture 8.png

應用時變得更直覺,語法更自然易懂

Picture 5.png

從此不用再見到那些可怕的 e.Result["Symbol"] 之類的 typeless 語法。可喜可賀。

FleXtense 缺點還是有的

1. Proxy classes 只可 output 到一個指定的 directory,不支援 package。Business entities, services 全都放到同一個地方去。

2. 只有 Windows 版本,沒有 Mac 版本。

Written by Sean

四月 11, 2008 at 12:24 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.