Javaアプレットは、それまでのテキストベースのWebではなく、Webブラウザ上にイメージや図形を描画できる技術として登場しました
Javaアプレットの利点としてJava仮想マシン(JVM)のサンドボックス内で実行されるため、インターネットで配布が可能です
しかしセキュリティが厳しい半面、ローカルファイルにアクセスができないなど制限が設けられていました
さらに、Webが普及し出したころでもあり、当時のコンピュータは回線速度が遅く、リソースも十分ではありませんでした。そのため、Java仮想マシンの動作が遅く、Javaアプレットが組み込まれているWebサイトは普及しませんでした。
現在は、Java仮想マシンの性能改善や回線速度の向上により、Javaアプレットが登場した当初よりは問題が解消されています。利用シェアは大きくないですが、携帯機器などのGUI環境やCGのアニメーション、ゲームなどで現在も利用されています。
.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がありますが、後述します。
.NETのクライアントサイド技術(GUI開発)
一方.NETも、クライアントアプリケーション開発の技術が非常に充実しています。すべての開発がVisual Studioで行えることも大きな魅力です。また.NET Frameworkではサーバサイド機能を削除した軽量なクライアントアプリケーション開発に特化した「.NET Framework Client Profile」というサブセットもあります。
■ VSTO(Visual Studio Tools for Office)
また.NETでは、業務プリケーションなどのフロントエンドとして使用されるExcelやWordなどの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を使用して簡単に設定できます。