雑記
 

Visual Studio 2019 バージョン 16.6の新機能

2020/5/24

この記事が対象とする製品・バージョン

VS2019 Visual Studio 2019 対象です。
VS2017 Visual Studio 2017 × 対象外です。
VS2015 Visual Studio 2015 × 対象外です。
VS2013 Visual Studio 2013 × 対象外です。
VS2012 Visual Studio 2012 × 対象外です。
VS2010 Visual Studio 2010 × 対象外です。
VS2008 Visual Studio 2008 × 対象外です。
VS2005 Visual Studio 2005 × 対象外です。
VS.NET 2003 Visual Studio 2003 × 対象外です。
VS.NET 2002 Visual Studio (2002) × 対象外です。

目次

概要

2020年5月19日にVisual Studio 2019のバージョン16.6がリリースされました。

この記事ではVB/C#に関連する機能を照準に新機能を紹介します。

Visual Studio 2019を既にインストールされている場合、バージョンアップは自動的に行われます。手動で行いたい場合はVisual Studioの[ヘルプ]メニューから更新プログラムの確認をクリックします。

現在のバージョンを確認するには同じくVisual Studioの[ヘルプ]メニューからMicrosoft Visual Studio のバージョン情報をクリックします。

この記事では [ ] で囲んだ表示は出典の略称です。略称とURLは記事の末尾に記載しています。 [ ] の後ろに ( ) がある場合資料全体の中でどの部分に出典に該当する内容があるのかを示します。

 

参考:Visual Studio 2019 バージョン16.6 のリリースノート

https://docs.microsoft.com/ja-jp/visualstudio/releases/2019/release-notes-v16.6

 

Windowsフォームの新機能・変更点

C#で.NET Core版のWindowsフォーム デザイナーが使えるようになりました。

[R16.6] [BOD106](20:38)

[ツール] メニューの[オプション]で [環境設定] - [プレビュー機能]にある Use the preview Windows Forms designer for .NET core apps をチェックして、Visual Studioを再起動すると使えるようになります。

まだプレビュー機能という扱いのようですね。

VB版はまだです。C#との役割分担から考えてC#で機能が安定したらVBでも使えるようになるというところだと思います。

試してみるとツールボックスにButtonがなかったりちょっとおかしい・・・。

1回ツールボックスを右クリックして、アイテムの選択から「リセット」→「OK」をクリックするとButtonも出てきました。

現時点ではDataGridViewなどいくつかのコントロールがまだありません。すべてのコントロールが使用可能になるは バージョン 16.7 ということです。[BOD106]

サードパーティー製コントロールの対応はそれより先のようですが、2020年5月20日時点ではまだのようです。[BOD106]

16.6時点での進捗は不明ですが4Kなどの高DPIに対応したりといった進化もあります。[BOD106]

 

Webアプリケーションの新機能・変更点

クライアントサイドのBlazorが使用できるようになりました。

 [BOD106]

WebAssembly技術を使用したクライアント側で動作するBlazorアプリが作成できるようになりました。

プロジェクトの新規作成でBlazorアプリを選ぶとどちらのタイプを作成するか選択できます。

BlazorはWebアプリケーションの新しいアーキテクチャーです。

新しい標準技術であるWebAssemblyがブラウザー内でバイナリーコードを実行することを可能にします。マイクロソフトはこれを利用してブラウザー内でC#が動作するようにしました。これを利用するアプリケーションのアーキテクチャがBlazor WebAssembly Appです。

 

その他

ML.NET(マシンラーニング)のモデルビルダー

 [BOD106](23:27)

Visual Studioに組み込まれた機能として ML.NETのモデルビルダーが使用できます。まだプレビュー版です。

以前は、拡張機能としてプレビュー版のモデルビルダーを使用することができたようです。[BRI]

興味深い機能なのですが、やってみると使えないみたいです・・・。公式リリースノートにも記載されていないのでまだ待ちでしょうか。

 

Visual Studioの機能の追加で ML.NET モデルビルダー (プレビュー) をインストールできます。

そうすると、プロジェクトを右クリックして表示される[追加]メニューにMachine Learningが表示されます。

でも追加しようとすると Would you like to enable the ML.NET Model Builder preview feature so you can add Machine Learning to your .NET projects? Enable と表示されます。

クリックすると、プレビュー機能の選択ダイアログが表示されるのですがML.NETやModel Builderなどこれに該当する選択肢がなくこれ以上先に進めませんでした。

(訳:あなたの.NETプロジェクトでマシンラーニングを追加できるようにするために、ML.NET モデルビルダーのプレビュー機能を有効にしますか?)

この機能を紹介してる出典 BOD106 の動画 23:27 あたりで雰囲気がわかります。URLはこの記事末尾にあります。

 

ターミナルウィンドウのフォントを変更できるようになりました。

[VSM2019166]

ターミナルはVisual Studioのウィンドウの中でPowerShellやコマンドプロンプトを対話形式で使用できる機能です。[表示]メニューの[ターミナル]で起動できます。

[ツール]メニューの[オプション]から、[環境] - [フォントおよび色]で設定の表示欄に「ターミナル」を選ぶことでターミナルのフォント・フォントサイズを選択できるようになりました。

私は今までこのターミナル機能を使ったことがなく、ためしに起動してみたらいきなり文字化けしたエラーメッセージがでてきました。

さっそくフォントを日本語対応のものに変えたらエラーメッセージの内容を読むことができました。(なにやらバージョンの不整合のようなエラーでした。)

