【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 

連載
Enterprise Library概説

マイクロソフトが推進するオープンソース・ライブラリ

市川 龍太
2005/05/07
Page1 Page2

 
●.NET開発ではなぜオープンソースが利用されないのか?

 マイクロソフトとオープンソース。この両者は相反する関係にあると思われがちだ。確かに、オープンソースで提供されているツールやライブラリ、フレームワークといえば、もっぱらJava開発用のものばかりが思い浮かぶ。例えばオープンソースとして有名なEclipse、Struts、TomcatなどはすべてJavaベースの開発で用いられるものだ。実際にJava開発ではオープンソースを使うことはごく一般的な手段である。

 ところがマイクロソフトが推進する.NETによる開発では、オープンソース・テクノロジを活用することは一般的だとはいえない。もちろん.NET開発においてもオープンソース・ソフトウェアがまったく存在しないというわけではない。例えば、NUnit(単体テスト・ツール)、NMock(疑似的なデータ処理を可能にするテスト・ツール)、NAnt(ビルド・ツール)、NDoc(ドキュメント生成ツール)、log4net(ログ出力ツール)などがある。しかしこれらのオープンソース・ツールはまだまだ一般的な.NET開発者にまで広く浸透しているわけではないようだ。

 ではなぜJavaの世界では一般的な「オープンソースを使った開発」が.NETではあまり進んでいないのだろうか? この理由の1つに、.NET開発では、.NET Frameworkが提供する標準機能・標準サービスを中心に据えて、マイクロソフト・テクノロジのみを使用することで、最大限にその特徴を生かせるということが挙げられる。

 .NET Frameworkのクラス・ライブラリは、そこで提供されるあらゆるアプリケーション・サービス(Windowsアプリケーション、Webアプリケーション、スマート・デバイス・アプリケーションなど)に対する設計方針や実装方法が、マイクロソフトにより統一・標準化されている。そのため、ある技術(例えばWebアプリケーション)の設計方針や実装方法を学べば、ほかの技術(例えばWindowsアプリケーション)にも応用が利くのだ。このため、.NET開発に対する習熟が早められ、結果として開発生産性が大きく高められる(これがもしJavaのように複数のオープンソース・テクノロジを組み合わせて利用しなければならない開発スタイルだとすれば、それぞれの設計方針や実装方法を個別に学習しなければならなくなり、開発効率が落ちてしまうだろう)。

 また、標準提供されているマイクロソフト・テクノロジならば、統合開発環境であるVisual Studioが完全対応しているのでその利用が簡単であるし、それらのテクノロジが将来、変遷していく際にもマイクロソフトによる柔軟な移行サポートが期待できる。これがもしオープンソース・テクノロジならば、必ずしもVisual Studioで簡単に利用できるわけではないし、オープンソース・テクノロジのサポート期間もそれを提供する組織ごとにさまざまでその将来性に不安が残るだろう(もちろんソース・コードを自分で保守する意思があれば、この不安を一蹴できることは付け加えておく)。

 .NET開発ではこのような性質があるために、.NET開発者はわざわざ非マイクロソフトのオープンソース・テクノロジを利用することに抵抗を感じているのではないだろうか? つまり、このような.NET開発のメリットこそが、

オープンソース = 非マイクロソフトのテクノロジ
(.NET標準のテクノロジではない)
.NET開発者は敬遠

という構図を結果的に生み出してしまっているのではないかと筆者は考えている。

 今回本稿で取り上げる「Enterprise Library」はオープンソース・ソフトウェアである。しかし、上に示したこととは1点だけ明確な違いが存在する。それは「マイクロソフトが推進しているオープンソースである」という点である。つまり、「非マイクロソフトのテクノロジ」ではないのだ。

 なお、ここでいうオープンソースの定義およびライセンスは、GNU GPLなどとは違い、Enterprise Library独自のものだ。詳細は以下のライセンス規約のページを参照してほしい。

