フォトアルバム

2011年10月

            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          

なかのひと

373news.com

google Search

  • Google
    blog.ganymean.org
    WWW

Google Analytics

« 2006年1月 | メイン | 2006年4月 »

Reactorをはじめる-7

今回は、Reactorオブジェクトの詳細を確認してみます。
Reactorオブジェクトには、initを含めて全部で13のメソッドがあります。
以下に示す7つの基本オブジェクトに対するCreateメソッドと、

  1. CreateRecordメソッド
  2. CreateGatewayメソッド
  3. CreateDAOメソッド
  4. CreateTOメソッド
  5. CreateMetadataメソッド
  6. CreateIteratorメソッド
  7. CreateDictionaryメソッド

そして、残り5つのメソッドは、次のとおりです。

  1. CreatePluginメソッド
  2. SetBeanFactoryメソッド
  3. CreateValidator
  4. Compileメソッド
  5. GetXMLメソッド

続きを読む "Reactorをはじめる-7" »

Reactorをはじめる-6

今日は、cfOpenSourceListアプリケーションのReactorのオブジェクト定義を確認します。
Reactorをはじめる-3で紹介したように、このアプリケーションは3つのテーブルをもっています。

一つ目は、オープンソースソフトウェアのリソース情報を格納するOpenSourceResourceテーブル。
二つ目は、オープンソースソフトウェアのカテゴリ情報を格納するOpenSourceCategoryテーブル。
三つ目は、OpenSourceResourceとOpenSourceCategoryをつなぐリンクテーブルであるOpenSourceResourceCategoriesテーブル。

このように、Reactorではデータベース内のテーブルオブジェクト間のリレーションシップも定義できます。

続きを読む "Reactorをはじめる-6" »

Reactorをはじめる-5

さて、Brian RinaldiのReactorアプリケーション紹介記事で、cfOpenSourceListアプリケーションのreactor.xmlにおけるconfigセクションを確認してみます。

<config>
    <dsn value="remotesynthesis" />
   <type value="mysql" />
    <mapping value="/CFOSListData" />
    <mode value="development" />
</config>

■dsn
dsnは、"remotesynthesis"に設定されています。
ColdFusionに登録したdsnそのものです。

■type
typeは、"mysql"に設定されています。
MySQL5を使用しているということです。

■mapping
mappingは、"/CFOSListData"に設定されています。
ColdFusionのwwwroot直下にある/CFOSListData"か、ColdFusionで設定したwwwroot以外のディレクトリへのマッピング名を指定しています。
個人的には、アプリケーションのルートディレクトリ内にdataディレクトリを作成し、"/app/data"と指定するのが、一番シンプルなように思えます。

■mode
modeは、"development"に設定されています。
開発モードであることを示しています。
Reactorがdsnとtypeによって指定されたDBMSを常時チェックすることを意味しますので、開発モードの場合レスポンスが悪くなります。
開発が終了したら、"production"に設定してください。

■project
このタグは指定されていませんが、最新バージョンでは必須になっています。

projectは、dsnと同じ値にセットするのが一般的なようです。
<project name="remotesynthesis" />
dsnと同じセッティングで良いのではないかと思います。

Reactorをはじめる-4

今回は、Reactor.xmlのconfigセクションの各要素を、Reactorユーザズガイドから抜粋してみます。

■Project

プロジェクトタグは、プロジェクトのために変化しない安全な名前を定義するのに使用されます。プロジェクト名はReactorが揮発性のプロジェクトファイルを格納する位置を定義します。 データベース非依存のファイルはプロジェクトディレクトリ配下でファイルを展開しています。

いったん設定して、再び働かせるために手であなたのカスタムファイルを編集するのに時間を費やしたくないなら、この値を変えないでください。

シンタックス:

<project value="cfOpenSourceList" />

 

 

 

 

 

 

 

 

Argument

Required

Type

Description

Value

Yes

String

プロジェクト名を指定します。

dsn

