フォトアルバム

2009年7月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

なかのひと

アンケート

  • Do you Like?
    アンケート
    どのColdfusion用フレームワークが好き?
    ModelGlue:Unity
    ModelGLue
    Mach-II
    FuseBox
    LiteWire
    OnTap
    ColdBox
    OnAir
    cfWheels
    CFRails

    [PR]アンログ.jp 自動車保険

373news.com

想ひ出

  • Dvc00050
    携帯で撮った写真をアルバムにしています。

サムネイル

  • CF-OOP









  • ganymean.org









  • シナプス

Google Analytics

« 2005年4月 | メイン | 2005年7月 »

Model-Glue FAQ

SeanのブログにModel-GlueのFAQ例が紹介されていた。
もう少しブレークダウンしたFAQが必要だとは思いますが、日本語訳したものを取り急ぎご紹介しておきます。

Eddie Awad’s Blog

全般

ビュースタックのうちどれがユーザに表示されますか?
レンダリングされた最後のViewだけがユーザに表示されます。


HTML FormとURL変数はどこに保存されますか?

全てのHTML formとURL変数は、ModelGlue.Core.Eventオブジェクトに保存されます。

Event起動の優先順位は?(resultタグ)
明示的なresult(名前属性を有する)を暗黙的なresult(名前属性を有しない)の前に起動します。

コントローラー:

データをViewに渡すには?
データをViewに渡す (コンプレックスデータタイプを含む)にはarguments.event.setValue(”name”, value)を使います。


ModelGlue.xmlのConfigデータセクションにアクセスするには?
<config>と</config>で与えられるModelGlue.xmlのConfigデータセッティングにアクセスするには、GetModelGlue().getConfigSetting(”settingName”)を使います。


マップドイベントを呼び出すには?

resultをeventにマッピングし、イベントを呼び出すにはarguments.event.addResult(”eventName”)を使います。


ConfigBeanへの参照を得るには?

まず、 <cfset appConfig = GetModelGlue().GetConfigBean("yourBeanFile.xml")> を使い、 セットしたデータをフェッチするには、appConfig.getSettingName() を使います。


Messageの引数にアクセスするには?

arguments.event.getArgument(”name”)を使います。

ModelGlue.xml:

Viewにデータを送るには?
Viewにデータを送るには、
<include>タグの中で<value>タグをこのように使います。 
<event-handler name="dosomething">
            <views>
                <include template=”view.cfm” name=”body”>
                    <value name=”name” value=”value” />
                </include>
            </views>
        </event-handler>

overwrite=”true” か overwrite=”false” を <value>タグに追加することによって、オーバライドするかしないかを指定することができます。


既存Viewに追加するには?

ユニークでないView名をincludeタグに与えるには、'append=”true”‘ を属性に追加しますI。そうすることで、既存Viewのコンテンツに追加書き出しできます。
    <event-handler name="dosomething">
        <views>
            <include template=”view1.cfm” name=”body” />
            <include template=”view2.cfm” name=”body” append=”true” />
        </views>
    </event-handler>

‘append=”true”‘ がない場合、既存Viewをオーバライドします。


M
odelGlue.xmlに一つまたはそれ以上のControllerを定義できますか?
はい、複数のControllerを定義できますが、Controller間でユニークなmessage名である必要があります。


Model-Glueには特別なmessageが準備されていますか?

ModelGlue.xmlでは, Controller内に次のような特別なMessageをマッピングできます:

onRequestStart: リクエスト開始時に必要となる処理をここに記述します。
onRequestEnd:
リクエスト終了時に必要となる処理をここに記述します。
onQueueComplete: すべてのViewが追加され、レンダリングされる前に必要となる処理をここに記述します。


messageに引数を追加できますか?
はい、次のようにしてMessageに引数を追加できます。
<message name="dosomething">
        <argument name=”name” value=”value” />
    </message>

Controller内の対応するファンクション内で次のようにして引数を読み出せます。
arguments.event.getArgument(”name”)

Views:

レンダリングされたViewスタック内のViewにデータをセットするには?
Use viewState.setValue(”name”,”value”)


Controller、ModelGlue.xml及びViewスタックからデータを読み出すには?
Use viewState.getValue(”name”, “default value”)


V
iewスタック内におけるViewの存在をチェックするには?
Use viewCollection.Exists(”viewName”)


過去に定義されたViewコンテンツを表示するには?
Use viewCollection.getView(”viewName”)

リソース:

 

Mach-IIは死んだ?

