検索
連載

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

システム開発がますます複雑化していく中、エンジニアには、テクノロジを理解して、さまざまな場面に適した選択が求められます。本連載では、Javaと.NETの基本的な仕組みから最新の傾向や技術などについて、数回に分けて紹介します

PC用表示 関連情報
Share
Tweet
LINE
Hatena

.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で使用される名前空間の概要です。

*** 一部省略されたコンテンツがあります。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 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.

ページトップに戻る