特集
|
|
マイクロソフトが開発を推進している企業アプリケーション向けのオープンソースなライブラリとして登場した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
|
- UseDefaultLoggerプロパティ
Logging HandlerにUseDefaultLoggerプロパティが追加された。このUseDefaultLoggerプロパティがtrueの場合は、Logging Handlerに定義されている外部ファイルに例外情報を出力するが、falseの場合はファイル名にGUID値が自動的に付けられた外部ファイルに例外情報を出力する。
●Logging Application Block
|
-
パフォーマンスの向上
従来版では、ログ出力操作の都度フラッシュ(書き出し)が行われていたが、EntLib 4.0版ではある程度情報をキャッシュしてから一斉にフラッシュを行うことができるようになった。これにより各種データソースへの出力回数を減らすことができ、結果としてパフォーマンスが向上している。しかしログ情報をフラッシュする前に何かしらのエラーによりキャッシュの内容が消えてしまう可能性がある点には注意が必要である。 -
深夜0時にログ・ファイルをローリング
Rolling Flat File Trace Listenerを使用すれば、任意の時間にログ・ファイルをローリングさせる(=ファイル名を任意の規則に従って変更する)ことができる。EntLib 4.0版ではこれらの設定を行うRollIntervalプロパティに、新しく追加されたMidnight値を設定することで、現地時間の深夜0時以降にログ出力を行った場合に自動的にローリングさせることが可能になっている。 -
環境変数への対応
外部ファイルにログ出力を行う場合のファイル名に「%WINDIR%」「%TEMP%」「%USERPROFILE%」のような環境変数を設定することが可能になっている。
●Policy Injection Application Block
|
- ポリシーの並び順指定
各Policy Handlerに新しく追加されたOrderプロパティに数値を設定することで、Policy Handler Chainに登録される順番を指定することできる。これにより、各ポリシーが実行される順番を操作することが可能になっている。
●Validation Application Block
|
- 複数のルール・セットを登録可能
従来版では、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概説」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|