連載
|
|
前回では、Enterprise Libraryを構成する各Application Blockの依存関係や基本ツールの紹介、それから実際にEnterprise Libraryを導入するところまでを解説した。
今回はEnterprise Libraryを構成するApplication Blockの中でもデータアクセス・ヘルパー機能を提供する「Data Access Application Block」(以下、DAAB)を紹介する。
DAABの具体的な活用法を解説するに当たり、「The Enterprise Library Configuration Console」(以下Configurationコンソール)を使ってApplication Blockの構成管理を行う方法についても解説する。これはほかのApplication Blockの場合でも基本的に同じなので、この機会にConfigurationコンソールの操作方法にも慣れていただきたい。
Data Access Application Blockとは何か?
●データアクセス・ヘルパー機能とは?
現在のほとんどのビジネス・アプリケーションやビジネス・サービス(Webサービスなど)では、何かしらのデータの格納にリレーショナル・データベースなどのデータソースを用いている。そしてこれらのデータにアクセスするためのロジック、つまりデータソースに対するアクセス機能として、.NET FrameworkではADO.NETというデータアクセス技術が提供されている。
しかし、ADO.NETなどのデータアクセスAPIを使用したロジックがアプリケーションの中に散在していては、結果的に保守性の悪いアプリケーションとなることが多い。これを回避する1つの手法は、ビジネス・ロジックからデータアクセス・ロジック部分を分離し、それを「データアクセス・ロジック・コンポーネント」としてカプセル化することだ。このコンポーネントではCRUD(Create、Read、Update、Delete)操作のみを行うシンプルなメソッドを提供し、データソースへの操作を一元管理する。これによりアプリケーションの保守と拡張が容易になる。
だがアプリケーションが多くのデータアクセス・ロジック・コンポーネントを必要とした場合、各コンポーネントに同じようなデータソースへのアクセス・ロジックを実装することになってしまい、結果として保守性を低下させてしまうことになりかねない。
そこで、各コンポーネントに汎用的なデータアクセス機能を「データアクセス・ヘルパー・コンポーネント」として一元管理し、さらにはデータソースを抽象化することで、保守性、汎用性、拡張性を確保することが容易になる。DAABは、このデータアクセス・ヘルパー機能を最適な形で提供するApplication Blockなのである(DAABはSQL Server以外にOracleやDB2にも対応している)。
次の図は、「Application Architecture for .NET」(Application Architecture for .NETについては「アプリケーション・アーキテクチャ設計入門」が参考になる)で示されているレイヤ・アーキテクチャのデータ層におけるDAABの位置付けを図示したものである。
データ層におけるData Access Application Blockの位置付け |
Application Architecture for .NETでは、ビジネス・ロジックから分離したデータアクセス・ロジックを複数のデータアクセス・ロジック・コンポーネントにカプセル化する。それらのコンポーネントに対して汎用的なデータアクセス機能を提供するデータアクセス・ヘルパー・コンポーネントがData Access Applcation Blockである。 |
なお、DAABはEnterprise Libraryがリリースされる以前から1.0版と2.0版が存在していたのだが、本稿ではEnterprise Libraryを構成しているDAABを対象に解説していく。
【コラム】 従来版のData Access Application Blockについて 従来版(1.0版、2.0版)についてもpatterns & practicesサイトからダウンロードすることが可能だが、Enterprise LibraryのようなほかのApplication Blockとの依存関係や構成管理ツール(Configurationコンソール)などは存在しない。 しかし、従来版のDAABは、実際にはSQLHelper.csという1つのファイルのみで構成されているので、ほかのアプリケーションに組み込みやすいこと、さらに1.0版はVisual Studio .NET(以下VS.NET)2002でもビルドが可能であることから(2.0版は.NET Framework 1.1上で開発されているので.NET Framework 1.0を基盤とするVS.NET 2002ではビルドできない)、Enterpise Libraryを導入するほどではないがDAABを使いたい場合や、どうしても.NET Framework 1.0上で開発する必要がある場合など、開発環境や用途に合わせて従来の1.0版と1.1版、Enterpise Library版を使い分けるとよいだろう。 |
|
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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|