プログラマが知っておきたいJavaと.NETの違い:Javaから見た.NET(1)(2/4 ページ)
システム開発がますます複雑化していく中、エンジニアには、テクノロジを理解して、さまざまな場面に適した選択が求められます。本連載では、Javaと.NETの基本的な仕組みから最新の傾向や技術などについて、数回に分けて紹介します
.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】Common Language Runtime(CLR)
.NET Framework上で開発されたプログラムの実行環境です。CLRの特徴としては、CLR用の言語すべてで共通する型システムの規定、ガベージコレクション、JITコンパイルなどがあります。JavaでいうところのJava仮想マシン(JVM)に相当します。
CLR上で動作するプログラムは「アプリケーションドメイン」という独自の処理単位で実行されます。1プロセスの中に型やセキュリティを管理する単位としてアプリケーションドメインという器を作成し、その中で独立して処理を実行させます。これにより1つのプロセスの内部で複数のアプリケーションが実行可能となりました。
CLRを細かく分割すると、以下のようになります。
【2】クラスライブラリ
.NETで提供されているクラスライブラリの大きな特徴は、CLR上で動作するすべてのプログラミング言語が同じライブラリを利用できます。つまり、Visual C++、Visual Basic、Visual C#などは同一のクラスライブラリを共有します。これにより、複数言語で開発する際に生じる言語間のライブラリの差異を吸収できます。
.NET Frameworkが提供するクラスライブラリは数多くの「名前空間」によって分類・構成されています。
以下が.NET Frameworkで使用される名前空間の概要です。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
【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 Explorer、Firefox、Safariなどに対応しています。
【6】分散コンピューティング技術
.NET Framework 2.0まではASMX(ASP.NET Webサービス)、.NET Remoting(.NETリモート処理)、Enterprise Service(DCOM/COM+/COM+ベースの分散テクノロジ)、Web Service Enhancements(Webサービスの拡張サポートライブラリ)、MSMQ(キューを介したメッセージベースの通信)などのテクノロジが要件に応じて別々に提供されていました。
.NET Framework 3.0以降はこれらの技術を統一的な手法で利用可能な「WCF(Windows Communication Foundation)」のテクノロジを使用できます。WCFによって、WS-*やSOAP、RESTなど業界標準プロトコルをサポートし、ほかのプラットフォームとの相互運用性が向上しました。また既存のマイクロソフトの分散テクノロジもWCFに移行せずに運用できます。
「.NET RIA Services」というRIAでn階層の業務アプリケーションを作成するためアプリケーション基盤もあります。
Copyright © ITmedia, Inc. All Rights Reserved.