dsnタグは、クエリーを実行する際、Reactorが使用するColdFusionデータソース名を定義するのに使用されます。ColdFusionで設定済のデータソース名を指定する必要があります。

シンタックス: 

<dsn value="ReactorBlog" />
 

 

 

 

 

 

 

 

 

Argument

Required

Type

Description

Value

Yes

String

Reactorが使用するColdFusionデータソースを指定します。

type

タイプタグは、Reactorがクエリー実行可能なデータベースタイプを定義するのに使用されます。 現在サポートしているサーバは以下の通りです:

  • Microsoft SQL Server 2000 and 2005
  • MySQL 4
  • MySQL 5 and later. 

MySQL45は、各々が動作するために、異なった構成値(以下を参照)を必要とするので、別々に記載されています。

Type設定は、そのコードがどのように、そしてどこで実行されるかを制御します。 例えば、Microsoft SQLを使用している旨を示すと、Reactorは構成されたマッピング配下の"mssql"というフォルダーにカスタマイズ可能なコードを生成します。

加えて、データベースサーバーは、コードを実行する際、異なったセマンティックを必要とします。Reactorは、ある意味でコードがデータベースによってサポートされるようにDBタイプセッティングを使用します。

シンタックス: 

<type value="mssql" />
 

 

 

 

 

 

 

 

 

Argument

Required

Type

Description

Value

Yes

String

使用するデータベースタイプを指定します。オプション文字列は以下のとおりです。

  • mssql        – Micrsoft SQL Server 2000 and 2005.
  • mysql4      – MySQL 4.
  • mysql        – MySQL 5 and later.
  • db2           – IBM DB2.
  • postgresql – PostgreSQL.
  • oracle      – Oracle.
  • oraclerdb  – Oracle RDB.
  • access     – MS-Access.

■mapping

 Reactorがファイルを生成するディレクトリへのマッピングです。CFマッピングで与えられるか、webルート直下にある必要があります。 

■mode

詳細には触れませんが、アプリケーション開発中は、モードを”development”に設定しておきたいものです。データベース構造が変化したときやリレーションを変更したときに、Reactorにオブジェクトを再作成させます。

 

 

 

 

 

 

 

 

Argument

Required

Type

Description

Value

Yes

String

Reactorシステムが動作するモードを指定します。指定可能なモードは以下のとおりです。

development - 開発モード

production - 製品モード

always - 常時モード(=開発モード)

 

Reactorをはじめる-3

さっそく、Brian Rinaldiのブログで、cf open-source listのReactorアプリケーション紹介記事を見てみます。
ColdFusion用オープンソースを管理するために、データベースに3つのテーブルを作成しています。
一つ目は、オープンソースソフトウェアのリソース情報を格納するOpenSourceResourceテーブル。
二つ目は、オープンソースソフトウェアのカテゴリ情報を格納するOpenSourceCategoryテーブル。
三つ目は、OpenSourceResourceとOpenSourceCategoryをつなぐリンクテーブルであるOpenSourceResourceCategoriesテーブルです。

各オープンソースソフトウェア毎に複数のカテゴリを登録可能なように、リンクテーブルを介してリソーステーブルとカテゴリテーブルのリレーションを定義しています。

それを含めて、Reactor.xmlというコンフィグレーションファイルに以下のセクションを定義します。

<reactor>

<config>

<dsn></dsn>
<project></project>
<type></type>
<mapping></mapping>
<mode></mode>

</config>
<objects>

<object name="OpenSourceResource"></obeject>
<object name="OpenSourceCategory"></obeject>
<object name="OpenSourceResourceCategories"></obeject>

</objects>

</reactor>

各々のセクションについては、次回説明します。

Reactorをはじめる-2

