ActiveX は、 Microsoftが作成した非推奨のソフトウェア フレームワークで、ネットワーク、特にワールド ワイド ウェブからダウンロードしたコンテンツ用に、以前のコンポーネント オブジェクト モデル(COM) およびオブジェクト リンクと埋め込み(OLE) テクノロジーを適応させたものです。[ 1 ] Microsoft は 1996 年に ActiveX を導入しました。原則として、ActiveX はMicrosoft Windowsオペレーティングシステムに依存しませんが、実際には、ほとんどの ActiveX コントロールは Windows でのみ動作します。また、ほとんどの ActiveX コントロールにはコンパイル済みコードが含まれているため、クライアントがx86ベースのコンピュータで実行されている必要があります。[ 2 ]
ActiveX は、 Microsoft Edgeの「Internet Explorer モード」でも引き続きサポートされています(ただし、 GoogleのChromiumプロジェクトに基づいているため、互換性のない別の拡張機能システムを使用しています)。[ 3 ]
ActiveX は、コンポーネントベースのソフトウェア エンジニアリングで使用される主要なテクノロジーの 1 つでした。[ 4 ] JavaBeansと比較すると、ActiveX はより多くのプログラミング言語をサポートしていますが、JavaBeans はより多くのプラットフォームをサポートしています。[ 5 ] ActiveX は、 Active Template Library、Delphi、JavaBeans、Microsoft Foundation Class Library、Qt、Visual Basic、Windows Forms、wxWidgetsなど、多くの高速アプリケーション開発テクノロジーでサポートされており、アプリケーション開発者が製品に ActiveX コントロールを埋め込むことができます。
Microsoft Windows の多くのアプリケーション(Internet Explorer、Microsoft Office、Microsoft Visual Studio、Windows Media Playerなど、Microsoft 自身が開発したアプリケーションを含む)は、ActiveX コントロールを使用して機能セットを構築し、また、独自の機能を ActiveX コントロールとしてカプセル化して他のアプリケーションに埋め込むことができます。Internet Explorer では、 Web ページに ActiveX コントロールを埋め込むことも可能です。
OLE 2.0の複雑さとMFCでの COM のサポートの不十分さに直面し、マイクロソフトは仕様を簡素化し、1996 年にこの技術を ActiveX として再ブランド化しました。 [ 6 ] [ 7 ]簡素化後も、ユーザーはコントロールに約 6 つのコア インターフェイスを実装する必要がありました。この複雑さに対応するため、マイクロソフトはウィザード、ATLベース クラス、マクロ、および C++ 言語拡張機能を作成し、コントロールの作成を簡素化しました。
Internet Explorer 3.0 (1996 年) 以降、Microsoft は HTML コンテンツ内に ActiveX コントロールをホストするサポートを追加しました。ブラウザがタグOBJECT(このOBJECTタグは、当時W3Cの Microsoft 代表であったCharlie KindelによってHTML 3.2仕様に追加されました[ 8 ] ) を介して ActiveX コントロールを指定するページに遭遇すると、ユーザーの介入はほとんど、あるいは全くなく、コントロールが自動的にダウンロードされインストールされました。これにより Web は「より豊かに」なりましたが、反対意見 (実際には、このようなコントロールは Windows でのみ動作し、サポートされているプラットフォームごとに個別のコントロールが必要だったため: Windows 3.1/Windows NT 3.51 用、Windows NT/95 用、Macintosh M68K/PowerPC 用) やセキュリティリスク (特にユーザーの介入がないことを考えると) を引き起こしました。Microsoft はその後、ActiveX を含むブラウジングをより安全にするためのセキュリティ対策を導入しました。[ 9 ]
例えば:
ActiveX は当初から物議を醸しました。Microsoft はマーケティング資料でJava アプレットと比較してプログラミングの容易さと優れたパフォーマンスを主張しましたが、ActiveX の批判者はセキュリティ上の問題と移植性の欠如をすぐに指摘し、保護されたイントラネット以外での使用には不向きであるとしました。[ 10 ] ActiveX のセキュリティ モデルは、Authenticodeと呼ばれるコード署名技術を使用して信頼できるコンポーネント開発者を識別することにほぼ完全に依存していました。開発者はVerisignに登録し(個人は年間 20 米ドル、企業は 400 米ドル)、マルウェアを開発しないことを約束する契約に署名する必要がありました。識別されたコードは、完全な権限で Web ブラウザー内で実行されるため、コード内のバグは潜在的なセキュリティ上の問題となります。これは、当時すでに Java で使用されていたサンドボックスとは対照的です。 [ 11 ]
1996 年 10 月、マイクロソフトはMacintosh用の ActiveXソフトウェア開発キット(SDK)のベータ版をリリースし、 Mac 上のNetscape Navigator用のプラグインを含め、同年後半にSolaris上で ActiveX をサポートする計画を発表しました。 [ 12 ] 6 か月後、さらに 2 つのベータ版がリリースされましたが、市販の Macintosh ActiveX プラグインはまだありませんでした。[ 13 ]
1997年、NCompass LabsはMicrosoftと協力して、ActiveXをサポートするNetscape Navigator用のプラグインをリリースした。 [ 14 ]
ActiveX コア技術のドキュメントは The Open Group にあり、無料で閲覧できます。[ 15 ]
Microsoft は ActiveX をクロスプラットフォームにするためにこれまで努力してきたが、ほとんどの ActiveX コントロールはすべてのプラットフォームで動作せず、今後も動作しないため、Web ページの基本的な機能を実装するために ActiveX コントロールを使用すると、その有用性が制限される。韓国政府は、ソフトウェアに依存しない動きとして、Web サイトをより多くのプラットフォームでアクセスできるようにするため、2015 年頃から公共の Web サイトからこの技術を削除し始めた。[ 16 ]
Microsoft は API を公開することで ActiveX のクロスプラットフォーム性を推進するために多大な努力を払ったが、最終的にクロスプラットフォームの取り組みは失敗に終わった。これは、ActiveX コントロールがCまたはC++で記述され、 Intel x86アセンブリ言語でコンパイルされるため、標準のWin32 APIを呼び出すことができる Windows マシンでのみ実行可能だったためである。[ 17 ]
Microsoft はWindows 8の Internet Explorer 10 のWindows ストア版から ActiveX のサポートを終了しました。2015 年に Microsoft はInternet Explorer の後継となるMicrosoft Edge [Legacy]をリリースしましたが、ActiveX のサポートはありませんでした。この出来事は、Microsoft の Web ブラウザー開発における ActiveX 技術の終焉を意味しました。[ 18 ]ただし、 Microsoft [New] Edge には、ActiveX をサポートする「Internet Explorer モード」機能が含まれています。
マイクロソフトは、ActiveXオブジェクトを使用して多数の製品とソフトウェアプラットフォームを開発してきました。それらは現在でも使用されています(例:ASPを使用しているWebサイト)。
という用語は、1996 年初頭に Microsoft の世界で登場しました。
マイクロソフト社は本日、ActiveXテクノロジーを発表しました。これにより、幅広いソフトウェア開発者やWebデザイナーがインターネットやPC向けの動的なコンテンツを簡単に作成できるようになります。… ActiveXテクノロジーは、ソフトウェアコンポーネント、スクリプト、既存のアプリケーションを使用してインタラクティブなコンテンツを作成するための堅牢なフレームワークを形成します。具体的には、ActiveXテクノロジーを使用すると、開発者はActiveXコントロール(旧OLEコントロール)、アクティブスクリプト、アクティブドキュメントを使用してWebコンテンツを簡単に作成できます。… ActiveXテクノロジーは、Microsoft ActiveX開発キットの形で提供され、本日サンフランシスコで開催されているプロフェッショナル開発者会議に参加している4,000人以上の開発者に配布されています。
。ncompass ActiveXプラグイン。