特集
Enterprise Library 4.0概説

新しいオブジェクト生成機構でEntLibはこう変わる!

アバナード株式会社 市川 龍太(Microsoft MVP 2008 for XML)
2008/06/17
Page1 Page2 Page3

 マイクロソフトが開発を推進している企業アプリケーション向けのオープンソースなライブラリとして登場したEnterprise Library(エンタープライズ・ライブラリ、以下EntLib)。その最新版であるEntLib 4.0が今年5月にリリースされた。

 EntLib 4.0は、最新の.NET Framework「3.5」に対応しただけでなく、本格的なDependency Injection(以下DI。DIについては後述)機能を備えたUnity Application Block(以下Unity)を中核に据えることで、従来版とはまったく異なる概念で、より柔軟なオブジェクト生成のアーキテクチャを提供している。

 Unityを用いたDI機能については後述するとして、まずは従来のApplication Block(EntLibにおける機能の単位)がどのように変わったのかについてざっと見ていこう。

EntLib 3.0とEntLib 4.0の相違点

 まずはEntLib 3.0とEntLib 4.0の主な相違点を挙げる。

Exception Handling Application Block

Enterprise Library概説:一貫した例外管理機能を実装しよう
  • UseDefaultLoggerプロパティ
      Logging HandlerにUseDefaultLoggerプロパティが追加された。このUseDefaultLoggerプロパティがtrueの場合は、Logging Handlerに定義されている外部ファイルに例外情報を出力するが、falseの場合はファイル名にGUID値が自動的に付けられた外部ファイルに例外情報を出力する。

Logging Application Block

Enterprise Library概説:拡張性と使いやすさを併せ持つログ出力機能を実装しよう
  • パフォーマンスの向上
     従来版では、ログ出力操作の都度フラッシュ(書き出し)が行われていたが、EntLib 4.0版ではある程度情報をキャッシュしてから一斉にフラッシュを行うことができるようになった。これにより各種データソースへの出力回数を減らすことができ、結果としてパフォーマンスが向上している。しかしログ情報をフラッシュする前に何かしらのエラーによりキャッシュの内容が消えてしまう可能性がある点には注意が必要である。

  • 深夜0時にログ・ファイルをローリング
     Rolling Flat File Trace Listenerを使用すれば、任意の時間にログ・ファイルをローリングさせる(=ファイル名を任意の規則に従って変更する)ことができる。EntLib 4.0版ではこれらの設定を行うRollIntervalプロパティに、新しく追加されたMidnight値を設定することで、現地時間の深夜0時以降にログ出力を行った場合に自動的にローリングさせることが可能になっている。

  • 環境変数への対応
     外部ファイルにログ出力を行う場合のファイル名に「%WINDIR%」「%TEMP%」「%USERPROFILE%」のような環境変数を設定することが可能になっている。

Policy Injection Application Block

EntLib 3.0の注目の新機能を実装サンプルで見てみよう
  • ポリシーの並び順指定
      各Policy Handlerに新しく追加されたOrderプロパティに数値を設定することで、Policy Handler Chainに登録される順番を指定することできる。これにより、各ポリシーが実行される順番を操作することが可能になっている。

Validation Application Block

EntLib 3.0の注目の新機能を実装サンプルで見てみよう
  • 複数のルール・セットを登録可能
      従来版では、Validateメソッドに1つのルール・セットしか指定できなかったのだが、EntLib 4.0版では複数のルール・セットを登録できるようになった。これにより異なるバリデーション・ルールを組み合わせて適用することが可能になっている。

 

 主な相違点は以上であるが、このほかに各Application Blockに共通してWMI 2.0への対応、新しいパフォーマンス・カウンタの追加などの相違点がある。ここまでをざっと見てもらえれば分かると思うが、EntLib 4.0は特に大きな機能変更もなければ、新しいApplication Blockの追加もなく、さらにEntLib 3.0から同じインストーラに同梱されていたApplication Block Software FactoryやStrong Naming Guidance Packageが含まれていない。そのため一見するとマイナー・バージョンアップのように受け取られそうだが、実はEntLib 4.0において最も大きな機能追加はUnityとの統合にある。

 そこで以下からはUnity統合によってEntLibがどのように変わったのかについて解説する。


 INDEX
  特集:Enterprise Library 4.0概説
  新しいオブジェクト生成機構でEntLibはこう変わる!
  1.EntLib 3.0とEntLib 4.0の相違点
    2.Unity Application Block(1)
    3.Unity Application Block(2)

インデックス・ページヘ  「Enterprise Library 4.0概説」


Insider.NET フォーラム 新着記事
  • 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間