特別企画

Windowsの.NETをモバイルの世界に広げるMicrosoft

 Microsoftでは、ここ最近、「クラウドファースト」と「モバイルファースト」をテーマに掲げるようになった。クラウドについては、弊誌連載のクラウド特捜部において、Microsoft Azureの最新動向を説明したが、モバイルについては、WindowsタブレットやWindows Phoneだけでなく、iOSやAndroidデバイスとの共存が大きなポイントになっている。今回は、そのモバイル戦略について説明しよう。

オープンソースへの関与を強めるMicrosoft

 Build 2014で感じたのは、Microsoftが本格的にオープンソースへとかじを切ったということだ。90年代後半は、「Linuxなどのオープンソース(OSS)はガン」とまで言い切っていたMicrosoftだが、ここ数年、OSSに関する考え方が大きく変わってきている。

 特に2012年には、Microsoft自身がOSSを手がける子会社「Microsoft Open Technologies(MOT)」を設立して、OSSへの関与を積極的に行うようになってきた。MOTでは、Microsoft AzureでサポートされているLinux、Hadoop、Node.js、PHPなど、多くのOSSにコードを提供している。最近では、Android向けのOffice 365 SDKをGitHubで公開した。

 そうした流れの中で、Build 2014では、Microsoftが持ついくつかのソフトウェアをOSS化していくことが発表されている。

 例えば、Windows Library for JavaScript(WinJS)のOSS化が、Build 2014の初日に発表した。WinJSは、Windows 8/8.1上で、JavaScriptをプログラミング言語として、Modernアプリを開発できるようにしたライブラリ群だ。WinJSをOSS化することで、Firefox、ChromeなどInternet Explorer(IE) 11以外のブラウザや、AndroidやiOS上でもModernアプリを動かせるようになる。

 最も大きな発表となったのが、Build 2014の2日目の基調講演で、.NET Frameworkや関連のソフトウェアをOSS化するために、.NET Foundationを設立したことだ。

 この.NET Foundationには、Microsoftから、ASP.NET、Entity Framework、.NET Micro Frameworkだけでなく、次世代のC#やVBのコンパイラとなる.NET Compiler Platform(開発コード名:Roslyn)もOSSとして提供されている。

.NET Foundationには、これだけのソフトウェアがOSSとして提供された。これらはCodePlexで公開されている
.NETのインストールベースは18億台、開発者は600万人と膨大な人数がいる
Build2014で示された.NET Frameworkのエコシステム
OSS化により、.NETの世界はより広がっていくとMicrosoftは考えている

 さらに、.NET Foundationの参加企業Xamarin(ザマリン)から、iOSやAndroid上でC#などを利用できるようにするFrameworkソフトウェア群も提供された。

 実はXamarinは、Microsoftが.NET Frameworkの仕様をオープンにした時から、Mono Projectとして、LinuxやFreeBSD、Mac OS X上で動作する.NET Frameworkを開発することを目的としていた。

 Mono Projectは当初、英Ximian(ジミアン)で開始されたが、その後Ximianが米Novellに買収され、以降はNovellが積極的に関与してきた。しかしNovellが2011年に米Attachmateに買収されたことで、Novellで大幅なレイオフが行われ、Mono Projectへの関与も縮小してしまっていた。

 そこで、Mono Projectを立ち上げたミゲル・デ・イカザ(Miguel de Icaza)氏が、Xamarinを立ち上げて、Mono Projectなどの開発を継続することになった、という流れがある。

 Novellとの間では若干トラブルがあったというが、最終的にNovellからMono Projectに関する知的財産、プロジェクトの管理権を公式に引き取る契約ができたことで、大きな障害が取り除かれた。

 Xamarinでは、iOSやAndroidで動作する.NET Framework以外にも、クロスプラットフォームでアプリ開発ができる開発ツールやライブラリなどを提供している。

Xamarinとの協業により、.NET Frameworkは、iOSやAndroidなどのWindows以外のプラットフォームをサポートしていく
Xamarinのツールを利用すれば、iOSやAndroid環境でC#を使ってプログラミングができる
これらのツールにより、各プラットフォームのC#プログラムを70~90%ほど再利用できるという
Xamarinでは、画面サイズがまちまちのAndroidデバイスに向けて、クラウドで動作テストできる環境を提供している

 筆者は、.NET Foundationを設立した大きなきっかけがXamarinとの協業にあると考えている。

 Xamarinが開発したツール類を使って、ロジック部分をC#で記述し、UI制御にあたる部分をそれぞれのプラットフォーム(iOS/Android)向けにプログラミングすれば、マルチデバイスでのアプリ開発の効率がアップする。

 実際、基調講演では、Xamarinのツールを使って、C#のプログラムをWindowsタブレット、iPad、Androidスマートフォンで動作させるデモも行われた。

 こういったことからは、Microsoftが、“Windowsですべての世界を塗りつぶす”といった考え方からシフトしてきたのがよく分かる。iOSやAndroidといったモバイルデバイスや、Linux、Mac OS Xなどで動作する非Windowsのデバイスがそれなりのシェアを持ち、特にスマートフォンなどでは、非Microsoftが主流となっていることを認識して、共存していくという考え方になってきたのだろう。

 とはいえ、WindowsにiOSやAndroidのフレームワークを持ち込むのではなく、Windowsの.NETをiOSやAndroidに持ち込もうと考えるのはMicrosoftらしい。

(山本 雅史)