●マイクロソフトが推進しているオープンソースとほかのオープンソースでは何が違うのか?

 そもそもEnterprise LibraryはAvanadeのACA.NET(Avanade Connected Architectures for .NET Development)をベースにして開発された.NETのライブラリで、patterns & practices(マイクロソフト・プラットフォーム上でのシステム開発における「規範的なパターン」と「ベスト・プラクティス」)の公開を担当しているマイクロソフトPAGチーム(Platform Architecture Guidance Team)のメンバーらによってGotDotNet Workspace(オンラインで共同作業をしながらアプリケーションを開発するためのWeb上の共有スペース)上で共同開発され、その後、完成したリリース・バージョン(Enterprise Library 1.0)がpatterns & practices上に掲載されたという経緯がある。それ故、Enterprise Libraryはマイクロソフトが.NETプロダクトの1つとして正式にリリースしたものではない。

 しかし、マイクロソフトが.NET開発において最適かつ最善と考える設計・実装方針を示すに当たってのかじ取り役を担うPAGチームによって開発されたという安心感・信頼感は、ほかのオープンソース・ソフトウェアでは決して得られないものである。そしてこれこそがマイクロソフトが推進しているオープンソース(=Enterprise Library)とほかのオープンソースとの決定的な違いであるといえる。

●さまざまな開発者の手によって拡張されていくEnterprise Library

 ではEnterprise Libraryは、今後もPAGチームのみが拡張していくのかといえば決してそうではない。PAGチームは、開発当初から世界中の開発者コミュニティへの参加とフィードバックを積極的に奨励してきたし、Enterprise Libraryを後から拡張しやすいようにNUnitの単体テストで使用できるテスト・ケースも公開している(なおEnterprise LibraryはTDD(テスト駆動開発)で開発されている)。テスト・ケースにはEnterprise Libraryの開発において使用されたすべてのケースが含まれているので(ちなみに総テスト・ケース数は実に1800個以上に及ぶ)、Enterprise Libraryのソース・コード変更時の回帰テストを自動で何度でも行えるようになっている。

 実際にこういったPAGチームの呼び掛けに呼応するかのように、さまざまな開発者たちの手によってフィードバックが行われている。以下にその成果の一例を紹介しよう。

  1. Enterprise Library構成管理ツール「Enterprise Library Configurationコンソール」(詳細は後述)に対するさまざまな拡張機能の提供

 例えば、「構成管理ツールのコンソール画面からデータベースへの接続テストを行えるようにする機能」や「事前コンパイルによってアプリケーション起動時のパフォーマンスを改善する機能」など多数の拡張機能の提供が、開発コミュニティからのフィードバックにより実現している(なお、主な拡張機能については、後々紹介していきたい)。

  1. 世界中のさまざまなWebサイトによるEnterprise Library関連情報の公開

 世界中で数多くのEnterprise Library関連サイトが立ち上がってきている。これらのサイトは「Online Tutorials about Enterprise Library」にまとめられているので、ぜひ確認してほしい。

 それでは日本におけるEnterprise Libraryに関する活動状況はどうだろうか? 残念なことに本稿執筆時点では、国内のマイクロソフトpatterns & practicesサイトでEnterprise Libraryに関連する情報は公開されていない。しかし有志らによって日本国内においても積極的な活動が行われている。

  1. Enterprise Library日本語情報サイトの公開
patterns & practices Enterprise Library
  1. Enterprise Library日本語化リソースの提供

 マイクロソフト・アーキテクト・エバンジェリストの荒井省三氏によって、Enterprise Library Configurationのコンソール画面(構成管理ツール)を日本語化するためのリソース・ファイル(DLLファイル)が提供されている。このリソース・ファイルは、上記に示したサイト「patterns & practices Enterprise Library」から入手可能だ(ちなみにEnterprise Library日本語化リソース・ファイルの開発は荒井氏個人によって行われたものであり、マイクロソフトは一切関与していないという点をご留意いただきたい)。

 ここまで解説してきた内容から「マイクロソフトが推進するオープンソース・ライブラリ」を定義するなら、

マイクロソフトが推奨する.NET開発のベスト・プラクティスをベースにしながら、世界中の開発者によって多様な機能とサービスが構築・検証されていくことで、自由な拡張が可能なライブラリ

といえるだろう。

 Enterprise Libraryは、このような性質を持つオープンソースのライブラリであるため、「マイクロソフト以外のオープンソース・テクノロジは極力使いたくない」という開発者にも比較的受け入れられやすく、将来的には.NET開発においてオープンソースが一般的に利用されていくための足掛かりになるのではないかと筆者は期待している。

 それでは、本稿の主題であるEnterprise Libraryの内容の解説に入ろう。まずはEnterprise Libraryが生まれた背景、そしてその目的について説明していこう。

 

 INDEX
  Enterprise Library概説
  マイクロソフトが推進するオープンソース・ライブラリ
  1..NET開発ではなぜオープンソースが利用されないのか?
    2.Enterprise Libraryの目的と背景、ライブラリの構成
 
インデックス・ページヘ  「Enterprise Library概説」

ホワイトペーパーTechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?