オープンソース化だけじゃない、開発者のスタイルもマルチプラットフォームになる次世代の.NETとVisual Studio
複数の開発プラットフォームに対応する新しい.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を持つ。これにより、例えばほかの製品から構文解析エンジンとして呼び出す、といったこともできるようになる。
次期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コマンドの実行、ソースを変更して保存するとアプリケーションに再起動なしで反映されるところなどを見せた。
すばやく継続的に開発する機能を強化
「現在ではアプリの有無がビジネスの成功につながることも少なくない。そのため、すばやく継続的に開発することに価値がある」。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利用率などのテレメトリーを取得することで、稼働状況を確認したり、優先的に改善すべき点を洗い出したりできるという。
連載バックナンバー
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でマイクロソフトが見せた本気