CodeZine(コードジン)

特集ページ一覧

【デブサミ2016】18-C-1レポート
すべてのアプリ、すべての開発者にとって使いやすくなった「Visual Studio Family」

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/03/18 14:00

 アプリケーション開発を取り巻く環境は、クラウドファースト、モバイルファーストの潮流により大きく変化している。それを受けマイクソフトの開発ツールや技術も「すべてのアプリ、すべての開発者のために」というビジョンの下、大きな進化を遂げている。もちろんVisual Studioの最新バージョン「Visual Studio 2015」もその一つ。さらにはAzureが提供する機能を用いることで、これからの開発現場には欠かせないDevOpsを実現する仕組みも用意している。そんなモバイルファースト、クラウドファーストを実現するマイクロソフトのアプリケーション開発技術について、日本マイクロソフト デベロッパー エバンジェリズム統括本部 テクニカル エバンジェリズム マネージャーのドリュー・ロビンス氏と、エバンジェリストの井上章氏が紹介した。  

日本マイクロソフト デベロッパー エバンジェリズム統括本部 テクニカル エバンジェリズム マネージャー ドリュー・ロビンス氏
日本マイクロソフト デベロッパー エバンジェリズム統括本部
テクニカル エバンジェリズム マネージャー ドリュー・ロビンス氏
同 エバンジェリスト 井上章氏
同 エバンジェリスト 井上章氏

マイクロソフトの技術はよりオープンな方向に進んでいる

 「開発者にとっていまや英語は欠かせない言語となっている。そこで本セッションはプレゼンテーションを英語、デモンストレーションを日本語というバイリンガルセッションで行う。これが英語にまた一歩近づくためのセッションとしたい」と井上氏の言葉を引き継ぐ形で、ロビンス氏は「ゆっくりクリアに話すようにがんばる」と語り、セッションをスタートさせた。

 「モバイルファースト、クラウドファーストという潮流を受け、マイクロソフトの開発の方向性はよりオープンな方向に進んでいる」とロビンス氏は語る。

 確かにこれまでマイクロソフトの技術はWindowsを中心とした閉ざされたものだった。しかしいまやそれは大きく変わり、「すべての開発者が、あらゆるアプリケーションを開発できる環境を整備している」とロビンス氏は言うのである。

 Visual Studioも同様、Windowsアプリケーションを作るため、C#や.NET言語を使うものというイメージがあったが、「もはやそうではない。それを証明するためにデモを見せたいとロビンス氏は語り、デモをする井上氏に交替した。井上氏はまず、参加者がどのくらい今のVisual Studioを知っているかを確認。最新のVisual Studio 2015をすでに使っていた人は会場の約半数。残りの半数の中にはそれ以前のVisual Studioユーザーも。その方たちに向け、「どう変わっているか知ってもらいたい」と語り、ロビンス氏が話したことを要約し、デモへと移った。

 最近のVisual Studioはラピッドリリースで、3~4カ月で更新されているという。「これまでアップデートというとバグフィックスというイメージが強いが、Visual Studioの場合は新しい機能が追加されている」と井上氏は語る。

 Visual Studio 2015はクロスプラットフォーム開発環境となっており、WindowsデスクトップアプリやWindowsストアアプリはもちろん、Androidアプリ、iOSアプリ、UWPなどさまざまなアプリの開発ができる。例えばC#でAndroidアプリを開発するのであれば、XamarinやUnityというサードパーティ製のツールがVisual Studioの中で動くことで、これが可能になる。「またMFCの開発も最新版でしっかりサポートされている。Win32アプリケーションも今まで通りC/C++で書けるようになっている」と井上氏は付け加える。しかもクロスプラットフォームのカテゴリーも変わってきており、C/C++言語でAndroidの共有ライブラリを作れたり、Cordovaを使ってHTML5やJavaScriptでiOSやAndroidアプリを開発できたりするという。

 ここで井上氏は、Visual Studioを使ってASP.NETのアプリケーションを作るデモに移った。ASP.NETの最新版はASP.NET 5(ASP.NET Core 1.0)となっており、「このバージョンではWeb.configなどのXMLファイルの形式の設定ファイルはほぼなくなっており、Project.jsonというJSON形式で、Visual Studioの中でアプリケーションの情報、構成が書かれるようになっている」と井上氏は説明する。

マイクロソフトのツールビジョン
マイクロソフトのツールビジョン

