特集Visual Studio 2005がやってきた(後編)VS 2005で変革されたASP.NET、Windowsフォーム、ADO.NETを総覧山田 祥寛(http://www.wings.msn.to/) |
|
前編そして中編では、Visual Studio 2005(以降、VS 2005)そのものが提供する新機能をはじめ、VS 2005でバージョン・アップされた開発言語Visual Basic 2005とC# 2.0の新仕様を総括した。
後編となる今回は、.NET FrameworkやASP.NET、Windowsフォーム、ADO.NETの新機能について総覧してみることにしよう。
.NET Framework 2.0の新機能
いまさらいうまでもなく、.NET Frameworkはすべての.NETアプリケーションの動作を支える基本プラットフォームである。これはアプリケーションの実行エンジンであるCLR(Common Language Runtime)からVisual BasicやC++などの言語、そしてこれら言語から共通して利用可能な基本クラス・ライブラリを含む。
.NET Frameworkに関する詳細は以下の記事が詳しいので、興味のある方は併せて参照いただきたい。.NET Frameworkもまた、VS 2005とともに2.0にバージョン・アップされ、いくつかの重要な機能追加が行われている。
■標準ビルド・エンジン「MSBuild」の搭載
MSBuild(Microsoft Build Engine)は、.NET Framework 2.0から新たに提供されたビルド・エンジンだ。Java言語による開発を行ったことがある方ならば、恐らく一度はApache Antを利用したことがあるのではないだろうか。至極単純化してしまうならば、MSBuildは.NET版Antだといってもよいだろう。
開発プロジェクトによっては、必ずしもすべての環境にVS 2005をインストールできるとは限らないが、MSBuildを利用することで、VS 2005がインストールされていない環境でも、アプリケーションのビルドを自動化できる。
MSBuildにおいてビルドの方法を定義する「プロジェクト・ファイル」(拡張子「.proj」)は、<Project>要素をルート要素とするXML形式で記述できる。以下に、C#で記述されたソース・コード「Hello.cs」をコンパイルし、実行形式「Hello.exe」を作成する、ごく基本的なプロジェクト・ファイルの例を示してみよう。
|
|
MSBuild用プロジェクト・ファイルの記述例(msbuild.proj) | |
このファイルはhello.csをコンパイルしてhello.exeを作成するためのもの。 |
<Project>要素には、0個以上の項目(入力アイテム)とプロパティ(変数)、そして、1個以上のターゲットが含まれる。ターゲットとは、配下に1個以上のタスクを含む手続きの集合だ。ここではHello.csのコンパイルを行う“compile”ターゲットが1つ含まれるだけのごく単純なプロジェクト・ファイルであるが、実際にはターゲット間に依存関係を設定したり、ビルド時に必要な情報のロギングを行ったりと、従来のバッチ・ファイルやメイク・ファイルを利用するのに比べて、はるかに柔軟な制御が簡単に記述できる。
VS 2005がプロジェクトをコンパイルする場合は内部的にこのMSBuildを利用するが、コマンド・プロンプトからでもmsbuildコマンドは実行可能だ。以下は上記のプロジェクト・ファイルをビルドした画面である。
MSBuildによるプロジェクト・ファイルの実行 |
プロジェクト・ファイルを明示的に指定しなかった場合、msbuildコマンドはカレント・フォルダから拡張子が「proj」で終わるファイルを自動的に検索して使用する。 |
■.NET Framework 2.0で追加されたクラス・ライブラリ
.NET Framework 2.0では共通クラス・ライブラリも大幅に強化されている。もちろん、そのすべてを本稿で紹介することはできないが、特に注目しておきたいクラス(名前空間)をいくつか紹介しておこう。
System.Net名前空間では、FtpWebRequest/FtpWebResponseクラスが追加された。FtpWebRequest/FtpWebResponseクラスはFTP(File Transfer Protocol)によるファイル転送機能をほぼ包括的にサポートしており、FTP機能を簡単にアプリケーションに実装できるようになった。
.NET Framework 2.0で新たに追加されたSystem.IO.Compression名前空間にも要注目だ。配下に用意されたDeflateStream/GZipStreamクラスを利用することで、ストリームやファイルの圧縮/解凍処理を行うことができる。
XMLデータを操作するためのSystem.Xml名前空間も大幅に強化された。XPathNavigatorクラスにはAppendChild、InsertBeforeなどの更新系メソッドが追加され、メモリ上のXMLデータを更新することが可能になったほか、新しいXslCompiledTransformクラスを利用することで従来のXslTransformクラスよりも高速なXSLT変換が可能になる。
また、XmlReader、XmlWriter、XPathNavigatorの各クラスにおいて、型サポートが追加されたのも注目だ。新たに追加されたReadContentAs/ReadElementContentAs(読み取り)、WriteValueメソッドなどを利用することで、もはやCLR型とXMLスキーマ型との相互変換にXmlConvertクラスを利用する必要はなくなる。
そのほか、ASP.NET、Windowsフォーム、ADO.NET関連でも多数のクラス・ライブラリが追加されているが、これらについてはあらためて後述したい。なお、新規機能の追加によって、.NET Framework 2.0で非推奨となった機能も多く存在する。非推奨APIについては、以下のページが詳しいので、併せて参照されたい。
.NET Framework V2.0 Obsolete API List
INDEX | ||
[特集]Visual Studio 2005がやってきた(前編) | ||
さらに進化した統合開発環境の主要な新機能を総括 | ||
1.VS 2005で作成可能なアプリケーションの種類 | ||
2.統合開発環境としての新機能(1) | ||
3.統合開発環境としての新機能(2) | ||
[特集]Visual Studio 2005がやってきた(中編) | ||
VS 2005で新しくなったVisual BasicとC#の新機能を総括 | ||
1.VS 2005で使用可能な言語/部分クラス/ジェネリック | ||
2.Nullable型/プロパティのアクセシビリティ/My機能/Usingステートメント/既定インスタンス | ||
3.反復子(イテレータ)/匿名メソッド/静的クラス | ||
[特集]Visual Studio 2005がやってきた(後編) | ||
VS 2005で変革されたASP.NET、Windowsフォーム、ADO.NETを総覧 | ||
1. .NET Framework 2.0の新機能 | ||
2. ASP.NET 2.0の新機能 | ||
3. Windowsフォーム 2.0の新機能&ADO.NET 2.0の新機能 | ||
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|