Under the Windows 8 hood: Questions and answers from the trenches | ZDNet
簡単に言ってしまえばそういうことだ。COMランタイムがなくなるわけでも、COMが動作しなくなるわけでもないだろうが、Windowsの管理インターフェイスやUIからはCOMを廃していこうと言うことだろう。COMコンポーネント連携による管理インターフェイスやアプリケーションでなく、マネージドコードによるAPIと「サービス」のマッシュアップ、さらには HTML + Javascript でのサービスマッシュアップのスタイルによるデスクトップアプリケーション開発、管理の自動化の方向なんだろう。これは Windows 8 が複数のプロセッサーアーキテクチャをサポートする故にネイティブコードベースのアーキテクチャは広く採用しにくいと言うことも関係しているはずだ。
プログラマ視点から見るとおそらく今後サービスの管理機能やWindowsの管理機能は.NETのクラスライブラリやODataのWebサービスインターフェイスで構成されるので(現にExchageとかSharepointはそうだよね)これらのマッシュアップコードを.NETの言語で書くスタイルになるし、今まで仕方なくCOMやP/Invokeで書いていた部分もManagedになる期待が持てるので、コンパイルされたアセンブリ(バイナリ)はよりポータブルになる。
管理者視点だと特にWindowsやサービスの新機能に関しては COM Automation のインターフェイスは用意されず、Powershellのサーブレットにラップされた.NETやODataのインターフェイスが提供されるようになる。基本的に今までバッチファイルやVBSで構築してきた管理の自動化はいよいよもってPowershellを取得してPowershellのスクリプトで処理するか、IronPythonやIronRubyのような.NETのアセンブリと親和性の高いスクリプト言語を使用しての管理の自動化に移行していく必要がある。
COMが担ってきた部分の大部分はManagedとWebサービスが担うことになるのがWindows 8以降のWindowsの世界像だろう。Windows DNAが提唱された1997年以降ある意味Windowsの中心にいたCOMもそろそろその役割を終えてもいいはずだ。
コメント
Windows 8に “a new version of COM” が載るという話は、以前にWinC++の求人情報でリークされてました。(;^ω^)
COMがなくなるというよりは、新しいコンポーネントモデルでネイティブとマネージドの連携方法が変わるということだと思います。
それがWinRTとWinMDあたりの話かと。
そういう意味では、従来のCOMの役割は薄くなりますが、コンポーネント提供側の観点ではマネージド比率が上がるというわけでもなく、
ネイティブコードの役割は今までと変わらないと思います。
(コンポーネント利用側の観点では別ですが・・・。)
[…] 以前Windows 8ではCOMを廃するなんて記事を書きましたが、全く持って間違いでした。 […]