ASP.NET 5はBowerやnpm、GulpなどのOSSツールが用意されている

 ASP.NET 5プロジェクト開発の特徴は、クロスプラットフォームOSSツールを採用していること。Twitter社が開発したクライアントサイドのパッケージマネジャー「Bower」やNodeパッケージマネジャー「npm」などが、ASP.NET 5のプロジェクトの中で使える。「Gulp」というNode.jsベースのビルドタスクランナーのパッケージもインストールされている。

 井上氏はVisual Studioのメニューには、Bowerのパッケージ管理も用意されており、GUIを使ったさまざまなクライアントサイドのライブラリ管理が行えることを紹介。またAngularJSを使いたいのであれば、それもインストールして使うことができる。

 続けてGulpについても紹介。「何かしら任意のタスクを走らせたいときにGulpが活用できる」と井上氏は説明を続ける。ASP.NET 5プロジェクトでは、Gulpを使ったJavaScriptの最小化やCSSの最小化のタスクが用意されている。Visual Studioのタスクランナーエクスプローラを開くと、Gulpを使って定義されているタスクがわかるだけでなく、Visual StudioのGUIから実行させることもできるという。「このようにOSSで使われているものがどんどんVisual Studioに取り込まれている」(井上氏)。

 さらに井上氏はVisual StudioとGitHubが一緒に使えることも紹介した。Visual Studioのオンプレミス環境で一般的にバージョン管理をするには、Team Foundationのバージョン管理を使うことが多い。しかし「Gitもサポートしている。どちらのバージョン管理を使うか選択できる」と説明する。デモでは、Gitでローカル環境にリポジトリ管理環境を生成し、そこからGitHubに同期するということを行った。これはVisual StudioにGitHubの拡張機能をインストールすることで可能になるという。

 デモではVisual StudioからGitHub上にソースコードをパブリッシュする様子を披露した。こうすることで「Visual Studioの中でGitHubやGitを使って開発できるようになる」と井上氏は説明する。さらに井上氏はGitHubのソースコードをインターネット上に公開する方法についても紹介した。その際に使うのがAzureである。Azureを連携することで、Visual Studioで作られたモノがGitHubに置かれ、GitHubに置かれたモノがAzureのWebApp側で自動的にリポジトリを検知してデプロイし、Web上に展開できるというわけだ。

 ここで一旦、デモは終了。「マイクロソフトの技術に驚いた」と笑いながら、ロビンス氏が登壇し、ASP.NETの最新バージョンASP.NET 5(ASP.NET Core 1.0)、および.NET Core 5(.NET Core 1.0)の説明を開始した。「.NET Coreも最新バージョンではクロスプラットフォーム化され、Mac OS XやLinuxでも動くようになっている」とロビンス氏は語る。

 .NET Coreがクロスプラットフォームを実現していることを記すため、井上氏はUbuntu環境を立ち上げ、そこに先ほどWindowsのPCで作ったGitHub上にあるソースコードをUbuntu環境にクローンしてみせた。あとはProject.jsonの中に書かれたアプリケーションに必要な依存関係のライブラリをパッケージマネジャーからインストールすれば、Ubuntu環境で容易に動かすことができる。「このように.NET CoreとASP.NET Coreにより、サーバーサイドのクロスプラットフォームが実現する」と井上氏は力強く語る。

Visual Studioはすべての開発者が使える開発環境
Visual Studioはすべての開発者が使える開発環境

エディターとしての機能強化が続く「Visual Studio Code」

 ロビンス氏は「今後もVisual Studioはあらゆる開発者に対して、よりよい開発環境を提供していくことを目指している」と語る。昨年11月に米ニューヨークで開催されたマイクロソフトの開発者向けイベント「Microsoft Connect (); // 2015」ではVisual Studioの次のバージョンの話が出たという。どんな機能が搭載されるのか、ビデオによるデモが行われた。

 「まずセットアップ画面が変わる」と井上氏は語る。例えばPython開発環境のアドインをインストールするのに、場合によっては1時間以上かかっていたこともあったが、新バージョンではインストーラーが改良される、と井上氏。またVisual Studio自体も軽量化され、最初のインストールの状態もシンプルになるという。「PHPをはじめ、いろいろな言語をVisual Studioで使えるようになる」と井上氏は語る。そしてもう一つ便利なのが、セットアップ画面からマイクロソフトIDでログインすることで、別の環境でセットアップしたVisual Studioと同じ構成ですぐにセットアップを開始できることだ。

 またC# 7という次バージョンのC#についても簡単に紹介された。次バージョンではnullの判定がよりシンプルなコードで書けるようになるという。

 ロビンス氏の説明は「Visual Studio Code」に移った。非常に軽量で高速なエディターで、「ソースコードをすべてGitHub上で公開し、その下で開発が進められている」とロビンス氏は説明する。Visual Studio Codeはエディター、ソースコントロール、タスク管理という機能で構成され、プロジェクトコードは基本的にYeomanなどのコードジェネレータを使って生成することになる。現在、より簡単に使えるようにエディター周りの機能の充実を図っているほか、Node.jsの開発環境も整備しており、Node.jsのデバッグもできるという。

 「Visual Studio Codeも拡張でいろいろな機能を後から追加していくことができる」と井上氏は語り、「Visual Studio Codeに標準で用意されるMarkdownプレビュー機能と共に、Markdownのリンティング(構文解析)の拡張機能を追加することで、Visual Studio CodeをMarkdownエディターとして使うこともできる。Twitterクライアントの拡張機能もあるので、コードを書くのに飽きたらVisual Studio CodeからTwitterを使うこともできる」と語り、会場の笑いを誘った。

