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

Q3:どうしていま、.NETなのか?

塩田 紳二
2007/10/31

なぜいま.NETが必要なのですか?

 この質問に答えるのは、大変難しい。なぜなら、.NETが何だかよく分からないのに、「必要だ」といわれてもきっと納得できないだろうからだ。というわけで、質問をいい換えてみることにしよう。

 「.NETとは何ですか?」で、.NET構想とは、.NET技術を普及させるためのもので、.NET技術とは「.NET Framework」のことだと述べた。そして、.NET Frameworkは、新しいAPIセットである。というわけで、この質問をいい換えるならば、「なぜ、APIセットを変更する必要があるのか?」ということになる。

 そもそもAPIセットとは何か? これは、「オペレーティング・システム(OS)」(この場合はWindows)がアプリケーションに対して提供する機能の集まりだ。アプリケーションともなれば、ファイルをアクセスしたいだろうし、画面に文字やグラフィックスも表示させたい。ユーザーからのキー入力をもらいたいだろうし、ボタンを出してユーザーに押してもらいたいだろう。こうしたアプリケーションの希望を実現するのがOSの役割だ。OSとは、究極的には、アプリケーションのために存在するという見方もできる。まあ、OfficeなどのアプリケーションがなければWindowsも不要だろう。

 これまでのWindowsでは、APIセット(Win32 API)は、基本的にはWindowsのバージョンとともに変化し、さらに、マイクロソフトなどが提供するソフトウェア・アップデートや追加ソフトウェア・モジュールが登場するたびに、部分的にではあるが変化してきた。簡単にいうと、増改築、建て増しを繰り返してきた温泉旅館みたいな構造になってしまっている(同様の構造は、アドミンくんのマンガにもなっている)。また、APIは、Windowsのバージョンや追加モジュールの有無で使える使えないが決まってしまう。つまり、APIセットは、Windowsのバージョンと深くかかわっており、ある意味APIセットがWindowsそのものであったわけだ。

 もう1つ、APIセットの設計が古かったためか、計画外の増強が続いた結果なのか、APIの組み合わせにも制限ができてしまった。例えばWindowsでは、ウィンドウに文字を表示させることも、画像を表示させることも、非常に簡単で、わざわざコンパイラなどを使わずとも、スクリプト系の言語で簡単に行える。しかし同じウィンドウの中で、映画の字幕みたいに動画の上に文字を表示させるのは、簡単にはできない。絶対できないわけではないが、かなり大変である。

 そこで登場したのが.NET Frameworkというわけだ。簡単にいえば、この.NET Frameworkは、これまでのWindowsの機能を考慮しつつ、ゼロからきれいに作り直したAPIセットなのである。だから、これまでのAPIのような組み合わせ問題もなければ、同じことをやるのにもっとすっきりしたプログラムを作ることができる。

 また、.NET Frameworkは、Windowsから独立したひとまとまりのAPIセットだ。Vistaのように最初から搭載されているWindowsもあれば、Windows 2000のように標準では搭載されていないものもある。しかしWindows 2000に対し、.NET Frameworkを後から追加することはできる。.NET Frameworkは、OS自体のバージョンからは独立しているのである(ただし、使えるのはWindows 2000以降のWindowsのみだが)。このため、.NET Framework用のアプリケーションは、Windowsのバージョンの影響を受けにくい。

 簡単にいうと、Win32はもう古いので、これを後生大事にするよりは、きれいに整備された新しい.NET Frameworkへ移行した方がいいということである。これまでのAPIセット(Win32)が、建て増しを繰り返してきた建物だとしたら、.NET Frameworkは、フロア構成が自由に変更できる最近のオフィスビルのようなものだ。

 これまでのWindowsのAPIセットは、無意味ではないものの、もう古くて、拡張も大変だし、今後のことを考えると、ここらでリセットして新しいものに切り替えたいというのがマイクロソフトの本音だ。ただしこれは、今後のソフトウェア開発に大いにメリットがあるので、マイクロソフトだけでなく、すべてのアプリケーションにとっても価値がある。とはいえ、開発者は新しいAPIセットや開発方法に慣れる必要はある。

 アプリケーション開発者以外にはメリットはないのかというと、.NET Frameworkを使うことで、これまでのアプリケーションに対して課せられてきた制限がなくなるため、より便利になる(はずである)。また、セキュリティもより堅固になる。細かくは別の機会に解説するが、.NET Frameworkでは不正なコードが実行されにくい。また、プログラマーの間違い(アプリケーションのバグ)がシステムなどに影響を及ぼしにくい。

 このように、.NETを使うメリットはある。ただし、必要性が自明かといえば、必ずしもすべてのユーザーが手放しでは納得しないだろう。Win32がすぐになくなるわけではない。従って.NET Frameworkを使いたくなければ、当面は使わずに済ますことができる。しかし、この問題、当事者は、マイクロソフトなのだ。少なくともマイクロソフトは、今後もWindowsを発展させ続けるためには必要だと考えている。いつの間にか16bit Windows(Windows 3.xやMe)が32bit Windows(Windows NT、2000、XP、Vista)に切り替わったように、いつかは.NETの時代がくる。エンジニアとして、そのことは、頭の片隅にでも置いておいた方がいいだろう。End of Article

最初からそんなつもりではなかったかもしれないが、結果としてWin32は、ときどきの要求に応じて拡張を繰り返した結果、迷路のような温泉旅館になってしまった(左)。これに対し.NET Framework(右)は、それまでの経験と、今後の発展性を踏まえたうえで、必要な要件を備えた新しいオフィスビルだといえる。


 INDEX
  .NET「本音」相談室(第1回)
    Q1:.NETとは何か?
    Q2:.NETはなぜ分かりにくいのか?
  Q3:どうしていま、.NETなのか?
Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

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

.NET管理者虎の巻

- PR -
- PR -