解説ASP.NETで学ぶVisual Studio .NETの魅力第5回 Visual Studio .NETのヘルプ機能で開発を効率化 山田 祥寛 |
|
|
豊富なクラス・ライブラリを使い倒す
「APIリファレンス」のすべて
レガシーなASPと比較して、ASP.NETでは利用できるクラス部品の数が格段に増加した。これをもってASPに比べると、初心者に対する敷居が高くなったととらえる向きもあるが、これはナンセンスな議論であろう。ASP.NETでも、レガシーASPと同レベルの要件を満たそうと思うならば、ASPと同程度の学習負荷で開発を行えるはずであるし、レガシーASPを使うという解決法もある。少々突き放しているように思われるかもしれないが、それがASP.NETがASP 4.0ではないゆえんなのだ。極端な話、小規模なシステムではレガシーASPを、中〜大規模なシステムではASP.NETをというように、(特に現在のような移行期においては)まったく異なる技術として適用局面を切り分けるという選択肢すらあると筆者は考える。
閑話休題。かつてに比べて、格段に豊富となったASP.NET(というよりも、.NET Framework)のクラス・ライブラリを使いこなすためには、クラス・ライブラリのドキュメント(APIリファレンス)をきちんと読みこなす能力を培うことが必要不可欠である。
ところが、このAPIリファレンスは豊富な仕様をコンパクトに記述しているが故に、読み解くだけでもちょっとしたコツを必要とする。残念ながら、書式に慣れないうちは、構文規則1つ読み解くにも苦労してしまうし、ましてや、関連するトピックスを探すにも思うに任せないことが多い。
しかし、だからといってあきらめないでほしい。APIリファレンスの習熟は(APIの習熟ではない)、すべての開発に先立つ大前提となるものでもある。入門書のサンプルを改変するまでしかできない日曜開発者か、それとも、要件に応じて自らソリューションを導出できる開発者に仲間入りするか――その分かれ目はすべて「APIリファレンスを使いこなせるか」の1点にかかっているといっても過言ではない。
また、APIリファレンスを学習するということは、「.NET」の根本の概念(構成要素)を知るということにも等価であり、これまで局所的な学習しかできなかった初心者にとっては、一気に包括的な(かつ自発的な)学習を可能とする手掛かりでもある。
■クラス・ライブラリの構造を知る
「.NET」のクラス・ライブラリは、機能役割別に「名前空間」という概念でカテゴライズされている。いまさら説明の必要はないかもしれないが、名前空間とは、膨大に存在するクラスやインターフェイスなどの名前を、ほかで定義された名前空間と区別するための領域をいう。例えば、Formクラスには、System.Windows.Forms名前空間に属するものとSystem.Web.UI.MobileControls名前空間に属するものとがあり、クラス名だけでは両者を区別することができない。もちろん、双方の用途も配下のメソッド群もまったく異なるものである。が、System.Windows.Forms.Formのように名前空間を含む完全修飾名を用いることで、両者を区別することができる。例えていうならば、ファイルシステムにおいてフォルダ(ディレクトリ)という概念がなければ同一のファイル名を使用することはできないが(これは大変不便なことであろう)、フォルダを分けることで同一のファイル名を使えるのにも似ている。
この名前空間がクラス・ライブラリにおけるトップの概念と思っておこう。
クラス・ライブラリのドキュメントで名前空間を調べる |
「.NET Framework SDKドキュメント」のメニューから「リファレンス」−「クラス・ライブラリ」とたどっていくことで、すべての名前空間の一覧を参照することができる。 |
試しに、この名前空間からSystem.Data.Odbc名前空間を選択してみよう。
System.Data.Odbc名前空間の説明を表示 |
名前空間に関する概要と、名前空間に属するクラス/インターフェイス/デリゲート/列挙体の一覧が表示される。 |
ASP.NET初心者の方は、このクラス一覧を表示するページ・レベルで、以下に挙げるような名前空間とクラス群の概要をつかんでおくと、全体的な機能構成を理解することができ、のちのちの理解も深まるはずだ。
名前空間 | 概要 |
System.Collections | リスト、キュー、ビット配列、ハッシュテーブル、ディクショナリなど、さまざまなコレクションを定義 |
System.Data | 複数のデータ・ソースを管理・操作する機能群 |
System.Data.OleDb(System.Data.SqlClient) | OLE DB(SQL Server)データ・ソースにアクセスする機能群 |
System.IO | ファイルやストリームの読み書きに関する機能群、またファイル/フォルダに関する基本サポート |
System.Text | 文字エンコーディングそのもの、および変換に関する機能群 |
System.Text.RegularExpressions | 正規表現 |
System.Web | サーバ/クライアント間の通信を制御する機能全般(特にHttpRequest、HttpResponse、HttpServerUtilityなど) |
System.Web.UI.HtmlControls | HTMLサーバ・コントロール |
System.Web.UI.WebControls | Webサーバ・コントロール |
System.Xml | XMLサポート(XML 1.0、XML名前空間、XSDスキーマ、XPath、XSLT、DOM1/2) |
名前空間とクラス群の概要 |
INDEX | ||
ASP.NETで学ぶVisual Studio .NETの魅力 | ||
第5回 Visual Studio .NETのヘルプ機能で開発を効率化 | ||
1.オペレーションに即応する「ダイナミック・ヘルプ」 | ||
2.従来からある「目次」、「キーワード」ヘルプを使いこなせ | ||
3.APIリファレンスでクラス・ライブラリの構造を把握する | ||
4.機能をカプセル化する「クラス」/クラスを生成する「コンストラクタ」 | ||
5.属性情報を保持する「プロパティ」/動作を制御する「メソッド」 | ||
「解説:ASP.NETで学ぶVisual Studio .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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|