先日、Go MetroのDeveloper Campに参加してきました。
これ何かというとWindows8のMetroアプリケーションの開発者向けのセミナーです。
Windows8向けとは言え、基本的にWindowsだし、ようはUIがちょっと変わるぐらいの感覚で捉えてたんですが、まったく違ってました。
左側の「Metro style Apps」がWindows8で搭載されるMetroのアプリケーションの構造を、右の「Desktop Apps」が従来型のアプリケーションの構造です。
いずれも同じWindowsのカーネルに乗っているものの、別立てて構成されていることがわかります。
これ、相互にやり取りできるのかと思ってたんですが、Metro側はサンドボックスで実行される仕組みとのことで、まったくプログラムの作り方が変わってしまうようです。
例えば、従来アンマネージドなDLLとして実装してあったものについては、そのままMetroで利用しようとしても(サンドボックスの外なので)参照できないようです。
(このあたり、認識違いをしているかもしれませんが、少なくとも推奨じゃないようです)
それと、GUIはXAMLで書けるので、WPFアプリケーションなら簡単に移行できてもよさそうなものですが、これもタブレットを意識したデザインが必要になります。これについてもプレゼンテーションがありましたが、いわゆる「没入型」となるため、まあ、まったく今までと違うデザインが要求されます。つまり、書きなおしです。
従来型のアプリケーションも、そのまま動くため、無理にMetro対応する必要はないようですが、MicrosoftとしてはMetroアプリケーションについては、かっちり専用で作ってねという方針のようです。
Windows7からWindows8と名前こそ似ていますが、移行しようとすると、DOSアプリをWindowsへ変更するぐらいのインパクトがありそうです。
一時期、DOSアプリを無理やりWindowsに載せちゃった系のアプリが存在した時期がありましが、今回は、そういうのも仕組み的に有り得なさそうですね。