特別企画
Windowsの.NETをモバイルの世界に広げるMicrosoft
(2014/5/16 06:00)
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の参加企業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以外にも、クロスプラットフォームでアプリ開発ができる開発ツールやライブラリなどを提供している。
筆者は、.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らしい。