Visual Studio Codeの拡張機能
Visual Studio Codeの拡張機能

Visual Studio、Visual Studio Team Services、Azureを連携しDevOpsを実現

 Visual Studio Team Services(旧名はVisual Studio Online Services)ついても紹介された。このソリューションは、チームでのコードの共有や作業の追跡、ソフトウェアを出荷するためのもので、オンプレミスで利用されるTeam Foundation Serverのクラウドサービス版。これを使うとどういう状態か、実際にメンバーに誰がいるかなど、開発状況をダッシュボードで一元管理できる。「DevOpsの実現に活用できるツールでもある」とロビンス氏は説明する。

 デモでは、カンバン方式によるワークアイテムの管理、タスクの変更が簡単にできることなど、さまざまな機能が紹介された。またAzureとの連携も披露。誰がどのタイミングでこのソースコードの変更をコミットしたかというグラフ、コミットログなども履歴として見られるという。「実際にリポジトリ管理と連携していけるので便利に使える」と井上氏は語る。

 また、Team Servicesでも拡張機能が使える。マーケットプレイスにあるさまざまなタスクのアイテムを追加できるという。その一つにCordovaのビルドが可能になる拡張機能があり、リリース管理もできるため「自動化が非常に進んでいる」と井上氏は語る。

 DevOpsでは、デプロイされたアプリケーションについても動作状況を監視し、パフォーマンス的に問題がないか確認して、次の開発に生かすことが求められる。そのような際に活用したいのが「Application Insights」という機能だ。「これを有効にすると、アプリケーションの動作状況をAzure上に蓄積、可視化できるので、より詳細な情報がダッシュボード上で見られるようになる」と井上氏は説明する。このような分析により、アプリケーションのパフォーマンスを上げていくことができるというわけだ。これはAzure側のダッシュボードで見られるだけではない。これらの情報はVisual Studioからも見ることができ、開発に活かせる。「アプリケーションのパフォーマンスチューニングが容易にできるようになる」(井上氏)

 さらにApplication Insightsの中でパフォーマンステストも簡単にできるようになるという。「Visual Studio、Visual Studio Team Service、Azureを使うことでDevOpsのサイクルを一通り回していくことができる」とロビンス氏は言い切る。

Visual Studio Team Servicesでデプロイまでを自動化する
Visual Studio Team Servicesでデプロイまでを自動化する

 Visual Studioはクライアントサイドのクロスプラットフォームも実現している。Cordovaのフレームワークを使えば、HTML5の技術でAndroid、iOSアプリの開発が可能になる。Visual Studioでエミュレータが用意されているので、実機の有無も心配する必要はない。井上氏はRipple EmulatorというGoogle Chromeベースのモバイルエミュレータでデモを実施。加速度センサーのテストもできるという。

 もちろんVisual StudioはWindows 10もターゲットにしている。Windowsアプリの開発については、デベロッパー エバンジェリズム統括本部 プラットフォーム エバンジェリスト高橋忍氏がゲストで登壇。高橋氏は「翌日に行われる(高橋氏の)セッションの宣伝として来た」と語り、iOSのX-codeのObjective-CのプロジェクトをVisual Studioで読み込んでコンパイルするとUMPのアプリケーションになる「Bridge for iOS」、WebアプリをWebビューでアプリ化する「Bridge for Web」という技術を紹介。さらにWindows 10 Mobileと外部モニターを接続し、PCのように利用できる「Continuum」機能についても簡単に紹介した。

同 プラットフォーム エバンジェリスト 高橋忍氏
同 プラットフォーム エバンジェリスト 高橋忍氏

 マイクロソフトでは開発者をサポートするため「Visual Studio Subscriptions」を用意しているので、活用してほしいと井上氏は語る。

 「インフラ技術者、開発者をはじめ、ITに携わるすべてのエンジニアのための技術コンファレンス『de:code 2016』が5月に東京で開催される。ぜひ、そこでまたお会いしましょう」ロビンス氏は最後にこう呼びかけ、110分間におよぶセッションを締めた。

お問い合わせ

 日本マイクロソフト株式会社

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5