特別企画

Windowsにこだわらない、サティア・ナデラのMicrosoft

 11月12日に開催されたMicrosoftの開発者向けバーチャルイベントのConnect();において、.NET Frameworkやサーバーサイドの.NET Core Runtimeなどのオープンソース化が発表された。このオープンソース化と同時にMicrosoftでは、.NET Frameworkのマルチプラットフォーム化を進めるため、LinuxとMac OS X用の.NET Frameworkを発表した。

 今年の4月に開催されたMicrosoftのイベント「Build 2014」でも、.NET Frameworkのオープンソース化が発表されていたが、限定的なモノだった。今回の発表では、.NET Frameworkをクライアント/サーバーサイドともにオープン化して、マルチプラットフォーム化を進めていくことになった。

 そこで、今回は、Connect();の発表から、今後サティア・ナデラ氏がCEOとなったMicrosoftがどのように変化していくのかを分析する。

.NETはマルチプラットフォーム化される

 Connect();で発表された.NET Frameworkのオープンソース化は、4月のBuildで発表された.NET Frameworkのオープンオープンソース化を進める「.NET Foundation」を介して、GitHubでソースコードが公開されている。

Connect();で.NET Core RuntimeとFrameworkのオープンソース化を発表するスコット・ガスリー氏(Connect();の基調講演ビデオより)
スコット・ガスリー氏は、同時にMicrosoftがLinuxとMac OS Xの.NET Core Runtime/Frameworkをオープンソースとして提供すると発表した(同)

 .NET Core Runtimeと.NET Core Frameworkのオープンソース化により、Buildでオープンソース化が発表されたASP.NETやC#などのコンポーネントを合わせれば、.NET Frameworkのほぼ90%に近いコンポーネントがオープンソース化されたことになる。残りの10%は、WPF/WinFormなどのクライアントの画面表示にかかわる部分だ(WPFやWinFormはWindows OSにディペンドしている)。

.NET Foundationでは、.NET関連の多くのソフトウェアがオープンソースとして公開されている
来年リリースされる新.NET Frameworkも、もちろんオープンソースで提供される。ASP.NETやコンパイラに至るまで、.NET関連のソフトウェアコンポーネントは、ほとんどオープンソース化される

 面白いのは、古いバージョンだけでなく、2015年にリリースが予定されている次世代の.NET Framework環境や、C#などのプログラミング言語が利用する.NET Compiler Platform(Roslyn)など、最新バージョンに関するソースコードもオープンソース化されている点だろう。ここまで広く対応していることを考えれば、Microsoftが.NET Frameworkをマルチプラットフォーム化していくために、本気で取り組んでいるんだ、ということがわかる。

 また、これらのオープンソース化に従って、Microsoft自体が、LinuxやMac OS Xに.NET Server Frameworkを移植・公開している。これにより、Windows Serverなどで動作している.NET Frameworkベースのアプリケーションを、LinuxやMac OS X上のプラットフォームで動かすことができるようになった。

 Linux版の.NET Frameworkに関しては、オープンソースのMono Projectがあった。今回は、Mono Projectを進めていたXamarin社とMicrosoftが協力して、Linuxへの移植を行ったようだ。Microsoftが関与することで、オリジナルのWindows版.NET Frameworkが完全にLinux上に移植されている。

 Linux上で.NET Frameworkがサポートされることは、多くのでデベロッパーにとっては大きなメリットとなるだろう。現在、Windows Server上でしか動作しなかったアプリケーションが、簡単にLinux上で動作するようになる。このことは、アプリケーションのマルチプラットフォーム化を目指すサードパーティにとっては大きなメリットになるだろう。またクラウドを利用する上では、多くのLinuxベースの仮想マシン(VM)上でアプリケーションを動かすことができるようになる。

 Linuxに.NET Frameworkを移植することは、Windows OSビジネス的には不利になってしまうかもしれない。しかし、Microsoft自体が、.NET FrameworkをLinuxやMac OS Xに移植して、マルチプラットフォーム化を進めているのは、Microsoftのビジネスが大きく変わり始めているからだ。

 確かにMicrosoftのビジネスの中では、OSの販売やOfficeの販売などによる利益は、大きなウエイトを占めている。しかし今後10年で考えれば、ソフトウェアのパッケージ販売ではなく、Microsoft Azureのようなクラウドプラットフォームや、Office 365のようなクラウドベースのサービスで利益を得るようなビジネス形態に変化していくのだろう。

 こういった変化に対応し、さらにMicrosoft独自のテクノロジーを生かしていくためには、.NET Frameworkをスタンダードにして、マルチプラットフォームで動作できるようにしていく必要があるのだと思われる。

 実際、Connect();のセッションでは、Microsoft Azure上のLinux VMに、Dockerエンジンによりコンテナ化された.NETコアランタイムとASP.NETで開発したアプリケーションを載せ、動かすデモを行っている。

 ただ、Linuxのサーバーサイドのフレームワークに関しては、OracleのJavaがスタンダードとなっている。これを.NET Frameworkでひっくり返すのは、並大抵の努力では実現できない。このあたりは、今後の成り行きを注視していく必要がある。

(山本 雅史)