今までフォントが切り替えられなかったということはこういうときにエラーメッセージを確認できなかったということでしょうか。不便ですね。

 

 

VB/C#でのプログラミングの新機能・変更点

C# は 通常の文字列と逐語的文字列(@からはじまる文字列)を相互に書き換えられるようになりました。

[R16.6]

文字列の部分をクリックした状態で左のドライバーアイコンをクリックするか、 Ctrl + . で修正の選択肢が表示されます。(テンキーの . では反応しません。)

逐語的文字列から正規文字列(通常の文字列)へ

正規文字列(通常の文字列)から逐語的文字列へ

 

 

VBとC# のXMLコメントによるツールチップはXMLコメント内のsummary以外の要素も表示するようになりました。

[R16.6]

メソッドやプロパティなどの上にマウスカーソルを合わせて表示されるツールチップにこのようにXMLコメント内のいろいろな情報が反映されるようになります。

/// <summary>
/// セッションがアクティブであるかを取得します。
/// </summary>
/// <returns>
/// セッションがアクティブである場合 true を返します。
/// アクティブであるかはSessionコンテキストを使って判断します。
/// </returns>
/// <remarks>
/// ロードバランサーがスティッキーであることが前提です。
/// </remarks>
public bool IsActive()
{
    return true;
}

以前は次のようにsummary部分だけが表示されていました。この画像はVisual Studio 2017で採取しました。

 

VBとC#では、.editconfigで定義したfile_header_templateをクイックアクションでファイルの先頭に挿入できるようになりました。プロジェクト内のすべてのファイルに一括して挿入することもできます。

[R16.6]

でも、私が試したところうまくいきませんでした。editconfigで定義を追加した後、ファイルの先頭で Ctrl + . を押しても、「ここで使用可能なクイックアクションはありません。」とステータスバーに表示されます。C#で試しました。

 

Microsoft Fakes が .NET Coreに対応

[R16.6]

 

C# は明示的なキャストの修正を提案するようになりました。

[R16.6]

VBには以前のバージョンからこの機能がありました。

 

C# は条件式の簡略化を提案するようになりました。

[R16.6]

 

メモ

.NET Core 3.1 [BOD](30:08)

C# 8.0 [BOD](30:08)

 

参考:今後の.NET

バージョン 16.6には含まれていませんが、.NETにはまだまだいろいろなすごい計画があります。

現在.NET Framework・.NET Coreなどいくつかのソリューションに分かれてしまっている.NETは .NET 5 として2020年11月に統合されます。

 

それから、クロスプラットフォームで動作するネイティブ UI  通称 MAUI (マウイ) にも注目です。

これはXamarin.Formsを発展させたソリューションで、2020年後半にプレビュー版が予定されており、2021年に.NET 6 にあわせた公開を目指すとのことです。

ロードマップはこちら。

https://github.com/dotnet/maui/wiki/Roadmap

MAUIを使うと、Windows、Mac、iPhone、Andoroidなどさまざまなプラットフォームでネイティブに動作するUIアプリケーションが作成できるようになるとのことです。

どんなプログラムでどんな画面が作れるようになるのでしょうか。

マイクロソフトのスコット・ハンター氏(Scott Hunter)[BOD106](出典参照)で次のように述べています。

I'm super excited about this.

I think you're going to love it.

訳:私は、これについては超興奮しています。みなさんも大好きになると思います。

[BOD106]の 1:15:57頃からMacでC#で開発するデモ、その後Windowsで実行するデモが見られます。

 

現在はWindowsフォームやWPFはWindowsでしか動作せず、MacではCacaoなどと連携してUIが作れるもののMac限定。クロスプラットフォームで動作するネイティブUIは存在しません。

 

次に注目しているのはWSL2(Windows Subsystem for Linux)です。WSL2を使うとWindows上でネイティブなLinuxを実行できます。仮想マシンとしてはこれまでもHyperVなどで動作させられましたが、WSL2はマイクロソフトがコンパイルしたLinuxカーネルがWindowsに統合された形で動作するのがすごいところで、本物のLinuxなんです。

これとVisual Studioが連携すると、Windows上のVisual Studioで開発・デバッグしているのに、F5ボタンで実行するとLinux上で実行するというシームレスなコンビネーションが可能になります。これでLinuxアプリケーションの開発の敷居がとても下がります。

 

.NETはとても速いスピードで進化しているので追いつくのはなかなか大変ですね。機会があれば今後もこのような時事ネタの記事をお届けしたいと思います。

私は普段ブログで最新情報を収集しています。リンクを張っておきますね。

https://devblogs.microsoft.com/dotnet/

https://devblogs.microsoft.com/aspnet/

https://devblogs.microsoft.com/visualstudio/

 

出典

 

出典:R16.6

Visual Studio 2019 バージョン16.6 のリリースノート

https://docs.microsoft.com/ja-jp/visualstudio/releases/2019/release-notes-v16.6

 

出典:BOD106

Microsoft Build 2020 The Journey to One .NET

https://channel9.msdn.com/Events/Build/2020/BOD106

 

出典:BRI

ML.NET Model Builder is now a part of Visual Studio

https://devblogs.microsoft.com/dotnet/ml-net-model-builder-is-now-a-part-of-visual-studio/

 

出典:VSM2019166

Visual Studio 2019 16.6 Ships with ML.NET Model Builder, Codespaces, WinForms Designer Previews

https://visualstudiomagazine.com/articles/2020/05/20/visual-studio-2019-16-6.aspx