本書は、.NET Frameworkをボトムアップの手法で解説しているユニークな書籍である。著者であるJeffrey Richter氏は1999年からMicrosoft社内の.NET
Framework開発チームに外部コンサルタントとして参加し、設計から実装にいたるすべての局面でチームに助言を与えてきた人物である。.NET Framework開発チームのオールスターが本書に推薦文を寄せていることからも、Richter氏の果たした役割が分かるだろう。
そのRichter氏が執筆した本書は、これまでに出版されているほかの書籍とは一線を画す内容となっている。本書はC#言語や.NET Frameworkクラス・ライブラリの内容や呼び出し方法などの、「シンプルなアプリケーションの開発方法」を解説する書籍ではない。開発されたアプリケーションがどのような環境で実行されるのかを念頭に置きながら、.NET
Framework上で動作するプログラムをどのように記述し、配布し、実行し、監視すれば、最適なアプリケーションが開発できるのかを説明している。.NET Frameworkの内部構造を設計書やソース・コードのレベルで知っている著者だからこそ書ける「内部知識」が満載である。何しろ、.NET
Framework中に散在する、Microsoftの開発者たちが埋め込んでしまった「バグ」についてさえ随所で指摘しているのだ。
本書は5部構成になっている。第1部では、まず開発されたアプリケーションがどのように動作するのかを詳細に解説している(この点は、本サイトでの連載「インサイド.NET Framework」の解説手法と非常によく似ている)。
第2部では、.NET Frameworkで動作するすべてのプログラムの基礎となる「型」についての詳細な解説が行われる。@IT Insider.NETフォーラムを定期的に読んでいる読者なら、誰もが「System.Object」型の存在を知っているだろう。だが、この型に用意されているメソッドがどんな構造で実装されていて、われわれ開発者がそれをいつオーバーライドしなければならないのか、正確に把握できているだろうか。ぜひ本書の第6章でそれを確認してほしい。
第3部では、型に定義できるメンバについての解説を行っている。プロパティ、イベントなどの.NET Frameworkで特徴的な構造がどのように実装されていて、さらに重要なことに、それらをどのように扱えば実効効率のよい型を作ることができるのかがまとめられている。特に第11章「イベント」の解説は必見だ。WindowsフォームやWebフォームに配置されるコントロールにおいて、イベントの扱いがどのように最適化されているのか、詳しく解説されている。
第4部では、文字列、配列、属性、デリゲートなど、.NET Frameworkにあらかじめ用意されている「型」について、他所では見られない詳細な解説が加えられている。デリゲートの内部構造や、文字列比較を効率よく行う方法など、.NET Frameworkのインサイド情報が詰まっている。
第5部は本書の中で最も多くのページ数が割かれており、例外処理、ガーベジ・コレクション、AppDomainとリフレクションについて、それぞれの章で包括的な解説を行っている。.NET
Frameworkでは構造化例外処理を行うことが必須となっているが、いつ例外を発生させればいいのか、例外を捕捉したあとで何をするのが正しいのか、といった根本的疑問に関する「目から鱗」な指針を示してくれる。また、第19章のガーベジ・コレクションの解説は著者の十八番であり、世界中でこの内容をここまで詳細に解説できるのは本書の著者だけといっても過言ではない。
解説で使われるサンプル・ソース・コードは、C#とCIL(Common Intermediate Language)で書かれている。だが、ソース・コードを示すことが本書の目的ではないので、ほかの言語のユーザーであっても読み進むために苦労することはないだろう(ちなみに米国では本書のVB.NET版『Applied
Microsoft .NET Framework Programming in Visual Basic.NET』が出版されている)。
ひと言でいおう。本書はMicrosoft .NET Framework上でプログラムを書くすべての開発者が机の上(書棚ではない!)に置いておくべき必携の書である。Insider.NETフォーラムでC#やVB.NETなどの言語を習得してしまい、.NET
Frameworkの真髄に興味がわいてきたちょうど今ごろが、本書を手に取る最適の時期だといえるだろう。
(インフォテリア株式会社 吉松 史彰)
|