ニュース
» 2020年03月27日 12時01分 公開

XAMLや.NET、C++、デバッグなどで多数の新機能を提供:Microsoft、「Visual Studio 2019 バージョン16.5」を正式リリース

Microsoftは、「Visual Studio 2019 バージョン16.5」の一般提供を開始した。.NETモバイル開発など多くの新機能を提供する。2019年4月初めにリリースした「Visual Studio 2019」のマイナーアップデート版に当たる。

[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Microsoftは2020年3月16日(米国時間)、統合開発環境(IDE)の最新版「Visual Studio 2019 バージョン16.5」の一般提供を開始した。

 Visual Studio 2019 バージョン16.5は、開発プロジェクトを支援する多数の新機能を提供する。主な改良点はモバイル開発や.NET、テスト、デバッグなどに関するもの。概要は次の通り。

.NETモバイル開発を改善

 新版ではモバイルアプケーションのユーザーインタフェース(UI)を構築/検証するサイクルを加速できる。複数のXamarin.Formsターゲットに対して更新された変更を一度で確認できるようになったからだ。UIをわずかに修正するたびにアプリケーションを再構築する必要がなくなる。

 .NETモバイル開発では「XAML Hot Reload」を使う。複数のスタートアッププロジェクトがあるアプリケーションをデバッグし、XAMLを変更し、[保存]を選択すると、アプリケーションを再ビルドすることなく、AndroidやiOS上で変更を同時に表示する。

 また、Androidの[変更を適用]を使うと、ランタイムにAndroidリソースの変更を適用できるようになった。アプリケーションを再起動することなく、AndroidのデバイスまたはエミュレーターでAndroidリソースファイル(XMLレイアウト、ドローアブルなど)に加えられた変更を素早く確認できる。

.NETの生産性を向上

 .NETの生産性を向上できる改善点もある。if文をswitch文やswitch式に変換できるようになったことだ。

 変換するには、ifキーワードにカーソルを置き、[Ctrl]+[.]キーを押して[クイックアクションとリファクタリング]メニューを開く。その後[Convert to ‘switch’ statement]か[Convert to ‘switch’ expression]を選択すればよい。

ifからswitchステートメントへ変換しようとしているところ(出典:Microsoft

IntelliSenseを改良

 IntelliSenseを改良したことで、インポートされていない拡張メソッドの入力補完が可能になった。

 この機能にアクセスするには、[ツール]−[オプション]−[テキストエディタ]−[C#]−[IntelliSense]で、[unimported namespaces(experimental)]を選択する必要がある。

文字列補間を単純化

 可能な限り、文字列補間を単純化できるようになった。

 文字列補間にカーソルを置き、[Ctrl]+[.]キーを押して[クイックアクションとリファクタリング]メニューを開き、[Simplify interpolation]を選択する。

[クイックアクションとリファクタリング]メニューで文字列補間を簡略化しているところ(出典:Microsoft

ローカル関数への変換に対応

 既存メソッドのコードフラグメントをローカル関数に変換できるようになった。

 変換するコードを強調表示し、[Ctrl]+[.]キーを押して[クイックアクションとリファクタリング]メニューを開き、[Extract local function]を選択すればよい。

[クイックアクションとリファクタリング]メニューでローカル関数を抽出しているところ(出典:Microsoft

メンバーをstaticに変える

 staticでないメンバーをstaticに変換して可読性を向上できるようになった。

 メンバー名にカーソルを置き、[Ctrl]+[.]キーを押して[クイックアクションとリファクタリング]メニューを表示し、[Make static]を選択すればよい。

[クイックアクションとリファクタリング]メニューでメンバーをstaticに変えているところ(出典:Microsoft

テストのプロファイリングに対応

 新版では.NET Coreテストのプロファイリングを実行できるようになった。コード内にパフォーマンスの問題があったときに役立つ機能だ。

 プロファイリングを実行するには複数の前提条件がある。まず.NET Coreプロジェクトが完全なPDBを生成するように構成する必要がある。次に、Microsoft.Test.SDKのバージョンを16.4までアップグレードした方がよい。x86とx64の両方のアーキテクチャ設定でテストをプロファイリングできるようになるからだ。

 テストのプロファイリングを実行するには、テストエクスプローラーのコンテキストメニューから[プロファイル]を選択する。テストのプロファイリングは、Visual Studioの静的なインストルメンテーションとパフォーマンスエクスプローラー(.vsp)ドキュメントで利用できる。

C++と.NETのデバッグを改良

 従来のバージョンでも利用可能だった[ピン留め可能なプロパティ]は、マネージドコードのデバッグに有用だ。なぜならオブジェクトをドリルダウンすることなく、オブジェクトのプロパティを素早く表示できるからだ。

 新版ではこの機能がC#の「DataTips」と「自動変数」「ローカル」「ウォッチ」の各ウィンドウで利用できるようになった。

 同機能を利用するには、デバッガウィンドウで表示したいプロパティの上にカーソルを合わせ、表示されたトグル可能なピンアイコンを選択するか、コンテキストメニューで[メンバーをお気に入りとしてピン留め]を選択する。これで目的のプロパティがウィンドウの上部に即座に表示される。

デバッガで提供されるピン留め可能なプロパティ機能(出典:Microsoft

 また、マルチスレッドアプリケーションのデバッグに役立つ新機能も今回追加した。デッドロックなどスレッド関連のバグの原因特定に役立つ。

 具体的には.NETオブジェクトロックの原因となっているマネージスレッドを[コールスタック]ウィンドウや[並列スタック]ウィンドウ、[スレッド]ウィンドウの[場所]列で確認できるようになった。

[コールスタック]ウィンドウの.NETオブジェクトロックの表示内容(出典:Microsoft

 Dockerコンテナのデバッグ対応も進んでいる。既に前バージョンで、Docker Linuxコンテナで動作するプロセスのデバッグが可能になっている。

 新版では、Docker Windowsコンテナでもデバッグが可能になった。[プロセスにアタッチ]ウィンドウで[接続の種類]として[Docker(Windows Container)]を選択すると、実行中の.NET Framework、.NET Core、C++プロセスにアタッチしてデバッグを実行できる。

Docker Windowsコンテナプロセスの画面(出典:Microsoft

 さらに、Open Enclave SDK上でアプリケーションを構築する開発者向けの改良もある。同SDKを介してデバッグを実行できるようになった。

Open Enclave SDKを使う開発者向けのデバッグ画面(出典:Microsoft

.NETオブジェクト割り当てツールを強化

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。