.NET「本音」相談室(第2回)

Q3:フレームワークとは何でしょう?

塩田 紳二
2008/04/03

フレームワークとは何でしょう?

 .NET Frameworkの話をするときに、この「フレームワーク」という考え方は避けて通れない。以前に、.NET Frameworkとは、新しいAPIセットだという話をしたが、ではなぜ.NET APIと呼ばないのだろうか? .NET Frameworkは、アプリケーションの作り方など、APIよりも、もう少し広い範囲をカバーするものだからだ。

 一般に日本語では、フレームワークは「枠組み・骨格」などと訳されるが、これだけでは漠然としてあまり意味が分からないだろう。もう少し厳密にいうと、「枠組み」とは、例えばビルを建てるときに使う、コンクリートを流し込むための型枠のようなものだ。つまり、フレームワークとは、何かを作ったり、何かをしたりするときの外枠のような役目を持つものを指している。

 一般に何かを作ろうとするとき、何もかも自由に作るよりも、一定の外枠を先に決めておいた方がまとまりやすいことが多い。また、同じようなものをくり返し作るなら、外枠があれば、準備がしやすいし、あらかじめ必要なものを用意することができる。何を作るのかがまったく自由だとすると、あらかじめ必要なものを用意することは難しい。

 ここは大胆に、プログラミングがテレビのドラマ制作だと仮定すると、例えば「時代劇」などのジャンルがフレームワークに相当する。時代劇といっても、恋愛ドラマもあれば、喜劇や大河ドラマのようなものがある。時代劇だからといって、作るドラマの内容やパターンはそれほど制限されない。つまり、枠組みは、一定の範囲は決めるけれど、制作物全体を完全に拘束するわけではない。

 しかし、ドラマのジャンルが時代劇と決まれば、着物や刀などの小道具を予め用意することができるし、京都の撮影所のように、江戸時代の街を再現したセットを異なる複数の時代劇である程度使い回すこともできる。「時代劇」というフレームワークに対して、さまざまなツールや環境が用意されているわけだ。逆にいうと、小道具なしの時代劇があり得ないように、フレームワークには、開発環境や部品、パターンなどが必須なのだ。

 プログラミングでのフレームワークも、これと同じように、実行環境や必要なAPI、開発環境などがセットで用意される(べきものである)。

 時代劇には、討ち入りとか、合戦とか、敵討ちのようなパターンがある。必ずしもパターンを使う必要はないが、パターンを使うことで、ドラマ自体は作りやすくなる。時代劇というジャンルがドラマの外枠だとすると、パターンは、ドラマの骨組みのようなものだといえる。「年末の時代劇なら『討ち入り』」のように、パターンはジャンルとある程度の関係を持っている。「討ち入り」というパターンはほかのドラマでも使われるが、「時代劇」という枠組みから出てきたもので、「時代劇」という枠にぴったりとはまるものだ。

 ソフトウェアのフレームワークは、APIの組合せでできた、便利な「部品」を提供している。例えば、「データベースを検索して結果を表にする」といった機能を簡単に実現できるような「部品」が提供される。これらを組み合わせて使うことで、プログラミングが簡単になる。プログラムを作ることが「どうやって作るか?」ではなく、パズルのように部品を「どう組み合わせて作るか?」という少し単純な問題になるのだ。

 つまり、.NET Frameworkとは、アプリケーションの枠組みであると同時に、こうしたパターンや部品、そして開発環境やツールなどを含んでいるから、Frameworkと名乗っているのである。End of Article

フレームワークのはたらき
「時代劇」という枠を決めて、その中でパターンを組み合わせてドラマを作るようにソフトウェアも枠を作り、部品の組合せでソフトウェアを作れるようにする。枠が決まることで必要な部品などもあらかじめ用意できる。

 

 INDEX
  .NET「本音」相談室(第2回)
    Q1:.NETには、いつ移行するのでしょうか?
    Q2:.NETはいますぐ導入しなければなりませんか?
  Q3:フレームワークとは何でしょう?
Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

スキルアップ/キャリアアップ

.NET管理者虎の巻

- PR -
- PR -