オープンソース化だけじゃない、開発者のスタイルもマルチプラットフォームになる次世代の.NETとVisual Studio

日本マイクロソフト株式会社は12月18日、ソリューションパートナーやアプリケーション開発者などを対象に「Visual Studio/.NET製品戦略説明会」を開催した。11月に米国で開催された「Connect();」で発表された内容を中心に、一新される次世代開発プラットフォームを紹介する場だ。
.NET Coreのオープンソース化や、オープンソースの新コンパイラ「Roslyn」を採用した次期開発プラットフォーム「Visual Studio 2015」などについて、その概要や位置づけが解説された。また、実際にデモも披露された。
説明を聞いて改めて感じたのが、Microsoftのビジネスモデルのシフトだ。すでにOfficeやWindowsで、製品からサブスクリプションへのシフトが見られる。同様に開発プラットフォームにおいても、オープンソース化や無償化、マルチプラットフォーム化を進めて.NETプラットフォームのエコシステムの拡大を狙う。そして、それを束ねるMicrosoft Azureや、Visual Studio上位バージョン、MSDNライセンスなどにビジネスの重点をシフトしていくように受け取れた。
同時に、Visual Studioという機能が充実している反面、自己完結的な開発プラットフォームだけでなく、新しい.NET CoreやRoslyn、ASP.NET 5といった、クロスプラットフォームによる開かれた開発スタイルへの拡大が感じられた。
以下、製品戦略説明会の模様をレポートする。
多様なデバイスやサービスをAzureとVisual Studioで束ねる
「すべてを束ねる製品を提供する唯一の会社であるという自負を持っている」。開会の挨拶を兼ねて、Microsoftの一連の施策についてその背景を、日本マイクロソフト株式会社 デベロッパーエクスペリエンス&エバンジェリズム統括本部 マーケティング部 部長の米野宏明氏が説明した。
背景として語られたのが、これまでPCだけだったプラットフォームの、スマートフォンやタブレット、IoT(Internet of Things)にまつわる各種機器への拡大だ。
米野氏は「特定のプラットフォームに依存するのはリスクが高い。そこで、クライアントですべて処理するのではなく、さまざまなデバイスやサービスをクラウドで束ねることになる」と説明。そして、そのクラウドのプラットフォームとしてAzureを、さまざまなクライアントからクラウドまで統合的に開発する環境としてVisual Studioを、それぞれ位置づけた。
これが、サティア・ナディラCEOが掲げる「モバイルファースト、クラウドファースト」だ。小型デバイスでWindowsを無償化してデバイス増加を狙うとともに、ユーザーを増やすために積極的にほかのプラットフォームにも対応している。「CEO交代でMicrosoftが大きく変わったと感じるのが、こうした、ビジネスの収益性をどこに求め、開発者にどこに来てもらうかの変化だ」と米野氏は語った。

図1:日本マイクロソフト株式会社 デベロッパーエクスペリエンス&エバンジェリズム統括本部 マーケティング部 部長 米野宏明氏
Visual Studioでクロスプラットフォームなモバイル開発
「PCとWindowsだけという世界は捨てる。すべてのアプリケーション、すべての開発者を対象にする」。次世代の.NETとVisual Studioによる開発プラットフォームについて、日本マイクロソフト株式会社 デベロッパーエクスペリエンス&エバンジェリズム統括本部 エバンジェリスト 井上章氏がデモをまじえて解説した。
井上氏はまず、次期Visual Studioである「Visual Studio 2015」プレビュー版(Visual Studio 2015 Preview)を紹介した。すでにMicrosoft AzureにはVisual Studio 2015 Previewの入った仮想マシンイメージが用意され、MSDNサブスクリプションライセンスで利用できるという。氏は実際にAzureにアクセスして、「Visual Studio 2015 Ultimate Offline preview」版を起動してみせた。
氏が最初に強調したのが、初回起動時に追加ソフトをインストールする「Secondary Installer」だ。ここでは、Android SDKやAndroidエミュレーター、JDK、Node.js、git、はてはGoogle Chromeまでインストールされる。井上氏は「これらのソフトを見ても、Windowsのアプリケーション開発だけではないことがわかる」と述べた。
Visual Studio 2015で大きく変わったところとして井上氏が挙げたのが、クロスプラットフォームなモバイルアプリケーション開発だ。共有ライブラリから、XamarinによるAndroidとiOSのアプリ開発、Apache Cordova(PhoneGapのオープンソース版)によるHTML技術を使ったアプリ開発まで対応する。
井上氏は実際に、Visual Studioのプロジェクト作成からAndroid用のテンプレートを見せ、さらにWebアプリからCordovaに移植されたゲーム「宇宙侵略者」を実行してみせた。このデモには、Google ChromeベースのAndroidエミュレーター「Ripple」が使われた。

