【B6】チュートリアルセッション「LiveSourceを使ったモデリング開発」
CodeGear
高橋智宏

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

1アジェンダ• 今回作成するシステムの概念図• JGear LiveSource for Eclipse 3.2• JBoss 4 を使用した場合の開発手順• RAD Studio 2007（Delphi .NET）• .NET + ECO を使用した場合の開発手順

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

2

1

今回作成するシステムの概念図

RDBMS
エンティティ
永続化マッパーコンテナ
Webサービス

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

3

Webサービスでエンティティを操作コンテナ (JBoss / IIS(.NET, ECO))
Webサービス

永続化マッパーRDBMSWebサービスクライアント

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

エンティティ

42

JGear LiveSource for Eclipse 3.2

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

5JGear LiveSource• Eclipse 3.2 向けのプラグイン• JBuilder 2007 のJ2EE開発機能を単体でも利用可能にしたもの• モデルとソースコードやアノテーションが自動同期• JBoss 4 などのJ2EEサーバが同梱され、簡単に統合が可能• カタログ• http://www.codegear.com/article/36933/images/36933/jgear_livesource_datasheet_ja.pdf

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

63

JBoss 4 を使用した場合の開発手順
J2EEEサーバ（JBoss 4.0 + EJB3.0）
Webサービス
エンドポイント

SessionBeanJPA（Hibernate 3.x）
MySQL 5.0

Webサービスクライアント

Entity （POJO）
JDBC

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

7

JBoss 4 を使用した場合の開発手順（続き）• MySQLのセットアップ• 今回は utf-8 のテーブルを使用• JBoss 4.0 の設定• JDBCドライバの追加• データソース(.xml)の追加• IDEとJBossを統合• EJB 3.0 を選択• インストール済みサーバー・ランタイムに JBoss を追加• サーバーペインに JBoss を追加• データベース・エクスプローラにMySQLを追加

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

84

JBoss 4 を使用した場合の開発手順（続き）•EJBモデリングプロジェクトを作成•JPAのEntity（例:Event）を作成• プロパティの追加•Stateless Session Beanを作成• EntityManagerへの参照を追加• ビジネスメソッドの追加および実装•SessionBeanをWebサービスとして公開• 実装クラスおよびメソッドにアノテーションを設定

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

9JBoss 4 を使用した場合の開発手順（続き）• 永続化ディスクリプタの設定• persistence.xml• プロジェクトのビルド• JBossへのデプロイおよびJBossの起動• MySQLへのeventテーブルが自動で作成される• WebサービスのWSDLファイルが自動で生成される• file:/C:/JBuilder2007/thirdparty/jboss4.0.5.GA/server/default/data/wsdl/test.jar/Session1Service54632.wsdl
Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

105

テストおよび拡張• WSDLファイルを使用して、Webサービスクライアントを作成• MySQLのテーブルにデータが格納されることを確認• エンティティ同士のリレーションシップ
• エンティティリレーションシップの追加とソースコードの同期• テーブルや外部キーの自動生成• 例: One to Many
Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

11RAD Studio 2007（Delphi .NET）

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

126

RAD Studio 2007（Delphi .NET）• .NET 2.0 をサポートしたDelphi言語向け統合開発環境• ASP.NET 2.0• Webサービス• ADO.NET 2.0• Architect版にのみ、ECO（Enterprise Core Objects） が付属• Blackfish SQL for .NET が標準添付され、配布も可能• モデルとソースコードが自動同期• 簡易Webサーバ Cassini が同梱され、すぐに開発が可能• カタログ• http://www.codegear.com/article/36908/images/36908/radstudio200
7_datasheet_ja.pdf

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

13.NET + ECO を使用した場合の開発手順
IIS（Webサービス + .NET + ECO）
Webサービス
エンドポイント

ECOスペース

永続化マッパーBlackfish SQL
Webサービスクライアント

ECOオブジェクト
ADO.NET

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

14

7

.NET + ECO を使用した場合の開発手順（続き）• Blackfish SQL for .NET のセットアップ• データエクスプローラの「BlackfishSQL Remote Provider」に追加• データベースファイル(.jds)の作成• ECOプロジェクトの作成• 「Eco Delphi .Net プロジェクトウィザード」を起動• 「ASP.NET」の「Webサービス」を選択• 永続化ストレージに「Blackfish SQL」を選択• EcoSpaceProvider.pas をテンプレートからコピーして追加• ECOの不具合のため。今後のアップデートで修正される予定。
• クラス名などを一括変換• .asmx ファイルの Class属性を正しいクラス名に修正• ECOの不具合のため。今後のアップデートで修正される予定。
Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

15.NET + ECO を使用した場合の開発手順（続き）• モデルとしてECOクラスをクラス図に追加• 例：Eventクラス• 「属性」の追加• 永続化マッパー内の接続コンポーネントを設定• PersistenceMapperProvider.pas• DataStoreConnectionコンポーネントのConnectionStringプロパティ• アウトプロセスとしてのBlackfish SQLに接続• 永続化マッパーでテーブルの自動生成• 事前にプロジェクトのビルドが必要

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

168

.NET + ECO を使用した場合の開発手順（続き）• 新規namespace内にデータ転送用クラスを再定義• EJB 3.0 の Entity とは違い、ECOオブジェクトはECOスペースと結合した状態のみで利用可能• ECOオブジェクトは、Webサービスのパラメータとしては使用できない• Webサービスメソッドの追加

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

17

テストおよび拡張• Webサーバーを起動• 「開始ページ」の指定• 「Cassini」が自動起動• WebブラウザでWebサービスを確認• エンティティ同士のリレーションシップ
• エンティティリレーションシップの追加とソースコードの同期• テーブルの自動生成• 例: One to Many
Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

189

Q&A
Any question?

Copyright ©2007 CodeGear. All Rights Reserved.本文書の一部または全部の転載を禁止します。

1910