Sean Corfieldのブログでは、最近"Mach-IIが死んだ""Mach-II退場、ModelGlue入場"を意味するような記事やタイトルが飛び交っている。私も昨年からMach-IIのドキュメントを読みあさったりしていたのだけど、なかなかサンデープログラマーには敷居が高くて、なかなかサンプルアプリケーションを作り出せずにいた。
でも、Model-Glueに接していらい、Mach-IIから乗り換えることに決めた。

先日、SeanがFuseBoxベースのCatClubというプログラムを、Mach-II、Model-Glueに移植した例を彼のブログに掲載した。確かにModel-Glueが一番エレガントだ。今後は、Model-Glue+TarTanが主流になると思う。

Model-Glue Ver0.9リリース

Sean CorfieldのAn Archtecture's ViewModel-GlueのVer0.9がリリースされた旨のアナウンスがありました。
今回のリリース内容は以下のとおりのようです。

  1. Controllerがタイムキャッシュももてるようになった。
  2. サブアプリケーションのサポート(ModelGlue_APP_KEY)
  3. eventオブジェクトにデバックトレースが追加された。
    • arguments.event.trace(label, value)
    • 任意形式の値
    • CFDump結果同様に扱えるようになった。
  4. デバッグトレースは、例外が発生したときのみ表示するようになった。

Mach-IIとModel-Glue(続き)

Sean Corfieldが、Mach-IIとModel-Glueに関する記事の続きを書いた。

More thoughts on Mach II and Model-Glue
Mach-II アプリケーションのModel-Glueへの移管でわかったこと。

総じてModel-Glueの長所を言及している。

1.event-handlerの定義がMach-IIとModel-Glueで異なる。ちょっと混乱?
    Mach-II          <event-handler event= ... >
    Model-Glue    <event-handler name=... >
2.シンタックスの構造化とシンプルなタグ
    Mach-II           フラットシンタックス
         event-handlersセクション:連続した1行単位のXMLタグ

              event-handlerセクション

                   event-mappingセクション
                   event-argsセクション
                   notifyセクション
                   annouceセクション
                   filterセクション

    Model-Glue    ネステッドシンタックス

         event-handlersセクション:ネストされ、インデントされ構造化されたXMLタグ
              broadcastsセクション
                   messageセクション   
              viewsセクション
                   includeセクション
              resultsセクション
                   resultセクション

結果として、Mach-IIと比較して、Model-Glueのほうが、コントロールロジックとプレゼンテーションロジックを明確に分離でき、eventオブジェクトをデータバスとして一貫して使用できる・・・

3.リスナー定義数の削減
    Mach-II            25個のListnerCFCs
    Model-Glue        6個のControllerCFCs
4.ちょっと困ったこと
    notifyセクションとview-pageセクションの組合せで実現できていたビューの結果をMach-IIではビジネスロジック中で使用できていたが、Model-Glueでは代替手段(Cfsavecontent)を使うことでしかできない。

5.総括:Model-Glueがいい!
    There's no doubt that Model-Glue has benefitted from the experiences of both Mach II and Fusebox but it has also added its own unique elements. Consistency and simplicity are key drivers for Model-Glue which means you sacrifice some power and expressiveness. As always, it's all about tradeoffs and you need to make the choice based on the needs of your project (and, to some extent, your own personal preferences).

Mach-IIとModel-Glue

最近は、Model-Glueのマニュアルの日本語化を通じてModel-Glueの概要を作成していた。
Model-GlueってMach-IIより敷居が低くて結構使えるなーって思いつつ会社の新しい業務プロセスに応用してみようと思っていたところ、Sean Corfieldがブログでそのことを言及していました。

MachII OUT, Model-Glue In!
MacromediaのWebチームのスタンダードになっているMach-IIは、アプリケーション構造、コントロールフローがmacii.xmlファイルに書かれているので、メンテナンス性が悪い。いわば、コンテナのマネージメント:"Inversion of Control"(制御の逆転)を行うため、Model-Glueへの移行を検討した。

Mach-ii.xml file:
    522行, 23Kバイト(XML圧縮後), 25個のListner定義
ModelGlue.xml file:
    427行, 11Kバイト(XML圧縮前), 6個のController定義、5個のConfigBeanCFCs、
    22個のBean定義ファイル(710行, 16Kバイト).

早速、Mach-IIとModel-Glueの比較をビジュアル化してみようと思う。

ログイン

  • コントロールパネルへのログイン
    アカウント:

    パスワード:

PR情報

  • [[PR]]
  • おすすめバナー

更新ブログ

google Search

  • Google
    blog.ganymean.org
    WWW

最近のトラックバック

Google

SHINOBI

Blog powered by TypePad
Member since 04/2005