第1回 Windowsランタイム・コンポーネント概観連載:Windowsランタイム・コンポーネントによるコードの再利用(3/4 ページ)

» 2013年05月29日 14時28分 公開
[arton,]

Windowsランタイム・コンポーネントの役割

 マイクロソフト社のWindows用開発製品は、1990年代には、高い開発効率を持つユーザー・インターフェイス特化型の製品と、低レベル操作が可能な製品の2本立てで構成されていた。具体的にはVBとC++の組み合わせであり、テクノロジとしてはVBX、次にActiveXコントロールが提供された。

 それが.NET Frameworkを主流とした2000年代には、「これが多様なプログラミング言語のプラットフォームである」という紹介とは裏腹に、C#というオールマイティなプログラミング言語への統合が試みられたように見受けられる。これは時代的な動向だったと考えられる。というのは、エンタープライズ分野での競合はJavaによる統合、コンシューマ分野での競合はObjective-Cによる統合と、同時期の他社の戦略も同様なものだったからだ。この時期のユーザー・インターフェイスは、WPF(XAML)としてプログラミング言語独立のテクノロジとして完成されたと言ってよいだろう。

 ところが、2000年代の後半に来て思わぬ伏兵というべきものが出現した。それがHTML+CSS+JavaScriptだ。特にWebブラウザに搭載するJavaScriptエンジンの高速化競争によってJavaScriptのプログラミング言語としての価値が急速に高まった。

 振り返ってみると、マイクロソフト社の中でJavaScriptの位置付けはこれまで常に微妙なものだった。インターネット環境で実行するIEの中ではJScriptが文句なく主流であったとはいえ、Webアプリ開発用のASPやイントラネットではVBScriptという強力なライバルが併存していたし、JScriptの.NET Framework版はVisual Studioによるサポートがないなど、異様に影が薄い。

 以上の歴史を踏まえたうえで、前項で示したWindowsストア・アプリ用のプログラミング言語に目を向けると、明らかな方針転換を見て取れるだろう。

 つまり、JavaScriptの超一級市民化と、開発製品のUI特化型と低レベル操作への分離だ。

 ここで感慨深いのは、VBの相対的な価値低下である。WWAHostによく似たコンセプトのMSHTA(HTMLアプリ・プラットフォーム)では、VBScriptとJScriptが等しくサポートされていたが、WWAHostはJavaScript専用である。以前のVB Everywhere的な世界とは完全に異なる。

 これは、Windowsランタイム・コンポーネントの登場の背景と重なると考えてよい。

 Windowsランタイム・コンポーネントとは、ひと言でいえば、COMコンポーネントの2010年代版である。従って、Windowsランタイム・コンポーネントに求められる役割は2つある。

 1つは、アプリ開発言語とその環境でサポートされない機能を、コンポーネントにパッケージしてアプリに提供することだ。アプリが実行可能な機能は、JavaScript(WWAHost) < C#/VB(Windowsストア・アプリ用.NET) < C++/CX(DirectXを含むWin32 APIの利用が可能)の順に大きくなる。そのためアプリケーションの作成に利用している開発言語によっては、Windowsストア・アプリ用.NETや、Win32 APIの機能を必要としても実装できない場合がある。この場合、アプリケーションの代わりに、これらの機能を実行するプログラムをWindowsランタイム・コンポーネントとして作成することになる。

 Windowsランタイム・コンポーネントのもう1つの役割は、既存コードの再利用だ。すでにC++で作成したCOMコンポーネントや、C#やVBで作成したクラス・ライブラリにWindowsランタイムABIを加えることで、Windowsストア・アプリから利用できるようにすることが、これに当たる。

 本連載では、以降、後者のコード再利用に的を絞る。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。