図2:日本マイクロソフト株式会社 デベロッパーエクスペリエンス&エバンジェリズム統括本部 エバンジェリスト 井上章氏

図3:Microsoft AzureでVisual Studio 2015プレビュー版入りイメージを試せる

図4:新しいプロジェクトの作成で、テンプレートを「android」で検索したところ。CordovaアプリからWearアプリまである

図5:Cordovaアプリ。HTMLやCSSで作られ、一見Webアプリに見える

図6:Cordovaで作られた「宇宙侵略者」を、Google Chrome上のエミュレーターRippleで実行
複数の開発プラットフォームに対応する新しい.NETとASP.NET
続いて、井上氏はオープンソース化を含む次世代.NET Frameworkの「.NET 2015」について紹介した。
.NET 2015では、実際には2種類の系列が並行して存在する。現在の.NET Framework 4.5の延長にある「.NET Framework 4.6」と、モバイルやクラウドに最適化して大きく刷新された「.NET Core 5」だ。オープンソース化されたのは.NET Core 5の方だ。
.NET Core 5の特徴に、モジュール化がある。コア機能以外をモジュール化し、必要なモジュールだけをロードして軽量に動かすというものだ。モジュールは、パッケージマネジャーの「NuGet」で追加インストールできる。これによって、ランタイムを軽量化してモバイルやクラウドに最適化すると同時に、モジュールを柔軟に継続的にリリースできるという。
また、コンパイルされて中間コード(MSIL)になっている.exeなどの実行ファイルについて、JITコンパイラ「RyuJIT」による高速化と同時に、事前にネイティブコードにコンパイルする「.NET Native」もサポートされる。
こうしたVisual Studio 2015や.NET 2015を支えるのが、オープンソース化された新コンパイラ「Roslyn」だ。Roslynは単にVisual Studioからコンパイルを実行するだけでなく、さまざまなAPIを持つ。これにより、例えばほかの製品から構文解析エンジンとして呼び出す、といったこともできるようになる。

図7:.NET 2015は、従来ベースの.NET Framework 4.6と新しい.NET Core 5の2系列からなる

図8:オープンソース化された新コンパイラRoslyn。APIでほかのプログラムから機能を使える
次期Webアプリケーション環境の「ASP.NET 5」にも、.NET 2015の特徴があらわれている。ASP.NET 5は、オープンソース(GitHubで公開)、クロスプラットフォーム、モジュラー化、side by side実行といった特徴を持つ。これにより、オープンソースのWeb開発環境の特徴を採り入れた作業スタイルがとれるようだ。
井上氏は実際にVisual Studio 2015でASP.NET 5のテンプレートからアプリケーションを新規作成してみせた。その中では、Node.jsのパッケージを管理する「npm」やクライアントJavaScriptのパッケージを管理する「Bower」も使えるようになっている。
ASP.NET 5の特徴に、コマンドラインから利用できるツール群がある。ランタイムの「kre」や、IISなしでコマンドラインから開発用Webサーバーを起動するkコマンド、ランタイムのバージョンを切り替えて実行できるkvmコマンド(Node.jsのnvmに相当)、ラインタイムパッケージを追加インストールするkpmコマンド(Node.jsのnpmに相当)などが使え、LL言語でのWeb開発に近いスタイルになっている。
こうしたコマンドによるスタイルを採り入れた理由には、クロスプラットフォーム対応がある。井上氏は実際に、同じASP.NET 5のプロジェクトを、Azure上のUbuntuでkコマンドから実行してみせた。同様にMacBookのOS Xでも実行。テキストエディタのSublime Textで、ASP.NETコードのハイライト表示や、エディタ内からのkコマンドの実行、ソースを変更して保存するとアプリケーションに再起動なしで反映されるところなどを見せた。

図9:ASP.NET 5の設定ファイルはJSON

図10:ASP.NET 5からBowerやnpmが使える

