連載
Enterprise Library概説

Enterprise Library 3.0が見せる共通ライブラリの未来形

アバナード株式会社 市川 龍太(patterns & practices Champion
2007/01/24
Page1 Page2 Page3

■Guidance Automation Toolkit

 GATはEntLibと同じくp&pによって提供されたガイダンス・パッケージを作成するためのツールキットである。ガイダンス・パッケージとはVisual Studioテンプレート、Recipe(開発者が行う一連の動作)、Action(IDE上で実行される個々のタスク)、Wizardなどや、それら各要素の組み合わせや起動条件などを管理する構成ファイルなどを再利用できる形でパッケージ化したものであり、通常はMSI形式のインストーラとして配布される。

 ただしGATによって作成されたガイダンス・パッケージを利用するには、実際にはGuidance Automation eXtensions(以下GAX)と呼ばれる、ガイダンス・パッケージをVS 2005上で利用するためのランタイムが必要であるため、現時点ではGATといえばGAXとセットであると考えてよいだろう。

 では次にGATを利用することで開発にどのようなメリットがもたらされるのかについて解説しよう。先ほど設計者−実装者間の意図のミスマッチが存在すると書いたが、設計者はGATを使って作成したガイダンス・パッケージを実装者に配布し利用してもらうことで、意図の伝達をある程度自動化し、結果として属人性の問題を減らすことができるようになるのである。

ガイダンスのライフサイクル
ガイダンス・パッケージはガイダンス作業者(アーキテクト=設計者)によって作成され、それがガイダンス利用者(開発者=実装者)に配布されて利用されることになる。

 ガイダンス・パッケージを適用することで以下のような操作をVS 2005上で行うことが可能になる。

  • 設計者が作成した新しいプロジェクトをVS 2005の「新しいプロジェクト」へ登録できる
  • 設計者が意図する任意のソリューション要素(クラス・ファイル、.aspxファイルなど)にのみ、特定のタスクを実行することが可能になる
  • タスクを実行する際にウィザードを利用することで、タスクの実行をユーザーと対話的に行うことが可能になる
  • VS 2005上にタスクと連動するHTML形式のガイダンス・ドキュメントを表示させることが可能になる

 例えばDAC(Data Access Class)ガイダンス・パッケージを設計者が作成し、それを開発者に配布するというシナリオがあったとする。開発者が新しくVS 2005に登録されたDACプロジェクトをソリューションに追加することでDACプロジェクトのひな型がソリューション・エクスプローラに追加される。

 次にソリューション・エクスプローラのDACプロジェクトを右クリックしたときのみ、コンテキスト・メニューにDACクラスを追加する項目が表示され、その項目を選択するとデータベース情報を入力するウィザード画面が表示される。

 開発者はそのウィザード画面にデータベースへの接続情報などを入力すれば、後はその情報を基にCRUD(Create、Read、Update、Delete)操作のみを持つデータアクセス・ロジック・コンポーネント・クラスが自動的に生成されDACプロジェクトに追加される。

DACガイダンス・パッケージを適用した後のコンテキスト・メニュー
ソリューション・エクスプローラのDACプロジェクトを選択したときのみ、コンテキスト・メニューにData Access Classを追加するメニュー項目が表示される。ちなみにBusinessEntity1プロジェクトを選択した場合は、コンテキスト・メニューにBusinessEntityを追加するメニュー・アイテムが表示される。

 p&pが作成したガイダンス・パッケージが、すでにいくつか公開されているので以下に紹介しておく。

●Smart Client Software Factory
 スマート・クライアント・アプリケーション用のガイダンス・パッケージ。Composite UI Application Block(複雑なUIを持つWindowsアプリケーション開発においてコンポーネント化を容易にするためのApplication Block。以下CAB)を利用したスマート・クライアント・アプリケーション開発におけるガイダンスやパターン、アーキテクチャ・ドキュメント、サンプルなどが提供されている。

●Web Client Software Factory
 Webアプリケーション用のガイダンス・パッケージで現在CodePlex(ソース・コードやアプリケーションを公開するためのコミュニティ・サイト)にて開発が進められている。画面間の遷移条件の定義などにWindows Workflow Foundation(WF)を利用しているのが特徴であり、複雑なアーキテクチャ構成を持つWebアプリケーション開発におけるガイダンスやパターン、アーキテクチャ・ドキュメント、サンプルなどが提供されている。

●Web Service Software Factory
 Webサービスを利用したSOA(Service Oriented Architecture)アプリケーション用のガイダンス・パッケージ。Web Service Software Factoryのコミュニティでは、ほかにもWindows Communication Foundation(WCF)を利用したWCF Guidance PackagesとWCF Security Guidance Packageの2つのガイダンス・パッケージも公開されている。

●Mobile Client Software Factory
 モバイル・アプリケーション用のガイダンス・パッケージ。CABとData Access Application Blockを利用したモバイル・アプリケーション開発におけるガイダンスやパターン、アーキテクチャ・ドキュメント、サンプルなどが提供されている。ちなみにMobile Client Software Factoryを動作させるには、Windows Mobile 5.0 Pocket PC SDKがインストールされている必要がある。

 GATはMicrosoftが提唱するSoftware Factories構想の中で、今後はDSLツールと並んでキー・テクノロジとなり得る可能性を秘めているのだが、さすがに本稿だけではそのすべてを解説することはできないため、また機会があれば詳細を解説したいと思っている。

 少し話が長くなってしまったが、GATの紹介はここまでにして話をABSFに戻そう。


 INDEX
  連載:Enterprise Library概説
  Enterprise Library 3.0が見せる共通ライブラリの未来形
    1.EntLib 3.0で新しく提供予定の機能
  2.Guidance Automation Toolkit
    3.Application Block Software Factory
 
インデックス・ページヘ  「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 記事ランキング

本日 月間