開発者が知っておくべき「マイクロソフトの最新技術動向」:Microsoft Build 2014 参加レポート
.NETアプリのマルチデバイス&クロスプラットフォーム化に力を入れ、OSSと積極的に連携するマイクロソフト。ユニバーサルアプリ、Cortana、Windows for IoT、TypeScriptなどのマイクロソフト技術とともに、Xamarin、AngularJS、Puppet/Chefなどの外部技術も押さえよう。
2014年4月2〜4日の3日間(米国時間)、サンフランシスコで世界規模のソフトウェア開発者カンファレンス「Microsoft Build 2014」が開かれた。このカンファレンスはマイクロソフトがほぼ毎年開催しており、マイクロソフトの最新技術や、近未来に登場予定の技術、次期製品の新機能などを知る貴重な機会となっている。そのため、このカンファレンスで発表された内容を一通り知っておくことは、開発者にとって重要である。
そこで本稿では、Build 2014の中で「知っておく必要がある情報」を、.NET開発者の視点で、できるだけシンプルにまとめたいと思う。
【コラム】世界の“Build 2014”と、日本の“de:code”
今回のカンファレンス参加者は、世界各国から集まり、5000人以上だったそうである。そのうち、日本人の参加者は40〜50名の1%程度だったので、「もう少し多くの日本人に、この世界的なカンファレンスに参加していただき、日本のソフトウェア業界がさらに盛り上がればうれしい」と、Build 2014日本人ツアー参加者向けの「カンファレンス全容のまとめセッション(日本語)」の場で、日本マイクロソフト社員から発言があった。とはいっても実際には、参加申し込みが即日売り切れになっている状況なので、日本では社内申請などに時間がかかり、どうしても申し込みに間に合わないケースが少なくないのかもしれない(日本人向けツアーに申し込むことで、参加可能な場合もあるので、次回参加されたい方はその情報もチェックするとよい)。
会場となったサンフランシスコ「Moscone Center」の入り口から入ってすぐのロビー(正面がChannel 9のスタジオ、左手が食事会場。この写真の右手裏側にエスカレーターがあり、それを登るとキーノートの会場やセッション会場などに着く)
日本マイクロソフトでは、日本オリジナルの開発者カンファレンス「de:code」を5月29〜30日に開催する予定だ。Build 2014に参加できなかった方は、de:codeへの参加を検討してみるとよいだろう。Build 2014からさらに2カ月近く後になるので、「Build 2014の内容をベースにしつつ、その後の最新情報などを加味したプラスアルファの情報も盛り込みたい」と考えているとのことだ。
このイベントへの参加で気になるのが、10万円程度と安くない参加費用だ(それでもBuild 2014の半額程度ではあるのだが……。大きな会場の手配などコストがかさむので、このレベルの大規模イベントを開催すると、どうしてもこれくらいの金額にはなってしまうとのこと。ちょうどデバイスが購入できる程度の金額であることから、「何かしらのデバイスがもらえるのではないか」という期待が渦巻いているが、同額・同規模程度のマイクロソフトイベントで配布されなかったケースもあるので注意しておきたい。個人的には「契約無しの最新Windows Phone端末」がもらえるとうれしいが、サプライズをあまり期待しすぎると何もなかったときにガッカリするので、それを申し込みの理由にはしない方がよい。でも少し期待したいところではある……)。
Build 2014と同じ最新情報が、国内で日本語で聞けて、環境を作らなくても最新機能のデモが見られ、限りある時間内で効率的に情報収集できることが、「de:code参加のメリット」になるだろう。そこが参加申し込みの検討ポイントになる。
マルチデバイス対応、クロスプラットフォーム強化
Build 2014に参加した筆者の印象は、「マルチデバイス対応と、クロスプラットフォーム強化が本格的になった」というものだった。
マルチデバイス対応(スマートフォン、タブレット、PC、Xbox One、あらゆるデバイス)
ユニバーサルWindowsアプリ(Windows 8.1/Windows Phone 8.1)
まず注目したいのが「ユニバーサルWindowsアプリ」だ。これについては、すでに@ITで「特集:Windowsストアアプリ開発最新情報(Build 2014より):ユニバーサルWindowsアプリ開発の勧め」という記事を公開している。簡単に説明すると、(現時点では)「Windows 8.1とWindows Phone 8.1に共通の(=universal)アプリ」を作るための技術である。ちなみに将来的には、Xbox Oneにも対応する予定だ。
Windows for IoT
「IoT」(=Internet of Things: モノのインターネット)とは、例えば腕時計から車まで身の回りのあらゆるモノがインターネットに接続する世界を指している。これにより、各種デバイスからの膨大な情報をクラウド上で収集・分析することなどが実現できるようになり、今までにない新体験のサービスが実現できる可能性が生まれている。
時代は、「一家に1台のコンピューターを!」という世界から、「あらゆるモノに、1台のコンピューターを!」という世界に進もうとしているのだ。こういった世界を、WindowsベースのOSで実現するために、(既存のWindows Embedded系や.NET Micro Frameworkとは異なる)新たな「Windows for IoT」というOSが無償で提供されることになった(ちなみに、これに関連して「ディスプレーサイズが9インチ以下のタブレットやスマートフォン向けのWindows」も無償となる)。具体的には、汎用(はんよう)マイコンである「Arduino」(アルデュイーノ)互換の「Intel Galileo」上で動作するWindows for IoTは無償となる。
この他、Arduinoの.NET Micro Framework版といえる「Netduino」でも、Microsoft Azure接続用のSDKが今春後半に登場する予定で、各方面でIoT対応が強化されていく予定だ(※関連して、IoT向けの「Microsoft Azure Intelligent Systems Service」という新サービスの限定プレビューがつい先日発表されている)。
この流れからも分かるように、どうやらマイクロソフトは、“IoT”の世界にもWindows開発者を連れていきたいと考えているようだ。おかげでWindowsベースのIoTデバイスでは、既存のスキルを活用してAzureなどのクラウドに接続するプログラムを記述できることになるなど、いろいろな恩恵が受けられそうである。
マイクロソフトの考えに呼応するように、「IoTとWindowsの関係」は、Build 2014で発表されたテクノロジの中では、世界的にもかなり注目されているようである。その根拠は、Channel 9の視聴数だ。これを見ると、基調講演を除く視聴数の中で「WindowsとIoT」というセッションがトップになっている。
IoTのようなデバイスの世界は、ソフトウェア開発者としてもアンテナを張っておくべきだろう。ちなみに筆者は、「Google GlassやAndroid Wearへの対抗で、マイクロソフトもいずれウェアラブルデバイス系OSを投入してくる」と見ていたが(Build 2014でそういった発表があり、試用デバイスがもらえるものと期待していたのだが……Xbox Oneをいただくことになった)、このWindows for IoTは今後、そういった動きともつながってくる可能性があるだろう。
クロスプラットフォーム強化(iOS/Android/Macなど)
ユニバーサルアプリ(iOS/Android/Mac)
前述したユニバーサルWindowsアプリで使われる「ユニバーサルな共有プロジェクト」は、Xamarin for Visual Studioの対応により、すでにiOS/Androidアプリでも活用できる(近い将来、Mac向けのXamarin Studioも対応予定)。これに関して、Build Insiderで筆者が「Universal Windows Apps(ユニバーサルアプリ)とは? コードを共有しよう」という記事を書いているので、興味がある方は参照してほしい。
Build 2014で感じたのは、世界的に見ても、やはり「Xamarin」の人気が急速に高まりつつあるということだ。例えばBuild 2014のセッションでも、セッション部屋が開始前に急きょ4000人が収容可能なキーノートと同じ部屋に変更になったことからも、その人気ぶりがうかがえる。それほど、想像以上のペースでXamarinファンが増えてきている。
OSS(Open Source)化や、OSSとの連携
今回のBuild 2014で感じた注目ポイントの2つ目が「OSS化」や「OSSとの連携」である。
OSS化
WinJS
Build 2014では、WinJSのオープンソース化(Apache 2.0ライセンス)が発表された。
このWinJSはこれまで、WindowsストアアプリをHTML/CSSとJavaScriptで記述するためのライブラリであった。前述の「ユニバーサルWindowsアプリ」と関係して、そのサポートプラットフォームにWindows PhoneとXbox Oneが加えられることになった(Build Insiderの記事の注釈「*3」に書いた理由により、iOSやAndroid向けで利用できるようにはならないだろう)。これにより、Web系開発者はさらに幅広いWindowsプラットフォームの開発が行えるようになっている。
Roslyn
また、次期.NET(C#とVisual Basic)コンパイラープラットフォームとして注目されてきた「コード名“Roslyn”(ロズリン)」もオープンソース化された。
Xamarinは独自のC#コンパイラーを構築しているが、このコンパイラーに切り替えてビルドできるようになる予定だ。またXamarinでは現在、Visual Basicでコードを記述できないが、RoslynによってVisual Basicがサポートされる可能性が出てきた。
ちなみに、その一方でJetBrains社は、自社のReSharperのコード分析などでRoslynを使わないことを明言している。理由としては、安定した自社製の実装がすでに存在することと、コードモデルのアーキテクチャの違いにより容易には導入できないことを示している。
TypeScript
TypeScriptは以前からOSS化されていたが、Build 2014で1.0正式版が発表されたのでぜひ押さえておきたい。
.NETにおけるOSSとの連携
AngularJS
前述したChannel 9の視聴数では、「WindowsとIoT」セッションの次に人気だったのが、「ASP.NETおよびVisual Studio 2013 Update 2以降のWeb関連の新機能」のセッションだった。.NET開発者向けのWeb技術情報は、Build 2014で新発表された技術よりも人気があったようだ。
そんなWeb系セッションの中で、目を引いたのが「AngularJS」関連のセッションだ。具体的には、「ASP.NETとAngularJSでSPA(シングルページアプリケーション)構築」「Visual StudioとWeb EssentialsでモダンWebアプリケーション構築」「AngularJSとSharePoint 2013」の3つのセッション。
AngularJSは、グーグルを中心に開発されているオープンソースのJavaScriptフレームワークで、マイクロソフトの従業員が開発しているKnockout.jsとライバル関係にあるといえる。そんなライブラリを積極的に活用する方法をセッションで示したわけだが、これは「人気のOSSと連携する」というマイクロソフトの現状の姿勢を反映したものだろう。
.NET Foundation
.NET系プロジェクトのオープンソース化を推進する組織「.NET Foundation」が設立され、マイクロソフトとXamarinによる下記のオープンソースプロジェクトが「.NET Foundation Projects」として紹介された。
- .NET API for Hadoop WebClient
- .NET Compiler Platform(“Roslyn”)
- .NET Map Reduce API for Hadoop
- .NET Micro Framework
- ASP.NET MVC
- ASP.NET SignalR
- ASP.NET Web API
- ASP.NET Web Pages
- Composition(MEF2)
- Entity Framework
- Linq to Hive
- MEF(Managed Extensibility Framework)
- OWIN Authentication Middleware(Katana Project)
- Rx(Reactive Extensions)
- Web Protection Library
- Windows Azure .NET SDK
- Windows Phone Toolkit
- WnsRecipe
- Couchbase for .NET(Xamarin)
- Mailkit(Xamarin)
- Mimekit(Xamarin)
- Xamarin.Auth
- Xamarin.Mobile
- System.Drawing(Xamarin)
Microsoft AzureにおけるOSSとの連携
Puppet/Chefのサポート
Linux系OSやWindows Serverのシステムを自動で構築・構成・運用できる「Puppet」や「Chef」というオープンソースのツールが今、人気になっている。この両ツールへのサポートが追加され、これらを使ったVM(仮想マシン)運用の自動化が、Microsoft Azure上でも標準で行えるようになった(しかもPuppetについては、VMのテンプレートが提供されており、比較的手軽に実践できる。ちなみにWindows上でPowerShell DSCを活用しても、こういった自動構成は実現できる)。
このように、オープンソースで人気の高いソフトウェアも、Microsoft Azureに機能として取り込んでいっている。
Windowsプラットフォームのアップデート
今回のBuild 2014の主役は「Windows Phone 8.1」だった(日本市場にWindows Phone最新版を出している電話会社が存在しないのが本当に残念)。それに加えて「Windows 8.1 Update」以降の機能が示された。以下では、これらについて注目したいポイントのみを簡単に箇条書きで書き出しておく。
Windows Phone 8.1
- デジタルパーソナルアシスタント「Cortana」
- アクションセンター(トップからプルダウンして表示)
- ロック画面やタイル表示のカスタマイズ性向上
- Wi-Fiネットワークへの自動接続が快適になる「Wi-Fi Sense」
- エンタープライズ向けの機能(VPNによる会社ネットワークへの接続など)
Windows 8.1 Update
- タスクバーにWindowsストアアプリも表示されるように
- スタート画面の右上に電源ボタン(タブレット端末の場合を除く)と検索ボタンが表示されるように
【今後のWindows 8.1アップデートで提供される予定の機能】
- ユニバーサルWindowsアプリは、通常のデスクトップアプリと同じようなウィンドウ形式で実行できるように
- スタートメニューが復活し、そこにライブタイルも表示されるように
Microsoft Azure
Microsoft Azure(=「Windows Azure」から改名された)関連では、多数の機能がアップデートされたり、GA(一般利用開始)になったりした(詳しくは「Azureで直近でGAしたり追加された機能とか ― ブチザッキ」や「Azureのアップデート: Web Sites、Virtual Machines、Mobile Services、Notification Hubs、Storage、Virtual Network、Schedulerなど | S/N Ratio (by SATO Naoki)」が参考になる)。Microsoft Azureについても注目ポイントを箇条書きで書き出しておく。
Microsoft Azure Webサイト
- Java(Tomcat/Jetty)サポート
- バックグラウンドタスクを実行できる「WebJobs」(少し前に導入された機能の紹介)
Microsoft Azure SQLデータベース Premium Edition
- データベースサイズが500GBytesまでに拡大(これまではBusiness Editionの150GBytesまでが最大だった)
- セルフサービス復旧: 35日分を自動バックアップ/日指定でリストア可能(オプションではなく標準機能)(4月末までにプレビュー提供開始)
その他
- 新ポータル「portal.azure.com」: タッチ操作しやすいタイル形式に強化
- 前述したPuppet/Chef対応
- Visual Studioから仮想マシン(Virtual Machines)を作成/破棄/管理できるように
少し先(だいたい2〜3年)のマイクロソフトのテクノロジや製品について、その技術仕様が確定する前の早い時期にデベロッパー向けに開催されるイベントだった「PDC(Professional Developers Conference)」と呼ばれていた開発者カンファレンスと比べると、「Build 2014」は現在もしくは半年先ぐらいの比較的直近の新技術の発表が多いと感じた。「数年先はどうなるか分からない」ということだと思うが、「テクノロジの夢を語る」という要素が減ってきており、そこは少し寂しく感じている(もちろんこれはあくまで筆者の主観なので、他の参加者は全く別の感想かもしれないが)。
そんな中で、「Windows for IoT」はソフトウェアが世界を変えていく可能性を広めてくれるテクノロジであるので、そういった面で興味深かった。しかしそうやってソフトウェア開発者がプログラミングするデバイスが増えれば増えるほど、できるだけ共通部分はC#などの記述しやすい開発言語で記述できる方がよいと考えるのは自然だ。そういった考え方に基づくと、共有プロジェクトが作れる「ユニバーサルアプリ」という新技術を、筆者は「今後、重要になるもの」として評価したいと思う。もちろんその文脈では「Xamarin」も重要である。
Windows開発者の視点で気になるのは、「Windowsフォーム」と「WPF」である。ユニバーサルWindowsアプリで「Windows 8.1アプリ」と言及された場合、自動的に「Windowsストアアプリ」を指すことになる。Windowsアプリなのに、WPFやWindowsフォームはその範ちゅうに入らないのだ。そして近い将来、ユニバーサルWindowsアプリ(つまりWindowsストアアプリ)が「Windowsデスクトップアプリ風にウィンドウ形式で動作するようになる」ので、ますますこの両者の肩身は狭くなってしまうかもしれない。
こうなってくると、大きなシェアを維持しているWindowsフォームは利用者数に急激な変化はないが、(新技術への移行に身軽な開発者が多いと想像される)WPFは利用者が激減してしまう可能性が高いと想像している(特に一般向けのアプリであれば、Windowsストアアプリ側に利用者を吸収されやすいと思われるので。ちなみに筆者もディープなWPF利用者である)。
読者の皆さんは、今回のBuild 2014の発表内容について、どのように感じただろうか? ユニバーサルWindowsアプリの将来性について自分なりの答えを考えるためにも、de:codeなどで積極的に情報収集することをお勧めしたいと思う。
【コラム】サンフランシスコに出張する際の参考に(冒頭のコラムに関連して)
最後に、せっかく現地参加しているので、サンフランシスコで魅力的だったことを少し紹介しておこう。カンファレンス参加などでサンフランシスコに出張する際の参考にしてほしい。
サンフランシスコで外せないのが、ケーブルカー乗車である。
そして食事。アメリカの食事は基本的に大味なものが多いので、実はファーストフードの方が味には安心して食べられたりするのだが、せっかくなのでアメリカならではのおいしい物も食べたい。
「サンフランシスコ」と言えば、カニ(Crab)やカキ(Oyster)、パン生地で包まれたクラムチャウダー(Clam Chowder: 貝のスープ)などの魚介類で有名だ。そこで、現地の方に「クラムチャウダーのおいしい店」を聞いてみたら、「Crab Chowder」をお勧めされた。確かにカニのチャウダーなら、カニとチャウダーを食べられる「一石二鳥」のグルメである。
それが食べられるお店の1つが、次の写真の「Nick's Lighthouse」だ。
もう1つ、朝食でお勧めなのが、「Sears Fine Foods」のパンケーキだ。小ぶりな3枚重ねのパンケーキが6つあり、そのパンケーキ自体は甘くなく、シロップで調整できるので、日本人に人気が出そうな味である。
これらが筆者のお勧めスポットだ。ぜひ次回のBuild参加時に(※サンフランシスコの場合に)立ち寄ってみてはいかがだろうか。
Copyright© Digital Advantage Corp. All Rights Reserved.