InfoQ

News

Visual Studio 2008向けMicrosoft Enterprise Library 4.0がリリース

作者 Robert Bazinet, 翻訳者 編集部 投稿日 2008年6月4日 午後6時34分

コミュニティ
.NET
トピック
Enterprise Application Blocks
タグ
Microsoft,
Dependency Injection

マイクロソフトは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)を用意しており、使用法を巧みに紹介している。

原文はこちらです:   http://www.infoq.com/news/2008/05/enterprise-library-4

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

特集コンテンツ一覧

Typemock: その過去・現在・未来

Eli Lopian氏率いるTypemock社の過去・現在・未来について、インタビュー形式にて記します。

企業とSaaSの仮想化がもたらすのは、迅速性(アップ)だけではない

この論文では、仮想化やクラウドサービスの複雑なメリットと実世界における応用を検討します。さらに重要なこととして、Contegixが複雑な問題の解決に仮想化を実装している方法や、仮想化を使うべきではないケースについて詳細を提供します。

RubyのFiberを非同期I/Oに使うNeverBlockとRevactor

Fiberはユーザに試練を課すことなくこの考えを実装する有益な並行性ツールとして、ライブラリが2つあります。まさにこのためのソリューションとしてあるのがNeverBlockライブラリです。私たちはNeverBlockプロジェクトのMohammad A. Ali氏とRevactorライブラリのTony Arcier氏に話を聞きました。

拡張性に関する悪習慣

システムの保守容易性や拡張性を確保するためのベスト・プラクティスに関する記事は数多くありますが、この記事では避けた方がいい、いくつかの悪習慣(ワースト・プラクティス)を強調します。

トップスポーツチームの監督に教わる秘訣

この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。

事例研究:Dutch Railwaysのプロジェクトにおける分散拠点でのスクラム・プロジェクト

この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。

Agile2008チーム参加レポート - 帰国そして変化

Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。

SilverlightとJavaのインターオペラビリティ

マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。