トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション
株式会社ヤザワ
矢沢久雄
第1回 .NETって何でしょう?
はじめに
デベロッパーから見れば、.NET=.NET Framework
.NET Frameworkの特長
.NET対応アプリケーションの種類
おわりに

はじめに
2002年3月22日に、いよいよVisual Studio .NET日本語版がリリースされました。Visual Studio .NETは、マイクロソフトが提唱する次世代インターネットのためのアプリケーション実行環境である.NET Frameworkに対応した新しい開発ツールです。.NET(ドットネット)によって、アプリケーションの開発スタイルや実行方法が、天と地がひっくり返るほど(大げさですが)変ります。.NETという言葉だけは知っているけど、そのうちやればいいかなぁ...などとのんびり構えている人はいませんか? そんなことじゃ、技術のトレンドに乗り遅れちゃいますよ。
.NETでは、現状のSQL Server 2000/7.0をそのまま使えますが、データアクセスのためのオブジェクトは、ADOからADO.NETに変りました。Webアプリケーションの実行エンジンは、ASPからASP .NETに変りました。Windowsアプリケーションの作成方法やコントロールの仕組みもまるきり変りました。インターネットでコンピュータを相互に連携させるXML Webサービスという新しい技術が登場しました...ほらほら、だんだん不安になってきたでしょう。
でも大丈夫、心配しないでください。何事にも言えることですが、基本をしっかりマスターしてしまえば、新しい技術なんてぜんぜん怖くないものです。この連載では、誰にでも理解できるやさしい言葉で.NETの基本を説明させていただきます。どうせ勉強するなら楽しくなくっちゃいけませんね。るんるん気分で行きましょう。そこで、 連載のタイトルを「るんるん.NET」とさせていただきました。それでは、はじめましょう!
デベロッパーから見れば、.NET=.NET Framework
そもそも.NETとは何でしょう? マイクロソフトのWebページを「.NETの定義」で検索したところ、以下がヒットしました(http://www.microsoft.com/JAPAN/net/whatis.aspから抜粋)。

.NETの定義
簡単に述べれば、.NETはMicrosoftのXML Webサービスのためのプラットフォームです。XML Web サービスにより、アプリケーションはオペレーティングシステムやプログラミング言語の種類を問わず、インターネット上で通信を行い、データを共有することができます。

「.NET=XML Webサービスのためのもの」と定義しているわけですが、これはXML Webサービスという新しい技術をPRした(ちょっとばかり)コマーシャル的な表現ですね。皆さんのようなデベロッパーから見れば、「.NETとは.NET Frameworkのこと」であり、.NET Frameworkの一機能としてXML Webサービスを実行する環境があると考えた方がわかりやすいしょう。それでは、.NET Frameworkとは何でしょう?
.NET Frameworkは、アプリケーションの「実行エンジン」と「クラスライブラリ(プログラムの部品)」を提供するプログラム群です。現状のアプリケーションは、WindowsというOSの上で動作しているわけですが、さらにWindowsの上に.NET Frameworkを置き、そこで.NET対応アプリケーションを動作させるようになっています。.NET対応アプリケーションには、XML Webサービスだけでなく、WindowsアプリケーションやWebアプリケーションなどがあります。これらは、.NET Frameworkが提供する新しいクラスライブラリを使って作成されます(図1)。


図1 .NET FrameworkはOSの上に存在する実行環境である

新しい技術が登場するのは、従来の技術に問題があるからです。Windowsは、スタンドアロンOSとして誕生し、C/S型のネットワーク機能を追加し、さらにインターネットに対応してきました。この進化の過程の中で、様々な技術が生み出され、現状それらが混沌とした状態に陥っています。つまり複雑なのです。Windowsの複雑さを解決する整然とした開発手法と実行環境を提供するために.NET Frameworkが登場したわけです。

.NET Frameworkの特長
.NET対応アプリケーションは、コンパイル後に中間コード(MSIL=Microsoft Intermediate Languageと呼ばれる)に変換されます。.NET Frameworkの実行エンジン(CLR=Common Language Runtimeと呼ばれる)は、中間コードをネイティブコードにJIT(Just In Time)コンパイルしてから実行します。(図2)。

図2 .NET対応アプリケーションが動作する仕組み

中間コードは、特定のハードウエアやOSに依存しません。現状では、Windows(NT 4.0/2000/XP)版の.NET Frameworkだけがリリースされていますが、間もなくWindows CE版もリリースされる予定です。Unix系のOSであるFreeBSD版の.NET Frameworkの開発も進められています。.NET対応アプリケーションには、様々な環境で実行できるポテンシャルがあるのです。これは、Javaの"Write Once Run Anywhere(一度アプリケーションを記述すれば、それがどこでも動作する)"と同様です。
移植性の高い中間コードを採用し、アプリケーションを効率的に作成できる様々なクラスライブラリを提供し、インターネットアプリケーションを開発できるという類似点があることから、.NETはJavaとよく比較されます。どちらが優れているかは、人によって意見が様々ですが、絶対的に.NETが優れている点があります。それは、Javaでは何をするのにもJavaというプログラミング言語を使わなければならないのに対し、.NETならVisual C#、Visual Basic .NET、Visual C++ .NET、およびNet COBOL(富士通が開発した.NET対応のCOBOL)など、デベロッパーの得意なプログラミング言語を選択して使えるということです。さらに、どのプログラミング言語を使っても、コンパイル後には同じ形式の中間コードとなるので、異なるプログラミング言語で作成された複数のモジュールを組み合せて1つのアプリケーションを完成させること(これをクロスランゲージ開発と呼ぶ)も可能です(図3)。

図3 .NETはクロスランゲージ開発が可能だ

.NET対応アプリケーションは、レジストリ(Windows固有のシステムデータベース)を一切使わずに動作します。これによって、アプリケーションの配布が容易になります。.NET対応アプリケーションは、基本的にファイルをコピーするだけでインストールできます(これをXCOPYインストールと呼ぶ)。アンインストールは、ファイルを削除するだけです。
.NET Frameworkは、新しいDLLファイルをインストールすることで、既存のアプリケーションが動作しなくなってしまう「DLL地獄」と呼ばれる問題を解決しています。アプリケーションが使用したメモリを自動的に開放する「ガベージコレクション」の機能を装備しているので、「メモリリーク」と呼ばれる問題も解決しています。

このように説明すると、「.NETなら何もかもいいことづくめ」のようですが、その代償もあります。それは、.NET対応のプログラミング言語(新たに開発されたものと、従来のプログラミング言語の機能を拡張したものがあります)の構文と、.NETのクラスライブラリの使い方を覚えなければならないことです。いろいろと新たに勉強することが多くて大変なのですが、努力に見合ったメリットがあります。努力の先には、楽があるのです。Windowsデベロッパーに久々に訪れた一大技術変革なのですから、大いに楽しもうではありませんか!

.NET対応アプリケーションの種類
Visual Studio .NETを使えば、.NET対応アプリケーション(すなわち.NETのクラスライブラリを使い、コンパイル後に中間コードとなるプログラム)を作成できます。Visual Studio .NETが提供するプログラミング言語は、.NETのために新たに開発されたVisual C#と、従来からあるプログラミング言語の機能を拡張したVisual Basic .NETおよびVisual C++ .NETの3つです。Visual C++ .NETは特殊な存在なので(説明すると混乱を招くことになるので省略します)、皆さんの多くは、Visual C#またはVisual Basic .NETのいずれかを使うことになるでしょう。
表1は、Visual C#またはVisual Basic .NETを使って作成できるプログラムの種類です。これを見れば、.NET対応アプリケーションとは何かがわかるでしょう。なお、どちらのプログラミング言語でも、作成できるプログラムの種類と品質(実行速度が速いかどうか、プログラムのサイズが小さいかどうかなど)に違いはありません。なぜなら、同じクラスライブラリを利用した使ったプロググラムとなるからです。従来のように、「Visual Basicを使ったプログラムは、効率的に開発できるが、サイズが大きく実行速度が遅い」などと言われることはありません。皆さんの中には、Visual Basicプログラマが多いことでしょう。.NETでは、胸を張ってVisual Basic .NETを使ってください。今後の連載で示すサンプルコードもVisual Basic .NETで示します。

表1 Visual C#またはVisual Basic .NETで作れるプログラムの種類

プログラムの種類 機能
Windowsアプリケーション 従来と同様の外観のWindowsアプリケーション
クラスライブラリ 他のアプリケーションから利用される非ビジュアルなコンポーネント
Windowsコントロールライブラリ Windowsアプリケーションから利用されるビジュアルなコンポーネント
ASP .NET Webアプリケーション Webブラウザをユーザーインターフェイスとしたアプリケーション
ASP .NET Webサービス XML Webサービスのこと
Webコントロールライブラリ Webアプリケーションから利用されるビジュアルなコンポーネント
コンソールアプリケーション コマンドプロンプトで動作する文字ベースのアプリケーション
Windowsサービス 常駐プログラム(従来NTサービスと呼ばれていたもの)


●おわりに
これで皆さんも.NETが何なのかを語れるようになりましたね。次回からは、.NETによって、アプリケーションの開発手法がどのように変るかを説明します。簡単に結論を言ってしまえば、「従来に比べて楽に開発できるようになった」ということに尽きます。データベースアクセス手法、Windowsアプリケーション開発手法、Webアプリケーション開発手法、そしてXML Webサービス開発手法を順次取り上げます。どうぞお楽しみに!



< 今後の予定 >


第2回 データベースオブジェクトがADO .NETに変ったんですよ!
ADO .NETのコンセプトと、基本的な使い方を説明します。ADOとの違いがわかります。
第3回 WindowsアプリのことをWindows Formsアプリって言うんですよ!
Windowsアプリケーションの構造と作成方法を説明します。何が変ったかがわかります。
第4回 ASPがASP .NETに変って何でもかんでも楽になっちゃった!
Webアプリケーションの構造と作成方法を説明します。何が変ったかがわかります。
第5回 XML Webサービスは、.NETの目玉商品なんです!
XML Webサービスのコンセプトと、基本的な作成方法を説明します。あなたのアイディアが広がります。
PASSJメールニュース 著作権ついて プライバシーポリシー リンクポリシー お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.