連載
» 2010年06月07日 00時00分 公開

プログラマが知っておきたいJavaと.NETの違いJavaから見た.NET(1)(2/4 ページ)

[高山智史,株式会社クロノス]

.NETプラットフォーム、6つの主な特徴

 .NETプラットフォームは、マイクロソフトが提供する.NET Frameworkに基づく、Windowsアプリケーション、WebアプリケーションおよびWebサービスの開発・実装・運用を支援するための環境です。.NET Frameworkと、Windows Server上のIISなどの.NETに対応した各種のWindows Server Systemなどで構成されています(制限はありますが、「Mono」というオープンソースソフトウェアを使えば、LinuxやMac OS XといったさまざまなOSで.NETアプリケーションを動かすことも可能)。

 .NET Frameworkとは、.NETに対応したアプリケーションを開発、実行するためのフレームワークです。プラットフォーム層(OSや、モバイルデバイスなどの各種デバイス)の上で実行される「共通言語ランタイムCLR)」と、そのランタイムの上で実行されるアセンブリ(または、クラスライブラリ)の2つの主要なコンポーネントで構成されます。

図1 .NET Frameworkにおける動作の概念 図1 .NET Frameworkにおける動作の概念(書籍「.NET開発テクノロジ入門~.NETの基礎からクラウドテクノロジ Windows Azureまで」日経BPソフトプレス刊より引用)

【1】Common Language Runtime(CLR)

 .NET Framework上で開発されたプログラムの実行環境です。CLRの特徴としては、CLR用の言語すべてで共通する型システムの規定、ガベージコレクション、JITコンパイルなどがあります。JavaでいうところのJava仮想マシン(JVM)に相当します。

 CLR上で動作するプログラムは「アプリケーションドメイン」という独自の処理単位で実行されます。1プロセスの中に型やセキュリティを管理する単位としてアプリケーションドメインという器を作成し、その中で独立して処理を実行させます。これにより1つのプロセスの内部で複数のアプリケーションが実行可能となりました。

 CLRを細かく分割すると、以下のようになります。

図2 Common Language Runtimeの構成 図2 Common Language Runtimeの構成(書籍「Microsoft .NET入門—これだけ知っておけばなんとかなる.NETの基礎知識」アスキー刊より引用)

【2】クラスライブラリ

 .NETで提供されているクラスライブラリの大きな特徴は、CLR上で動作するすべてのプログラミング言語が同じライブラリを利用できます。つまり、Visual C++Visual BasicVisual C#などは同一のクラスライブラリを共有します。これにより、複数言語で開発する際に生じる言語間のライブラリの差異を吸収できます。

 .NET Frameworkが提供するクラスライブラリは数多くの「名前空間」によって分類・構成されています。

 以下が.NET Frameworkで使用される名前空間の概要です。

表2 .NET Frameworkで使用される名前空間
機能 名前空間 概要
基礎 System
System.IO
System.Security
System.Collection
System.Transaction
.NET Frameworkに共通、かつ基本的な処理を実現するクラスライブラリ
CLRが提供する基本機能へのインターフェイス
データ
XML
LINQ
System.Data
System.Data.Linq
System.Xml
System.Xml.Linq
データアクセスのための一覧のクラスライブラリ
通信 System.net
System.Messaging
System.Web.Service
ソフトウェアコンポーネント通しの通信処理を扱うクラスライブラリ
ワークフロー System.Workflow モデル駆動なプロセスを実現するためのWindows Workflow Foundationのテクノロジを使った実装のためのクラスライブラリ
UI Windowsフォーム System.Windows.Forms
System.Drawing
System.Media
Windows ベースのアプリケーションを作成するためのクラスライブラリ
WPF(Windows Presentation Foundation) System.Windows
System.Windows.Controls
System.Windows.Document
イメージ、ビデオ、アニメーション、3Dなどのリッチなプレゼンテーションを統一的に構成できるクラスライブラリ
ASP.NET ystem.Web
System.Web.UI
System.Web.Security
Webアプリケーションを構築するためのクラスライブラリ

【3】中間言語

 .NETでは、中間言語(Microsoft Intermediate Language、MSIL)が採用されています。プログラム実行時にプログラムで使用されているクラスを、クラスローダがロードしてメモリ上に配置します。このとき、コードがタイプセーフかどうかのチェックも行われます。その後、メソッドが呼び出されると、JITコンパイラが中間言語をネイティブコードに変換し実行します。

【4】ASP.NET

 動的なWebサイトやWebアプリケーションやXML Webサービスを作成し、運用するためのフレームワークです。.NETでは、Visual Studioを利用して開発したWebアプリケーションやXML WebサービスなどのASP.NETアプリケーションは、IIS上で実行されクライアントに提供されます。ASP.NETには、以下のような特徴があります。

  • Webフォームによる自動クライアントサポート
  • サポート言語の多様さ
  • UIとロジックの分離
  • キャッシング機構の改善

 ASP.NETを使用することで、個人規模のWebサイトからエンタープライズクラスの大規模なWebアプリケーションまで、さまざまな規模のWebアプリケーションを構築できます。

【5】Silverlight

 .NETではRIAを作成するための技術としてSilverlightがあります。SilverlightはWebブラウザのプラグインの形式で提供されており、簡単に環境構築が可能です。

 大きな特徴として、マルチプラットフォーム、マルチブラウザである点が挙げられます。OSとしては、WindowsとMac OS Xの双方に完全に対応しており、WebブラウザInternet ExplorerFirefoxSafariなどに対応しています。

【6】分散コンピューティング技術

 .NET Framework 2.0まではASMXASP.NET Webサービス)、.NET Remoting(.NETリモート処理)、Enterprise ServiceDCOM/COM+/COM+ベースの分散テクノロジ)、Web Service Enhancements(Webサービスの拡張サポートライブラリ)、MSMQ(キューを介したメッセージベースの通信)などのテクノロジが要件に応じて別々に提供されていました。

 .NET Framework 3.0以降はこれらの技術を統一的な手法で利用可能な「WCFWindows Communication Foundation)」のテクノロジを使用できます。WCFによって、WS-*やSOAP、RESTなど業界標準プロトコルをサポートし、ほかのプラットフォームとの相互運用性が向上しました。また既存のマイクロソフトの分散テクノロジもWCFに移行せずに運用できます。

 「.NET RIA Services」というRIAでn階層の業務アプリケーションを作成するためアプリケーション基盤もあります。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。