エンジニアが「一番やってみたいこと」から考える未来へのステップアップ――Visual Studioならここまでできる!:.NETのオープンソース化、新たな無償版エディションの登場でこんなに変わる
@ITが実施した読者アンケートでは「興味がある次世代技術」として、「クラウドを活用した開発」「マルチプラットフォーム開発」「ビッグデータ」「IoT」といったテーマが上位に挙がっていた。マイクロソフトでは、既存のスキルや環境を最大限に生かしながらこうしたテーマに取り組みたいと考えるエンジニアのニーズに応えるため、「Visual Studio」を中心とした開発プラットフォーム全体の急速な再構成に着手している。
@ITが2014年9月に実施した読者アンケートでは「興味がある次世代技術」として、「ウェアラブルデバイス」「クラウドを活用した開発」「マルチプラットフォーム開発」「ビッグデータ、機械学習」「Internet of Things(以下、IoT)」といったテーマが上位に挙がっていた(参考)。
近年注目を集めているこれらの最新技術に関心を持つエンジニアは増える一方で、実際に開発に取り組むに当たって情報収集や新たなスキル習得に掛かるコストが高いハードルになってしまっているケースも多いようだ。「すでに持っているスキルセットや慣れ親しんだ環境を最大限に活用しつつ、新たな技術を取り込むことができれば」と考えているエンジニアも多いのではないだろうか。
マイクロソフトは現在、このようなニーズに応えるため、急ピッチで対応を進めている。自社が持っているテクノロジの提供方法の変革、開発・実行環境の強化、さらにはオープンソース化といった、広範な施策を進めているのだ。
施策の一部は、11月中旬に米国で開催されたイベント「Connect();」において発表され、話題を呼んだ。トピックのいくつかをピックアップすると「サーバサイドの.NET Coreランタイムと.NET Frameworkのオープンソース化」「.NET Core 5のLinux/Mac OS X版の提供」「無償でProfessional版の機能が利用できる開発環境『Visual Studio Community』の発表」などである。
現行Professional版相当の機能を無償で利用できる「Visual Studio Community」
開発者にとって、とりわけインパクトが大きかったのは、「Visual Studio Community」だろう。現在、既存の最新版である「Visual Studio 2013 Update 4」に対応したCommunity版がすでに利用可能となっている。また、プレビュー版が発表された「Visual Studio 2015」についても、リリース後にはCommunityエディションが利用できるようになる。
なおCommunity版は、従来のExpress版と異なり一部利用条件が定められている。利用条件の詳細については「Visual Studio Community 2013 - Visual Studio」のページを参照してほしい。
マイクロソフトでは、このVisual Studioという多くの開発者が慣れ親しんでいる開発環境をフロントエンドとしつつ、そこで行う開発スタイルの変革、扱える技術の幅の拡大を迅速に進めている。
今回、冒頭の読者アンケートで「興味がある次世代技術」として挙げられた複数のテーマについて、現行最新版である「Visual Studio 2013 Update 4」および、次期版の「Visual Studio 2015」で、どのようなスタイルでの開発が可能なのかについてまとめてみよう。
従来のアプリ開発と同じ手法で「IoT」開発が可能
特に関心が高かった「ウェアラブルデバイス」や「IoT」といった分野に関しては、現行のVisual Studioにおいて、すでに一般的なデスクトップアプリと同等のスタイルで開発を行うための環境が整っている。
マイクロソフトは、この分野において、小規模組み込み環境向けの開発フレームワークである「.NET Micro Framework」と、GUIツール「.NET Gadgeteer」への取り組みを進めている。
.NET Gadgeteerでは、メインボードや、その上に載る各種センサーや通信インターフェースといったハードウェアを、ソフトウェアライブラリとしてカプセル化するアプローチを採っている。そのため、Visual Studioを利用して一般的なWindowsフォームアプリを作成する際に「ツールボックス」からオブジェクトをドラッグ&ドロップで配置するのと同じような感覚で、.NET Gadgeteerに準拠したハードデバイス同士の関連付けを行えるようになっている。
「従来、組み込み系、IoTの開発を行おうとすれば、専用の開発ツールや言語を利用するのが主流だった。Visual Studioでは、通常のデスクトップアプリの開発と同じ環境と言語で、組み込み系の開発が可能な環境が用意されている。今後、対応ハードの拡充や、フレームワークの機能強化に合わせて、できることの範囲も広がっていく」(日本マイクロソフト エバンジェリスト 井上章氏)
Azureとの組み合わせによる「ビッグデータ、機械学習」「クラウド」開発
「ビッグデータ」や「クラウド」も、エンジニアの関心が高いテーマだ。また、これらのテーマは、先ほどの「IoT」とも関連が深い。フロントエンドのデバイスで取得されたデータは、バックエンドのクラウド上に蓄積され、ビッグデータとして分析されることで、より大きな価値を生み出すからだ。
マイクロソフトのクラウドサービス「Microsoft Azure」(以下、Azure)では、ビッグデータを使った機械学習のための「Azure Machine Learning」(以下、Azure ML)というサービスが提供されている。バックエンドのこうしたサービスとフロントデバイスを組み合わせることで、より効果的にビッグデータを活用できるようになる。
例えば、実際に海外で実現している事例としては、エレベーターに設置されたセンサーから取得された各種のデータを継続的にAzure上に蓄積。Azure MLを利用した分析結果から、ある特定のデータ傾向と「故障」との関係を割り出して、より効率的なメンテナンスに活用することも行われているという。
デスクトップ向けのアプリ開発ツールとしてのみVisual Studioを使ってきた人にとっては意外かもしれないが、現行のバージョンでは、こうしたクラウド上で動作するアプリの開発や、「サーバーエクスプローラー」を通じたAzure上のサービス利用やデバッグなども、容易に行えるようになっている。
「AzureのサービスをVisual Studioから管理できることで、クラウド開発の生産性は大きく向上する。また、Azure SDKの機能強化に合わせて、Visual Studio側もそれに対応したアップデートが行われていく。さらに、チーム開発/ALMのソフトウェア『Team Foundation Server』のSaaS版である『Visual Studio Online』も、オンプレミスと変わらない感覚で利用できる」(井上氏)
「クラウドに限らず多くのケースで、開発者と基盤管理者が扱える範囲が異なっており、それが開発の『俊敏性』を高める際の障害の一つになっている。Web開発のテストのために、ちょっとサーバーを作って試したいというような場合は特に、その環境の管理やデプロイを、Visual Studioを通じて開発者が直接行えることに大きな意味がある」(日本マイクロソフト デベロッパーエクスペリエンス&エバンジェリズム統括本部 マーケティング部 エグゼクティブプロダクトマネージャー 相澤克弘氏)
スマホアプリ開発、ゲーム開発環境も「マルチプラットフォーム」に
近年、iOSやAndroidなどを搭載したスマートデバイスが急速に普及したのに伴い、これらのデバイスをターゲットに含めた「マルチプラットフォーム」開発は、開発者の関心が高いテーマになっている。マイクロソフト自身も、そうした環境の変化を認め、同社のあらゆる技術を「オープン」かつ「マルチプラットフォーム」で提供することに力を注いでいる。
すでに、iOSやAndroidに対応した.NETのマルチプラットフォーム拡張である「Xamarin」や、HTMLやJavaScriptで開発したアプリを各プラットフォーム向けのネイティブアプリとしてパッケージングする「Apache Cordova」を使った拡張機能は、Visual Studioから利用可能となっている。この二つはVisual Studio 2015 Previewから拡張機能として追加することなく、プリインストールされる。
またAndroid環境については、Visual Studio上で動作するエミュレーター「Visual Studio Emulator for Android」などもVisual Studio 2015 Previewから用意されている。さらにVisual Studio 2015 Previewのセカンダリインストーラーでは、Android NDK、Android SDK(API Level 19)、Apache Ant、JDK 7、Google Chromeなどを同時にインストールできるようになる。
このようにVisual Studioを使うことで、C#やHTML/JavaScriptによる開発スキルを容易にマルチプラットフォーム展開できる環境が整っているのだ。
また、マルチプラットフォーム開発に関連していうと、現在スマ―トフォンアプリではゲームが人気だが、ゲームはスマートフォンだけではなく、タブレットやコンソールでも動かす需要も大きい。近年ゲーム開発においては、これら全てのプラットフォームに対応できるゲーム開発環境「Unity」を使うのが主流でVisual Studioにも「Visual Studio Tools for Unity」という拡張機能が用意されている。UnityではスクリプトとしてC#を使えるが、この拡張機能によってUnityにおけるC#のコーディング効率を大幅に向上できる。
これまで「Visual Studio Tools for Unity」を使うには、Visual Studio Expressではなく、Visual Studio Professionalが必要だったが、Visual Studio Communityの登場により(前述のように利用制限はあるが)無償で利用できるようになるのはゲーム開発者にとって大きな可能性を広げることになったのではないだろうか。
オープンソース化で何ができる? DockerやMacへ広がる.NETの可能性
アプリをパブリッシュするターゲットだけではなく、実は「開発環境」そのものの「マルチプラットフォーム化」も着々と進みつつある。11月中旬に発表された、.NET Core、.NET Frameworkのオープンソース化や、.NETコンパイラーのオープンソース化(Roslyn)なども、そうした動きの一環である。
例えば近年、クラウド環境向けのアプリ配布技術として注目を集めている「Docker」のコンテナーに、オープンソース化された.NET Coreランタイムや.NET Frameworkを組み込むことで、.NETに準拠したアプリの実行環境が、さまざまなクラウド/サーバー上に展開される可能性も生まれている。オープンソース化によって、これまでVisual Studio上で蓄積してきたスキルを、あらゆる環境で活用できる下地が整いつつある。
「Roslynは、すでにMac OS XやLinux上で動いている。これによって、例えばMac OS X向けのエディターに、Visual Studioと同等のIntelliSense(コード補完などの開発生産性向上機能)を組み込んで、コンパイルできるようになる。つまり、Mac OS X上で.NET開発が可能になるということだ。さらにVisual Studio Online “Monaco”と呼ばれるエディター環境では、ブラウザー上からAzureで動くアプリの開発を可能にする取り組みを進めている。
これらによって、開発のための環境そのものもWindowsに限らず、あらゆるプラットフォームへと広がる。Visual Studio/.NETというプラットフォームは、あらゆるフロントエンドとクラウドに対して、あらゆる環境で開発を行えるものに進化しつつある」(井上氏)
最新のVisual Studioに触れて「無限の可能性」を実感しよう
今回、Visual Studioの最新動向を見ることで、この製品が単なる「デスクトップアプリの開発ツール」から、「最新の技術に対応した、あらゆるフロントエンドとバックエンド(クラウド)の開発・実行環境を包含したマルチターゲットのプラットフォーム」へと進化していることを分かっていただけたと思う。
「世の中のIT環境が大きく変わってきている現在、それに追随していくためには『オープン化』と『俊敏性』が求められる。ITをより豊かなものにしていくために、マイクロソフト自体が変わらなければいけないと強く感じていることの表れと受け取ってほしい。開発者の皆さんも変わることを恐れず、自分の好きな技術を使って、好きなモノを作るに当たって、古い技術ややり方に固執せず、前向きに取り組んでほしい」(井上氏)
「マイクロソフトの開発プラットフォームは、いまだにWindowsと、その上で動く.NETの世界だと感じている開発者も多いかもしれない。しかし、すでにその状況は大きく変わっている。.NETとVisual Studioの世界がオープンになったことで、.NET開発者が、あらゆるプラットフォーム、分野で活躍できる可能性が大きく広がった。そこには『無限の可能性』があると感じている」(日本マイクロソフト デベロッパー&プラットフォーム統括本部 マーケティング部 エグゼクティブオーディエンスマーケティングマネージャー 土屋奈緒子氏)
最新のVisual Studioに触れることで、IoTやクラウド、そしてマルチプラットフォーム開発といった「今、あなたが一番関心のあるテーマ」に取り組むのは、決して「ハードルが高い」ものではないと感じられるはずだ。まずはそこから「はじめの一歩」を踏み出してみてはいかがだろうか。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 老害エンジニアにならないために自分自身を「モダナイズ」するための極意
日々、新たな技術が生まれ、市場環境も変化し続けるIT業界では、エンジニア自身が自分を「モダナイズ」していくことが、生き残りのためのカギとなる。日本マイクロソフトのエバンジェリストが語る「モダナイズ」の極意とは何か。そして、そのために利用できるリソースには、どのようなものがあるのだろうか。 - ITエンジニアとして2020年に向けて活躍するための3つの「習慣」
@ITでは、日本のITエンジニアの現状や課題、技術への「思い」などを知るための読者調査を実施した。今回は、このアンケート結果を元に、エンジニアが日々の仕事の中で技術との関わりを楽しみ、社会でその能力を存分に発揮するために何ができるのかについて考えてみたい。 - 「デバイス市場シェア14%」の挑戦者、新CEO時代のマイクロソフトはどう変わりつつあるのか
「企業が競争力を高め、イノベーションを起こすためにはITのパワーが不可欠」とは長く言われ続けているものの、実際に現場でITに関わるエンジニアの中には「理想と現実」のギャップを強く感じている人も多いのではないだろうか。技術を持ったエンジニアが正しく評価され、会社や社会の中で力を発揮していくためには何が必要なのだろう。日本マイクロソフト 執行役 デベロッパーエクスペリエンス&エバンジェリズム統括本部長の伊藤かつら氏に話を聞いた。 - 第1回 初めてのVisual Studio 2013
プログラムはどうやって作るの? 開発ツールはどうやって使うの? ゼロから始める新人プログラマーのための連載スタート。
関連リンク
提供:日本マイクロソフト株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2015年1月26日