マイクロソフトはVisual Studio 2008向けのEnterprise Library 4.0バージョンをリリースしたが、依存性注入コンテナであるUnity 1.1アプリケーションブロックも同時リリースした。
patterns and practicesチームのプロダクトマネジャーGrigori Melnik氏はEnterprise Library 4.0(source)およびUnity 1.1 refresh(source)の両リリースを発表し、全新機能について説明している。
MSDN Developer Centerは、今回のリリースが開発者にとって何を意味するかについて、次のように説明している。
今回のEnterprise Libraryのリリースには新しいアプリケーションブロック(Unity Application Block(source)参照)が入っています。Unityは軽量かつ拡張可能な依存性注入コンテナであり、コンストラクタやプロパティ、メソッド呼び出しの注入をサポートします。Enterprise Libraryをインストールすることなく、Unity Application Blockをスタンドアロンの依存性注入メカニズムとして使えます。しかし、今回のEnterprise LibraryのリリースはUnityとの一体化を盛り込んでおり、Enterprise Libraryオブジェクトのインスタンス生成に新しい機会を提供しています。
既存アプリケーションブロック数種にも機能が追加されています。続くセクションでは、そうした追加機能や現行リリースでの変更を説明します。さらに今回のリリースは、Microsoft Visual Studio 2008、Windows Management Instrumentation(WMI)バージョン2.0、Microsoft .NET Framework 3.5との連携に適応しています。
Enterprise Library 4.0
Enterprise Libraryバージョン4.0のアプリケーションブロックには以下が含まれる。
- Caching Application Block(source)。開発者はこのアプリケーションブロックを使って、アプリケーションにキャッシュを組み込めます。プラガブルキャッシュのプロバイダをサポートします。
- Cryptography Application Block(source)。開発者はこのアプリケーションブロックを使って、アプリケーションにハッシュやシンメトリック暗号を組み込めます。
- Data Access Application Block(source)。開発者はこのアプリケーションブロックを使って、アプリケーションに標準的なデータベース機能を組み込めます。
- Exception Handling Application Block(source)。開発者とポリシー立案者はこのアプリケーションブロックを使って、エンタープライズ・アプリケーションの構造レイヤーの至るところで発生する例外を処理するための、矛盾のない戦略を作成できます。
- Logging Application Block(source)。開発者はこのアプリケーションブロックを使って、アプリケーションに標準的なロギング機能を持たせることができます。
- Policy Injection Application Block(source)。ロギングやキャッシング、例外処理、妥当性確認などの共通機能をシステム全体にまたがって実装する場合、開発者はこのアプリケーションブロックを使って、そうした共通機能の実装の合理化に利用できる遮断ポリシーを実装できます。.
- Security Application Block(source)。開発者はこのアプリケーションブロックを使って、アプリケーションに認証およびセキュリティのキャッシング機能を組み込めます。
- Unity Application Block(source)。開発者はこのアプリケーションブロックを、コンストラクタやプロパティ、メソッド呼び出しの注入をサポートする軽量かつ拡張可能な依存性注入コンテナとして使えます。
- Validation Application Block(source)。開発者はこのアプリケーションブロックを使って、アプリケーションの異なるレイヤーをまたいで使用可能なビジネスオブジェクトの承認ルールを作成できます。
Enterprise Library 4.0で新しくなったこと
- Unity Application Block との統合
- Windows Management Instrumentation (WMI) 2.0のサポートとツール類の改良
- パフォーマンスの改善(特にLogging Application Block)
- Pluggable Cache Managers
- Visual Studio 2008のサポート
- バグ修正
すべてのアプリケーションブロックについて、QuickStartが用意されている。
- Caching Application Block QuickStarts (source)
- Cryptography Application Block QuickStarts (source)
- Data Access Application Block QuickStarts (source)
- Exception Handling Application Block QuickStarts (source)
- Security Application Block QuickStarts (source)
- Logging Application Block QuickStarts (source)
- Policy Injection Application Block QuickStarts (source)
- Unity Application Block QuickStarts (source)
- Validation Application Block QuickStarts (source)
Enterprise Library 4.0はpatterns & practices Developer Center(source)からダウンロードできる。
Unity 1.1
Unityは、Enterprise Libraryと一体化するが依存することはない、依存性注入コンテナと評されている。
Unity Application Block(Unity)は、コンストラクタやプロパティ、メソッド呼び出しの注入をサポートする軽量かつ拡張可能な依存性注入コンテナです。Enterprise Libraryと一緒に使って、エンタープライズライブラリ・オブジェクトならびに独自のカスタム・ビジネスオブジェクトの両方を生成できます。しかし、Unity Application Blockは、Enterprise Libraryに入っている他のアプリケーションブロックとは以下の点で根本的に異なります。:
- Enterprise Libraryをインストールすることなく、Unity Application Blockをスタンドアロンの依存性注入メカニズムとして使えます。
- Unity Application Blockは、コンフィギュレーション・ファイルを介して露出したコンフィギュレーション情報を使ってコンテナを用意できますが、ランタイムではコードを使用して依存性を動的に登録することも可能です。
- Unity Application BlockはEnterprise LibraryのコアやEnterprise Libraryのコンフィギュレーション・システムに何ら依存しません。コンフィギュレーション読み取り用に独自のメカニズムを搭載していますーしかし、適当な場合は、この情報をEnterprise Libraryの標準コンフィギュレーション・ファイルから取り出すこともできます。
Unity 1.1で新しくなったこと。
- もう使われていないObjectBuilderコードをすべて削除
- バグ修正:オープンジェネリック型のlifetime manager
- バグ修正:RegisterTypeがRegisterInstanceをオーバーライドしていた点
- シングルトン分析時のパフォーマンス改善
- 特定型のエクステンション(依存性の解決方法をカスタマイズする必要のあるエクステンション)の作成を容易にするため、内部クラスの一部を公開
- 値の分解能が失敗した場合のエラーメッセージ改善
今回のリリースに間に合わなかったもの。
- 遮断メカニズムは未実装。しかし、Unityバックログでの優先順位は上の方です。
- AOP機能が必要になるにしても、Policy Injection Application Blockを依然として使用可能。
- DIコンフィギュレーションへのツールサポートはありません。
Unity 1.1はpatterns & practices Developer Center(source)からダウンロードできる。
David Hayden氏がUnity Inversion of Control(IoC=制御の反転)の統合を利用したEnterprise Library 4.0 Data Access Application Blockのスクリーンキャスト(source)を用意しており、使用法を巧みに紹介している。
原文はこちらです: