Active Scripting

出典: フリー百科事典『ウィキペディア(Wikipedia)』

Active Scriptingアクティブスクリプティング, Active Scriptとも)とは、Windowsスクリプトを利用可能にするためのコンポーネントベースの技術である。COM(より正確にはOLEオートメーション)を基盤としており、COMコンポーネントとしてスクリプトエンジンを追加できるようになっている。

特徴[編集]

Active Scriptingは、Windowsでスクリプトを実行するための基盤であり、スクリプトホストスクリプトエンジンとの仲立ちを行うようなアーキテクチャとなっている。

スクリプトホストはスクリプトを実行するアプリケーションのことであり、マイクロソフト製品では次のようなホストが存在する。

スクリプトエンジンは、ソースコードを処理するプログラム(COMオブジェクトの形態をとる)で、標準ではVBScript及びJScriptのエンジンが付属している。それ以外にも無償・有償問わず追加のエンジンが存在する。例えば、ActiveStateのActivePerlActivePythonをインストールするとActive ScriptingでPerlPythonが使用可能になる。さらには、Haskell[1]PHP[2]Ruby[3]など多数の言語に対応するエンジンが存在する。

スクリプトとホストとの間の通信は専らCOMによって行われる。Active Scriptingにはホストからエンジンにスクリプト内で使用可能なオブジェクトを公開する機能があり、それ以外にもCOMの接続ポイントなども用いられる。

Active Scriptingが最初に公開されたのは1996年である。Internet Explorer 3.0(8月)及びInternet Information Server 3.0(12月)に附属した。また、Windows 98/2000からは標準搭載されている。

非推奨化の流れ[編集]

.NET Frameworkの登場によってActive Scriptingは非推奨と化している(非互換ではあるが、VBScript/JScriptに似た言語としてVisual Basic .NET (VB.NET)とJScript .NET (JS.NET)が.NET上に存在する)。.NET Frameworkの中にはスクリプト用の技術も存在し、特にそこを取り出した統合開発環境はVisual Studio for Applications (VSA)と呼ばれる[4] [5] [6]。さらに、そのインタフェースはActive Scriptingからも使用可能で、.NET非対応のアプリケーションを.NET言語でスクリプト可能にもできる。VSAはVisual Basic for Applications (VBA)の後継となるはずだった[7]が、.NET Framework 2.0で非推奨になり[8]、Active Scriptingを使用するアプリケーションにとって明確な移行先が見当たらない状態になっている(ここでのスクリプトとはC#、VB.NETやその他.NET言語のコードを実行時に.NET Frameworkのライブラリでコンパイルして実行できることを言う)。

現在、JScriptとVBScriptはマイクロソフトのSustaining Engineering Teamでメンテナンスされており、バグ修正やセキュリティホール対策などが行われている。非推奨とされてはいるものの、Active Scriptingベースの言語で書かれたスクリプトが大量に存在する[9]以上、当面はWindowsに搭載され続けると見られている。近年、マイクロソフトはWindows PowerShellを公開した。これは、.NETベースのシェル及びスクリプト言語である。

関連項目[編集]

脚注[編集]

  1. ^ HaskellScript: About
  2. ^ PHP: ActiveScript
  3. ^ COM Meets Ruby
  4. ^ Script happens .NET: MSDN
  5. ^ Microsoft Takes Wraps Off VSA Development Technology
  6. ^ VSA scripting in .NET
  7. ^ Visual Studio for Applications
  8. ^ Microsoft.Vsa 名前空間(MSDNライブラリ) - 全部が非推奨とされている様子が見てとれる。
  9. ^ Rumours of VBScript's Death Have Been Greatly Exaggerated

外部リンク[編集]