複数の開発プラットフォームに対応する新しい.NETとASP.NET

複数の開発プラットフォームに対応する新しい.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によるアプリのモニタリング

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30