連載
|
|
|
Data Access Application Blockをさらに使いやすくするツールたち
ここではEnterprise Library 1.0のリリース以後に公開されたDAAB用の拡張機能やツールをいくつか紹介する。
●CRUDメソッドを自動生成するツール「Data Tier Generator」
ここまでの説明で、DAABを使うことにより、データアクセス・ロジック・コンポーネントの開発が楽になることはお分かりいただけたと思うが、DAABはあくまで汎用のデータアクセス・ロジック機能を提供するにすぎない。そのためビジネス・ロジックへ公開するCRUDメソッドについては、依然としてゼロからコードを記述するしかなく、これはかなりの手間である。
ここで紹介する「Data Tier Generator」は、DAABを使って任意のデータベースの各テーブルに対応するTableDataGatewayクラス(CRUDメソッドを含むクラス)とSQLスクリプト・ファイル(自動生成されたTableDataGatewayクラスのCRUDメソッドが利用するストアドプロシージャを生成するファイル)を自動生成してくれるツールである(ちなみに、単一のテーブルまたはビューに対するCRUD操作を一元的に提供する、データ層におけるパターンはマーチン・ファウラー氏による書籍「エンタープライズアプリケーションアーキテクチャパターン」では「TableDataGatewayパターン」と呼ばれる)。
Data Tier Generatorは、以下のページから入手可能である。
次の画面は、Data Tier Generatorを実際に実行しているところである。
「Data Tier Generator」の実行画面 | |||||||||||||||||||||
Data Tier Generatorを実際に実行しているところ。上記のサイトからダウンロードしたZipファイルを解凍すると得られる「DataTierGenerator.exe」を実行している。 | |||||||||||||||||||||
|
上の画面の設定で[Generate]ボタンを押すと、複数のソース・ファイルとSQLスクリプト・ファイルが生成される(ただしEntLibQuickStartsデータベースは、デフォルトではWindows照合順序の設定が「SQL_Latin1_General_CP1_CI_AS」になっているため、生成時にエラーになってしまう。これを解決するには、「Alter database EntLibQuickStarts collate Japanese_CI_AS」というSQL文をEntLibQuickStartsデータベースに対して発行するなどして、Windows照合順序を「Japanese_CI_AS」に変更してやるとよいだろう)。
生成されたすべてのファイル(4つのソース・ファイルと12個のSQLスクリプト・ファイル)は、以下のリンクからダウンロードできる。
このツールを使用することで、DAABを使ったデータアクセス・ロジック・コンポーネントの実装が随分と楽になるだろう。
●実行時に動的に接続情報を作成するツール「Dynamic Database Factory」
いままで紹介してきたDAABの使用方法では、データソースへの接続情報をConfigurationコンソールで設定していたのだが、場合によっては実行時に接続先サーバや接続先データベースを指定したいこともあるかもしれない。
「Dynamic Database Factory」は、ソース・コードで接続情報を指定できるようにDAABを拡張するクラスである。
以下にDynamic Database Factoryのサンプル・コードを示す。
|
|
Dynamic Database Factoryのサンプル・コード | |
DynamicDatabaseFactoryクラス(EnterpriseLibrary.Extensions.Data名前空間)のCreateDatabaseメソッドのパラメータにより、データベース・サーバ名、データベース名、データ・プロバイダの種類を指定できる(この例では、それぞれ順に「(local)」「EntLibQuickStarts」「DBProviderType.SqlServer」)。これにより、実行時に動的にデータソースへの接続情報を設定することができる。 |
Dynamic Database Factoryは、以下のリンクからダウンロードできる(ダウンロード用のページがないため、ファイルに直接リンクしている)。
●OleDb用のデータ・プロバイダ「OleDb Data Provider for Enterprise Library 1.0」
OleDb Data Provider for Enterprise Library 1.0は、OleDb用のデータ・プロバイダとして、OleDbDatabaseクラス、OleDbCommandWrapperクラスを提供する。
これは以下のリンクからダウンロードできる。
●そのほかの拡張機能とツールについて
ここで紹介した3つのツール以外にもさまざまなツールや拡張機能が以下のサイトで公開されている。
以下に、本稿執筆時点で公開されている、そのほかのDAAB用ツールや拡張機能を紹介する。
-
Enterprise Library Data Access Block: Storing and Retrieving BLOB Data in Oracle(OracleでBLOBデータ(=バイナリ・ラージ・オブジェクト・データ:非常に大きなサイズのバイナリ・データのこと)を簡単に扱えるようにOracleデータ・プロバイダを拡張するためのサンプル・コード)
-
MySql for Enterprise Library(MySQL用データ・プロバイダ)
-
Sybase ASE Data Providere(Sybase用データ・プロバイダ)
-
Enterprise Library - Data - Firebird Database Provider Classes(Firebird用データ・プロバイダ)
■
以上、今回はDAABの概要説明と導入手順、そしてそれらを拡張する機能やツールについて紹介した。DAABについてさらに知りたい場合は、冒頭の「Tech・Ed 2005セッション」の告知でも紹介した「Enterprise Library 1.0 Hands On Labs」を参考にするとよいだろう。
次回はLogging and Instrumentation Application BlockとException Handling Application Blockについて解説する予定である。
INDEX | ||
連載:Enterprise Library概説 | ||
洗練されたデータアクセス機能を実装しよう | ||
1.Data Access Application Blockとは何か? | ||
2.ConfigurationコンソールでData Access Application Blockの構成を設定する | ||
3.Data Access Application Blockを使うメリット | ||
4.Data Access Application Blockをさらに使いやすくするツールたち | ||
「Enterprise Library概説」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|