最近はベイスターズ観戦日記と化しております

さぶれの日記
http://flex91.blog19.fc2.com/  presented by さぶれ@

プロフィール


さぶれ@

Author:さぶれ@
Webアプリなんぞ作っている会社に勤めるサラリーマン。自分の技術力のなさを嘆きつつ、日々勉強中。


最近の記事



カテゴリー



月別アーカイブ



スポンサーサイト

--/--/-- --:--|スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

BlazeDS使うと何が便利?

2008/05/31 13:17|BlazeDSTB:0CM:0
最近ちょこちょことBlazeDSをいじっています。しかし、どんなことに使う便利なのか自分でも今ひとつよく解かりません。
というわけで、業務系のアプリを、サーバサイドをJava+BlazeDSで、クライアントサイドをFlexで開発した場合で、「何が便利なの?」ということを考えてみました。

AMFで通信速度が上がる。

ネットワークでデータをやり取りする部分は、ボトルネックになりやすいので、ここの部分が早いというのはものすごいアドバンテージになると思います。
レスポンスが良いアプリは、使っていて気持ちよいですしね。


クライアントからサーバのメソッドを呼び出せる。

普通のASと同じように、サーバサイドのメソッドをASから呼び出せるのは地味に助かります。
こういった、細かい積み重ねが開発効率に響いてきますしね。


データプッシュ機能の実装可能

BlazeDSを使えば、サーバサイドもクライアントサイドも少ないコードの量でデータプッシュ機能を実現できます。
FlexでRIAを作ったからには、リアルタイムにデータの変更がクライアントに反映させた場合も多いでしょう(多分)。
そんな場合に、少ない労力で簡単に実装できるのは、開発者の負担を減らせます。

クライアントとサーバの役割分担の明確化

他のサービスとマッシュアップする場合は、クライアントサイドでいろんなサービスからデータを引っ張っていくことも、もちろん可能です。
しかし、クライアント側はBlazeDSのメソッド呼び出してデータを引っ張ってくるだけ、サービス連携やデータの処理はサーバサイドの仕事、としたほうがいろいろ便利です。
きちんと切り分けができていれば、連携しているサービスの仕様が変わった場合でも、サーバサイドのみ修正ですみます。クライアントを修正する必要はありません。
また、クライアントサイドとサーバサイドの開発も独立して行えることになります。


Livecycleへの移行が簡単

PDFの管理がどうこうとかしたくなったら、Livecycleのしかるべきバージョンに変更が簡単に行えるのは便利そう。
Livecycleの上位版がどんなときに便利なのか実感していないのが、我ながらアレなのですね・・・


上記のようなことをつらつらと考えていたのですが、改めて見直してみると下に来るほど「BlazeDSじゃなくても実現可能じゃね?」って感じになっていますね(最後は除く)。
でも、これらのメリットが一つのパッケージで実現できていることに意義があるのではないでしょうか?
というわけで、もうちょっとBlazeDSを追いかけて行きたいと思っています。

スポンサーサイト

RemoteObjectのメソッドごとにresultイベントを取得する方法

2008/05/30 20:24|FlexTB:0CM:0
RemoteObjectを使う場合、下記の感じで定義するサンプルが多いようです。
<mx:RemoteObject id="remoteObj" destination="testService" result="resultHandler(event)" />
しかし、上記の方法では、remoteObjのどのメソッドを呼び出しても、同じresultHanlerメソッドが呼び出されてしまいます。

そこで、下記のように記述すれべメソッドごとにイベントハンドラー割り当てることができます。
<mx:RemoteObject id="remoteObj" destination="testService">
<mx:method name="getValue" result="getValueHandler(event)" />
<mx:method name="getType" result="getTypeHandler(event)"/>
</mx:RemoteObject>
ちょっとしたことですが、忘れないようにメモ。

メタデータタグ

2008/05/29 16:23|FlexTB:0CM:0
気になったメタデータタグのメモ

自作UIコンポーネントの自作イベントをMXMLから参照する。

自作UIコンポーネントコード
[Event(name="customEvent", type="flash.events.Event")]
public class metaTagTest extends UIComponent
{
}

呼び出し元MXMLコード
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*">
<mx:Script>
<![CDATA[
function customEventHandler(eventObj:Event):void {
...
}
]]>
</mx:Script>

  <local:metaTagTest customEvent="customEventHandler(event)"></local:metaTagTest>


</mx:Application>

Javaのジェネリックみたいなことできる?

以下のように書けば、Javaで言うところのジェネリックみたいなことができるかな?と思ったのですが・・・・
[ArrayElementType("Number")] 
var newStringProperty:Array = new Array();
newStringProperty.push("1st");
newStringProperty.push("2nd");
for each (var element:String in newStringProperty) {
trace();
}

特にコンパイラエラーなども出ませんね。
MXMLに記述するときしかメタタグのチェックは有効にならないのでしょうか?

チャートに相対座標でラベルやイメージなどを追加する。

2008/05/29 16:19|FlexTB:0CM:0

やりたいこと

絶対座標でチャートにラベルなどを追加すると、チャートのサイズが変更されるとラベルの位置が変になってしまします。そこで、相対座標でラベルなどを追加することにより、大きさを変更しても正しい位置関係を維持するように設定します。

方法

データ座標に対するオフセットの使用

相対座標で指定するために、CartesianDataCanvasクラス何かが用意されているんですね。
至れり尽くせりなのは、自分の実装したことに集中できて助かりますね。

ビューとロジックの分離

2008/05/28 17:11|FlexTB:0CM:0

やりたいこと

ビュー(MXML)とロジック(actionscript)のコードを分離する。

作って学ぶAIRウィジェットの基礎→応用(4)

上記記事に分離方法が記述されていたので早速試してみました。
記事の中で、呼び出し元のMXMLコンポーネントをロジックオブジェクトに登録するコードが書かれていないため、おかしいな?と思ったのですが、ロジックコードでIMXMLObjectインターフェイスの実装をしているのがポイントだったようです。
IMXMLObjectインターフェイスは、呼び出し元のMXMLが全て初期化された後にIMXMLObject.initialized()が呼び出されます。
initialized()で渡されたパラメータをフィールドにセットしておくことで、呼び出し元MXMLをロジックコードが保持できる仕組みだったのですね。

しかし、上記の方法には問題点がありますね。
例えば、
//rssReader:MXMLオブジェクトのid
//rssReaderLogic:ロジックコードのid
//insertRSSInfo():メソッド名
rssReader.rssReaderLogic.insertRSSInfo();
のように、アクセスしなければいけないということです。

まぁ、ほんの少しの手間なので、そんなデメリットよりも、デザイナとプログラマが同時に作業を行えるメリットが大きいと思いました。

課題

他の分離方法のメリット・デメリットを調査する。

Amazon



ブログ内検索



RSSフィード



 |  未分類 | Flex | ActionScript3 | BlazeDS | Silverlight | 読書 | Javascript | Java読書会 | 横浜ベイスターズ | 
Copyright(C) 2008All Rights Reserved. さぶれの日記
Powered by FC2ブログ.  template designed by 遥かなるわらしべ長者への軌跡.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。