特集
Enterprise Library 3.0概説(前編)

自身のセオリーから飛び出した新生EntLib 3.0とは?

アバナード株式会社 市川 龍太(Microsoft MVP − Solutions Architect)
2007/05/22
Page1 Page2 Page3 Page4

■EntLib 3.0から新しく追加された機能

 続いては新しく追加された機能について解説していくわけだが、まずEntLib 3.0を構成する各Application Blockの依存関係を視覚化した図を示す。

各Application Blockの依存関係
は「必須の依存関係」(Block Dependency)を表し、 は「オプションの依存関係」(Optional Provider Dependency)を表している。

 この図をEntLib 2.0の依存関係図と見比べてみると、Coreを中心に据えた既存のApplication Blockの依存関係に大きな変更はないが、新しくValidation Application BlockとPolicy Injection Application Blockが追加されていることが分かるだろう。特にPolicy Injection Application Blockが複数のApplication Blockに依存していることにご注意いただきたい。これについては後ほど解説する。

 それではEntLib 3.0から新しく追加された機能について見ていくことにしよう。

・Visual Studio-integrated Configuration Editor
 従来のEntLibでは、各Application Blockの振る舞い管理は、Configコンソールという単体のツールを使っていたのだが、EntLib 3.0からはVisual Studio 2005(以下VS 2005)とConfigコンソールを統合させるVisual Studio-integrated Configuration Editorが提供されたことで、VS 2005上でEntLibの振る舞いを管理することが可能になった。

 このVisual Studio-integrated Configuration Editorをインストールすると、ソリューション・エクスプローラからアプリケーション構成ファイルを右クリックしたときに表示されるコンテキスト・メニューに[Edit Enterprise Library Configuration]の項目が表示されるようになる。

Visual Studio-integrated Configuration Editorのインストール後のコンテキスト・メニュー
[Edit Enterprise Library Configuration]はアプリケーション構成ファイルを選択したときだけ表示される。

 この[Edit Enterprise Library Configuration]を選択すると、VS 2005上にConfigコンソールのツリー構造が表示されるのである。

Visual Studio統合機能がインストールされたVS 2005
ソリューション・エクスプローラにあるアプリケーション構成ファイルを右クリックし、そのときに表示されるコンテキスト・メニューから[Edit Enterprise Library Configuration]を選ぶと、このようなConfigurationの管理画面がVS 2005のIDE上で表示される。
  各Application Blockの登録・削除などはConfigコンソールと同様にVS 2005上から行うことが可能である。
  各Application Blockの構成設定は、VS 2005のプロパティ・ウィンドウで設定する。
  アプリケーション構成ファイルを保存するときに、構文エラーがあるとエラー一覧に表示され、エラー・ダイアログも表示される。

 技術検証や開発時などにEntLibの構成を頻繁に変える必要があるようなシチュエーションでは、VS 2005から簡単にEntLibの構成を変更できるため非常に重宝する機能であろう。

・Environment Override
 開発用、テスト用、本番用などの異なる環境下において、ほとんどの設定は共通なのだが、一部の設定のみが環境ごとに異なるという場合があるだろう。この場合、環境ごとに別々の構成ファイルを定義し管理していくことは、保守の観点からもあまり推奨されることではない。

 EntLib 3.0からは、こういった状況下においてもConfigコンソールで一元管理が行えるEnvironment Override機能が新しく追加されている。以下にException Handling Application Block(以下EHAB)を例にEnvironment Overrideを使用したサンプルを示す。

Environment Overrideを利用したConfigコンソール
Environment Override機能を使用する場合は、「Environments」ノードを右クリックし、表示されるコンテキスト・メニューから[New]−[Environment]を選択するとEnvironmentノードが追加される。このサンプルでは、Environmentノードを2つ追加し、それぞれNameを「Environment1」と「Environment2」に変更している。

 Environmentノードを追加すると、そのほかのすべてのノードのプロパティに「Overridden values per environment」の欄が自動的に表示されるようになる。ここで「<Environment名>のOverrides」プロパティの値をOverride Propertiesに変更すると、各プロパティを個別に設定することが可能になるのである。

 上のサンプルでは、EHABが例外(サンプルではExceptionクラス)を捕捉した場合のReplace Handlerの振る舞いをEnvironment1ではExceptionHandlingExceptionクラスに、Environment2ではApplicationExceptionクラスに置換し、それぞれ異なるエラー・メッセージを設定している。このようにして個別に設定された各値は、それぞれ別の構成ファイルに出力されることになる。

 最後にEnvironment1ノードを右クリックし、表示されるコンテキスト・メニューの[Save Merged Configuration]を選択すると、先ほど設定した個別値とそれ以外の共通値がマージされ、Environment1ノードのEnvironmentConfigurationFileプロパティに設定された構成ファイル(以下の画面ではDevEnv.config)へ出力されるのである。

Environmentごとに別々の構成ファイルに出力させる設定

 後は環境ごとにFile Configuration Source(=EntLibの構成設定をアプリケーション構成ファイルではなく、XML形式の外部ファイルへ入出力するための機能)に設定する構成ファイルを変更してやればよいのである。


 INDEX
  [特集]Enterprise Library 3.0概説(前編)
  自身のセオリーから飛び出した新生EntLib 3.0とは?
    1.EntLib 3.0とは?
    2.EntLib 2.0と3.0の相違点
  3.EntLib 3.0から新しく追加された機能(1)
    4.EntLib 3.0から新しく追加された機能(2)
 
  [特集]Enterprise Library 3.0概説(後編)
  EntLib 3.0の注目の新機能を実装サンプルで見てみよう
    1.Validation Application Block(VAB)
    2.VABのSelf Validation機能/ASP.NET統合
    3.Policy Injection Application Block(PIAB)
    4.Application Block Software Factory(ABSF)
 
インデックス・ページヘ  「Enterprise Library」


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 記事ランキング

本日 月間