図11:MacでもASP.NET 5が動く。写真はGitHubから新しいASP.NETを取得しているところ
すばやく継続的に開発する機能を強化
「現在ではアプリの有無がビジネスの成功につながることも少なくない。そのため、すばやく継続的に開発することに価値がある」。Visual Studio 2015の機能強化や、無償版の「Visual Studio Community」について、日本マイクロソフト株式会社 デベロッパーエクスペリエンス&エバンジェリズム統括本部マーケティング部 相澤克弘氏が解説した。
機能強化点としては、「開発生産性」と「ALM(Application Lifecycle Management)」の2つがピックアップアップされた。
「開発生産性」の機能強化としては、ウィンドウを切り替えずにエラーの原因を調査する「Light Bulbs」がある。また、コード上でテスト結果や関数の参照数をポップアップ表示する「CodeLens」も強化され、ALMツールの情報や、データベースの使用量などのバックエンド情報、チームでのコミット数のグラフなどを表示できるようになった。いちど開発するだけでなく、開発したあとで継続的に改善していくための機能が強化されたようだ。
また、新しいユニットテスト(単体テスト)ツール「Smart Unit Test」では、コードから境界条件やコードパスを解析して単体テストを自動作成するという。そのほか、高負荷などテストしにくい条件のテストを、クラウドの仮想的な環境で実行するクラウドロードテストも紹介された。
一方の「ALM」について相澤氏は、「マイクロソフトはアジャイル開発を実践している」として、そのために継続的デリバリや、どのように使われているかの継続的モニタリング、バックログの継続的ラーニングが必要だと説明。「ミッシングリンクのないALM」を実現すると語った。
実際の機能としてはまず、リリース自動化の「Release Management」。“リリースは1回で終わるものではない”という考え方により、リリースパスを設定してリリースを効率化する。
また、「Application Insight」はアプリの利用状況をモニタリングする。アプリの中にコードを埋め込み、CPU利用率などのテレメトリーを取得することで、稼働状況を確認したり、優先的に改善すべき点を洗い出したりできるという。

図12:日本マイクロソフト株式会社 デベロッパーエクスペリエンス&エバンジェリズム統括本部マーケティング部 相澤克弘氏

図13:コード上でエラーを表示するLight Bulbs

図14:CodeLensを強化しコード上にALMや運用の情報を表示

図15:境界値やコードパスからユニットテストを生成するSmart Unit Test

図16:リリースを自動化するRelease Management

図17:Application Insightによるアプリのモニタリング
.NETプラットフォームを拡大する
すでに無償で公開されている「Visual Studio Community 2013」は、Professionalと同一の機能を持つ。従来、無償のものとして機能制限のあるExpress版があったが、それに代わって制限のないCommunity版が登場した。ただし、台数や年間売上などにより利用できる人は厳格に制限されている。なお、オープンソースソフトウェアの開発にもCommunity版が利用できるという。
Community版を出す目的について相澤氏は「フリーミアム戦略」と説明した。機能制限のないCommunity版によって、オープンソースやモバイルなど開発者に広くアプローチする。一方、Community版はExpress版と異なりエンタープライズアプリケーションの開発が認められていないため、Professional版の適用範囲が広がる。さらにALMの機能が必要になれば、Community版やProfessional版から、Ultimate版やPremium版にアップグレードしてもらう、という製品構成だ。
開発対象や開発者を拡大する狙いには、もちろん.NETやRoslynのオープンソース化も含まれる。これらにより、これまでは「Windows上でWindowsアプリを開発する」ことが対象だったが、これからは「いろいろな環境でさまざまなアプリケーションを開発する」ことが対象になるという。
これによって例えば、モバイルアプリ開発から、それと対になるクラウドアプリの開発まで、共通したプラットフォームでできることを相澤氏は強調した。Visual Studioでは、IDEの中からAzureのリージョン選択やデータベース設定などの操作ができる。Visual Studio 2015ではさらに、プロジェクトを作成するときにクラウドのプロジェクトを選び、開発したものをそのままAzureへのデプロイや、Azure上で動作するアプリのデバッグができるという。
さらにその他のアプリとして、IoTアプリ開発のための.NET Micro Frameworkや.NET Micro Framework SDKと、組込み機器向けRADツール「.NET Gadgeteer」も紹介された。ロンドンの地下鉄が採用し、車両のセンサーからの情報をメンテナンスに利用しているという。
こうしたプラットフォームの拡大について相澤氏は、「これからのシステム構築ビジネスでは、さまざまなデバイスのアプリケーションが対象になる」として、“ユーザーの数×デバイスの種類×アプリケーションの数×データ”の組合せから「クラウド上に利益を束ねるアプリを構築する」ことが求められると総括した。

図18:Community版により無償版もProfessional版も対象を広げる

図19:Visual Studioのモバイルアプリ開発

図20:Visual Studioのクラウドアプリ開発

図21:Visual StudioのIoTアプリ開発
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- マイクロソフト、.NETサーバースタックをオープンソースとクロスプラットフォームに対応
- TechEdの再来を! 日本マイクロソフト井上章氏が語るde:code 2015への想い
- Microsoft、「Visual Studio 2015 Update 3」「.NET Core 1.0」をリリース、LinuxやMac OS Xにおいても.NET Frameworkを利用した開発が可能に
- Webプラットフォームの全体像を知る
- 互換性を維持しつつOSSの潮流に対応。Active DirectoryやSQL Serverの取り組み
- ASP.NET Web開発のトレンド
- Visual Studio 2008が変える!デジタルワークスタイル像
- マイクロソフト、統合開発環境ツール「Microsoft Visual Studio 2012」を提供開始
- de:code 2018が開催。基調講演はクラウド、開発ツール、MRが語られる
- 「ソースオープン」から「オープンソース」へ… Go Azure 2015でマイクロソフトが見せた本気