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

2015年1月13日(火)
高橋 正和

複数の開発プラットフォームに対応する新しい.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を持つ。これにより、例えばほかの製品から構文解析エンジンとして呼び出す、といったこともできるようになる。

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

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

オープンソース化された新コンパイラRoslyn。APIでほかのプログラムから機能を使える

図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コマンドの実行、ソースを変更して保存するとアプリケーションに再起動なしで反映されるところなどを見せた。

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

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

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

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

MacでもASP.NET 5が動く。写真はGitHubから新しいASP.NETを取得しているところ

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

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

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

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

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

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

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

リリースを自動化するRelease Management

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

Application Insightによるアプリのモニタリング

図17:Application Insightによるアプリのモニタリング

フリーランスのライター&編集者。IT系の書籍編集、雑誌編集、Web媒体記者などを経てフリーに。現在、「クラウドWatch」などのWeb媒体や雑誌などに幅広く執筆している。なお、同姓同名の方も多いのでご注意。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています