MicrosoftはWindows 7の機能群 – センサー、スピーチ、デバイス、タスクバー、タッチ – をElevated Trustモードで動くブラウザー外実行Silverlightアプリケーションに公開するライブラリをリリースした。
Silverlightは当初ブラウザ内でのみ実行することを意図されていて、システムリソースへのアクセスはセキュリティ上の理由から非常に制限されていた。 後に、Microsoftはブラウザー外実行(Out-of-Browser、OOB)機能を導入し、Silverlightアプリケーションがブラウザのサンドボックスの外で動くことを可能にしたが、まだ制限があった。 Silverlight 4ではCOM+ オートメーションがサポートされ、Silverlightブラウザー外実行アプリケーションがCOM APIを持ったWindowsコンポーネントにアクセスすることが可能になった。この機能は特にエンタープライズ顧客のために導入され、権限の昇格を必要とする。問題はすべてのWindowsコンポーネントがCOMをサポートしているわけではなく、そのためSilverlightからアクセスできないものがあることだ。
Native Extensions for Microsoft Silverlight (NESL)はWindows 7の機能をSliverlightに公開するコンポーネントのライブラリである。Version 1.0は昨年12月にリリースされ、次のコンポーネントのサポートをもたらした。
- Windows Sensor API – 加速度センサ、光センサ、コンパス(方位磁石)、ジャイロスコープなど。
- Microsoft Speech API – 文章から音声への変換(音声合成)、音声から文章への変換(音声認識)。
- Windows Portable Devices API カメラ、電話、音楽プレーヤー、スキャナーなどのポータブル機器へのアクセス。
- Windows 7 タスクバー統合 – ジャンプリスト、オーバーレイアイコン、オーバーレイ進行状況表示、サムネールツールバーなど。
- ウェブカメラローカルエンコーディングとウィンドウキャプチャ – ウェブカメラのキャプチャをMP4(H.264/AAC-LC)メディアにエンコードし、ユーザーインターフェース上のやりとりを動画としてキャプチャする。
- ウィンドウメッセージのインターセプト – Sliverlight OOBホストウィンドウに送られたメッセージへのアクセス。
1ヶ月後、MicrosoftはNESL 2.0プレビュービルドをリリースし、マルチタッチ機能、バージョン1.0のデモを追加し、不具合修正を行った。さらなる機能がライブラリの将来のバージョンで追加される予定である。
このライブラリはWindows 7 32-bit版または64-bit版でのみ動作し、Elevated Trustモードで動くOOB Silverlightアプリケーションで利用可能である。NESLはWindowsの他のバージョンやMac OS Xではサポートされていない。コードはMicrosoft Code Sharing Licenseの下で公開されている。
関連情報:オートメーション(OLEオートメーション) – Windows上でオートメーションを利用することに関する一般的な情報、Silverlight 4 Automation from A to Z – Silverlightでオートメーションを使うサンプル。