さて、Reactorについては、以前のブログで紹介しました。
Reactorは、ColdFusion上でパーシスタントレイヤをハンドリングするサブフレームワークです。
Reactorの主要機能は以下のとおりです。

  • Reactorは、以下のORMオブジェクトを自動生成する。
  1. Recordオブジェクト
  2. Gatewayオブジェクト
  3. DAOオブジェクト
  4. TOオブジェクト
  5. Metadataオブジェクト
  • Reactor.xmlファイルで、テーブル間のリレーションシップを定義できる。
  1. HasOne
  2. HasMany(Direct)
  3. HasMany(Link)
  4. Super
  • サポートするDBMSは以下のとおり。
  1. MSSQL
  2. MySQL4
  3. MySQL5
  4. PostgreSQL
  5. MS-ACCESS
  6. DB2
  7. Oracle
  • Iteratorやイベントモデルも可能
  • RecordオブジェクトやDAOオブジェクト内でValidate用のファンクションをユーザ定義することが可能

Brian Rinaldi が彼のブログで Getting Started with Reactorを書いてあるので、サンプルとして次回から紹介してみることにします。
ちなみに、彼のcf open-source Listは、Reactorを使って作成されています。

Reactorをはじめる-1

ここしばらく、CF-OOP関連記事の投稿をさぼっていました。

実は理由があって、
hostnexus.comでのCFホスティングを利用しはじめたんですけど、
CFホスティングとMySQL間のエンコーディング問題が発生して、サジを投げていたところなんです。
でも、サジを投げてばかりもいられないので、以下のことを、シコシコがんばっていました。
本格的にこのサイトと連動しながら、独り言風にブログで活動状況をお知らせしていこうと思います。

  • CF-OOPサイトの立上げ(MediaWikiベース) 

http://ganymean.org/mediawiki/

  • Reactor関連ドキュメントの翻訳作業

近々、アップする予定です。
また、ModelGlue+ColdSpring+Reactorのアプリケーション開発について、このブログを通じて、皆さんにサンプルアプリケーション例を紹介していく予定です。

  • ポータルサイトの立上げ

http://ganymean.org/ をManboを使って、ポータル化
CF-Nuke等に近々変更予定。Geeklogに変更済みです。

  • このブログをドメインマッピング化

http://blog.ganymean.org/
でアクセス可能にしてあります。

空手道大会

今日は、錬心館の鹿児島市空手道大会に小3息子が出場しているのでその応援に来ています。一生懸命がんばる子供たちがとても輝いて見えました。

200603211141-thumb

フレームワーク連携

以前、ModelGlue+ColdSpring+reactorによるフレームワークの連携が
今後の主流になるかもしれないと予想しましたが、その後、
1.reactorの機能強化
2.ColdSpringによる外部Factory呼び出しの実装
3.ModelGlueにおけるAutowiringControllerの実装
を経て、それが現実的になろうとしています。

Seanの最近の記事には、彼のフレームワークサンプルggccのバリアント、
ModelGlue+ColdSpring+reactorに対応させるためのColdSpringとreactorの
連携が紹介されています。以下は、その関連記事です。

Model-Glue, ColdSpring and Reactor
Model-Glue, ColdSpring and Reactor - follow-up
Model-Glue, ColdSpring and Reactor - another follow-up

Sean曰く、bean.cfc、DAO.cfc、Gateway.cfcなど12のCFCsが不要に
なったとのことです。Seanのggcc10アプリケーションアップをアップを
楽しみにして待っていよう。

cfObjectiveサマリー

SeanがcfObjectiveのサマリーリポートを彼のブログで紹介しています。
興味あるセッションタイトルは以下のとおり。

  • Managing ColdFusion Components with Factories - Sean Corfield
  • AOP with ColdSpring - Chris Scott
  • Mach II and ColdSpring - Kurt Wiersma
  • Objects & Persistence  - Sean Corfield
  • Frameworks Roundtable - Panel Discussion
  • Model Management with ColdSpring - Chris Scott

Seanは、セッションのプレゼン資料を彼のブログで紹介しています。
ご参考までに

ログイン

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

    パスワード:

更新ブログ

最近のトラックバック

Google

ブログ powered by TypePad
Member since 04/2005