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

Javaから見た.NET(2):設計者/SEが覚えておきたいJavaと.NETの違い (2/4)

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

編集部注:読者の貴重なご指摘により一部コンテンツを削除・改編させていただきました。内容に不備があったことをお詫び申し上げます(2010年7月8日)


.NETのクライアントサイド技術(GUI開発)

 一方.NETも、クライアントアプリケーション開発の技術が非常に充実しています。すべての開発がVisual Studioで行えることも大きな魅力です。また.NET Frameworkではサーバサイド機能を削除した軽量なクライアントアプリケーション開発に特化した「.NET Framework Client Profile」というサブセットもあります。


 .NET Frameworkのクライアント開発技術には、以下のような機能があります。

Windowsフォーム

 Windowsフォームとは.NET Frameworkの当初から存在するGUIフレームワークです。2DグラフィックスがベースのWindows APIのラッパとして、さまざまなコントロールが用意されています。Visual Studioを使用することで効率的に、高い操作性を持ったクライアントアプリケーションを作成できます。


WPF(Windows Presentation Foundation)

 WPFは、.NET Framework 3.0以降に追加された、GPUを活用してよりリッチなUIを構築するフレームワークです。高度な3Dグラフィックスを含め、画像や動画、Flashなどのようなベクタ・グラフィックスまで、多岐に渡るグラフィックス機能を提供します。

 またWPFでは、「XAML」というXML形式のマークアップ言語を使用してUIを構築できます。それによりデザインとロジックを分離して開発するコードビハインドが可能です。データバインディング機能もあるので、コードを記述せずにDBデータベース)のデータの表示もできます。


 ほかにもWPFにはWebブラウザ上でホストされて実行する「XBAP(XAML Base APplication)」と呼ばれるアプリケーションがあります。しかし、実行できる環境がWindowsに限定されるため、広く公開するサービスには不向きです。

 その代わりとしてSilverlightがありますが、後述します。

VSTO(Visual Studio Tools for Office)

 また.NETでは、業務プリケーションなどのフロントエンドとして使用されるExcelWordなどのOffice開発を効率的に行うための「VSTO(Visual Studio Tools for Office)」という実行・開発環境があります。


 Office製品は、VBA(Visual Basic for Applications)でカスタマイズもできますが、VSTOでは、C#やVisual Basicなどの生産性の高い開発言語を使用でき、かつ.NET Frameworkの機能を利用できます。もちろんVBAとの相互利用にも対応しているので、状況によって使い分けられます。

クライアントアプリをユーザーに配布する技術

 従来アプリケーションの配布は、ユーザーがダウンロードをして設定作業を行い実行するものでした。しかし、この方法では非常に手間と時間がかかります。そこで、この作業を簡略化するため、Javaと.NETではWebを利用したアプリケーションの配置、バージョンを管理する技術が生まれました。

Javaの場合「Java Web Start」

 Javaの場合は「Java Web Start」というアプリケーションがそれに当たり、GUIアプリケーションをWebを介してエンドユーザーに配置できます。Java Web Startを使用することでエンドユーザーは必要最低限の操作で、Javaプラットフォームに基づいたアプリケーションをWebサーバから起動したり、配置したり、更新したりできます。実行するためには、クライアントマシンにJavaの実行環境であるJRE(Java Runtime Environment)とJava Web Startをインストールするだけです。

 もしJava Web Startに対応したJavaアプリケーションが実行されたときにJREやJava Web Startがインストールされていない場合は、自動的にインストールされます。エンドユーザーは環境設定に悩むことがほとんどなくなるといえるでしょう。そして、Java Web Start自体がJavaアプリケーションなので、プラットフォームに依存することもありません。

 さらに、初回起動時にはアプリケーションはネットワークからダウンロードされローカルマシンに保存されます。それにより2回目以降の起動は、ローカルマシンに保存されているファイルを使用して実行するため高速に起動できます。

.NETの場合「ClickOnce」

 .NETの場合は「ClickOnce」という機能が用意されています。.NET Frameworkによって提供されるWindowsフォームやWPFアプリケーションをユーザーに配布、更新できます。さらにアプリケーションが更新されるとローカルマシンに反映してくれます。

 Java Web Startの場合はJNLPというXML形式のファイルを使用して、jarファイルで配布しますが、ClickOnceはビルドできるアプリケーションであれば、そのまま配布できます。またClickOnceを使用すると、更新をするタイミングもオプションで操作できます。ほかにも前バージョンと比較したり、更新をロールバックする機能もあります。配置方法はVisual Studioを使用して簡単に設定できます。

さらに、リッチクライアント/RIAを比較

 近年クライアント開発では、豊かな表現力や操作性を実現できるリッチクライアント/RIAが主流です。

JavaFX

 JavaのRIA技術としては「JavaFX」があります。JavaFXはサン・マイクロシステムズが開発したRIAを実現するためのプラットフォームです。技術的な基盤はJavaですが、いままでのJavaとは別のプラットフォームです。JavaFXは「JavaFX Script」という新しいスクリプト言語により、高度なGUIアプリケーションを開発可能です。

 JavaFX Scriptの実行環境としてはPC向けの「JavaFX Desktop」とモバイル向けの「JavaFX Mobile」があります。さらにJavaFX自体がJavaアプリケーションとして実行できるので、Java Web Startを利用してユーザーに配布することもできます。


Silverlight

 一方.NETでは、WPFのところでも取り上げましたが、RIAを開発するためのフレームワークとして「Silverlight」があります。

 Silverlightは、WPFのサブセットとして提供されていて、Webブラウザのプラグイン形式として提供されており、OSもWindowsだけではなくMac OS Xで動作し、マルチプラットフォームであることが大きな特徴です。これによりWindows以外のプラットフォームでも.NETベースのアプリケーションを動作させられます。

 またSilverlight 3からは、新機能として「Out-of-browserブラウザ外実行)」という機能が追加されました。これにより、Silverlightアプリケーションの実行環境はWebブラウザ上だけでなくなり、Webブラウザからドラッグ&ドロップしてデスクトップ上でも実行できます。さらにSilverlight 4では、業務アプリケーションに対応する機能なども強化されています。


 Visual Studio 2010では、Silverlightの開発環境が統合されたので、WPFのデザイナと同じようにドラッグ&ドロップ形式で開発できます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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