Page6Webアプリケーションは広く普及し、多くのビジネス・シーンで使われるようになった。その理由のひとつとして、アプリケーションのセットアップおよびアップデートが容易なことが挙げられる。通常のデスクトップ・アプリケーションは、すべてのクライアント・マシンに対してセットアップやアップグレードを行わなければならないため、運用および管理のコストが膨大になるという欠点がある。Webアプリケーションは、サーバでアプリケーションを集中管理できるので、管理コストを抑えられる。運用、展開といった面で強力なWebアプリケーションだが、問題点もある。Webページをベースとしているため、ユーザー・インターフェイスの表現力、応答速度とパフォーマンス、機能などが、デスクトップ・アプリケーションに比べ貧弱な場合が多い。このため、WindowsアプリケーションからWebアプリケーションに乗り換えた場合、ユーザーから見るとアップグレードではなく、ダウングレードになってしまうことがある。ユーザーにすれば、リッチ・クライアントのユーザー・インターフェイスや機能、パフォーマンスはそのままにWebアプリケーションに移行してほしいというのが本音だろう。1.1)でサポートされている。「ノータッチ・デプロイメント」という機能だ。Webブラウザ上のリンクから、リッチ・クライアントのWindowsアプリケーションを直接起動できる機能である。SP1/SP2ではデフォルトで機能しないように仕様が変更されてしまったため(理由は不明)、ほとんど活用されていなかったといえるだろう。1.1の主要な機能として大きく取り上げられるようになっている。ノータッチ・デプロイメントとはノータッチ・デプロイメントの機能を利用すれば、WindowsアプリケーションでWebアプリケーションを置き換えることができる。運用・管理コストを軽減できるWebアプリケーションの良さを失わずに、ユーザー・インターフェイス、応答速度とパフォーマンス、機能、サーバへの負荷などにおけるWebアプリケーションの欠点を解消できるのである。2003で作成したプログラム(exeファイル)をWebサーバ上に配置し、そのプログラムへのリンクをWebページに張るだけである。プログラムはWebサーバ上で動作するわけではないので、WebサーバはIISである必要はない。それどころか、サーバはWindows以外のOSで動作していてもよい。exeファイルへのリンクをクリックすると、従来ならば「ファイルのダウンロード」ダイアログが表示され、「開く」か「保存する」かを選択するが、ノータッチ・デプロイメントではそのままプログラムを実行できる。セキュリティ制限された状態でプログラムが実行されるので、このプログラムがローカル・ディスクやレジストリへアクセスすることはできない。よって、それがウィルスやトロイの木馬といった悪意のあるプログラムであったとしても、攻撃を受ける心配はない。1.1の「コード・アクセス・セキュリティ」によるものだ。コード・アクセス・セキュリティについては、後に詳しく解説する。ノータッチ・デプロイメントがどのようなものか確認するためのサンプルを用意した。このサンプルへのリンクをクリックすると、Windowsのリッチ・クライアントのプログラムが実行される(ダウンロードの時間が多少かかる場合がある)。ノータッチ・デプロイメントを実行するには、次のクライアント要件を満たす必要がある。Framework依存コンポーネントの実行」を有効にしておく必要がある。デフォルトでは、これは[有効にする]になっている。ノータッチ・デプロイメントのサンプルへのリンクこのハイパーリンクをクリックすると、ブラウザからプログラムが直接、起動する(下図参照)。ノータッチ・デプロイメントのためのサンプル・プログラムこのアプリケーションは、セキュリティ制限のかかった環境下でも動作する。Frameworkが提供するIE実行シェル(IEExec.exe)上で動作される。これにより、プログラムは個別のプロセスを発生させることなく、IE実行シェルの強力なセキュリティ制限を受けて動作することになる。次の図はその一連の動作の仕組みを表したものである。Explorer)をフックし、Webブラウザから.NETアセンブリが要求されるのを待機。ユーザーがプログラムへのリンクをクリック(.NETアセンブリを要求)。.NETダウンロード・キャッシュ領域に.NETアセンブリをダウンロード。IE実行シェル(IEExec.exe)がアセンブリのダウンロード元のサイトに基づきセキュリティ制限のレベルを決定して、アセンブリをロードし、IE実行シェル上でプログラムを起動する。Frameworkのコード・アクセス・セキュリティについて詳しく見ていこう。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。