Microsoftは1月、Visual Studio 2019 for Mac 8.4.3をリリースした。デベロッパコミュニティフォーラムに開発者から直接寄せられた要求に応えた機能と改善が多数含まれている。Visual Studio for Macでは、AndroidとiOSの最新のプラットフォーム機能に加えて、Windows、macOS、Linuxでホスト可能な.NET Coreアプリケーションをターゲットにすることが可能である。
今回の新リリースには、.NET Core 3.1の最新の安定バージョンのサポート、.NET Core Blazor Serverアプリケーションの開発対応、スキャフォールディング(scaffolding)、IDEの改善、編集エクスペリエンスの向上、.NET CoreライブラリからのNuGetパッケージ作成の分散サポートなどが含まれている。
.NET Core 3.1のサポートでは、小規模な改善がいくつか行われている。中心となるのはBlazorで、.NET Core 3.0に対して大きく2つの機能が追加されている。
.NET Core Blazor Serverは、インタラクティブなアプリケーションの構築に、Blazorフレームワークをベースとして使用する。
Blazor Serverの動作は、DLLにパックしたC#コンポーネントを送信して、ブラウザ内で実行することによって行われる。クライアント側のJavaScriptからもサーバにSignalR接続がセットアップされて、Blazorランタイムのすべてのレンダリングはサーバ側で実行される。これによってブラウザとサーバの間に、リアルタイムな双方向通信が構築されることになる。一方でBlazorは、WebAssemblyを使ってクライアント側のみで動作することも可能である。この場合は、Blazorランタイムが要求に応じて各コンポーネントをレンダリングし、ブラウザ側のメモリスペース内にフェイクのレンダリングツリーを構築する。
これによって、Windowsデスクトップで実行される共有DLLとそのモデルを、Visual Studio for Mac Blazorプロジェクトのデータモデルとして使用することが可能になる。これはひとつのDLLで、ビューモデルやデータモデルは同一であるため、プロジェクト間で同期を維持する必要はなくなる。
Visual Studioの新機能として、Blazorプロジェクトの新規作成、実行、デバッグが可能になった。プロジェクトテンプレートは、New Projectでの生成時に、.NET Coreの下のBlazor Server Appプロジェクトテンプレートとして登録されている。
(引用: Microsoft Visual Studio for Mac dev blog)
.NET Core Blazor Server以外にも、今回のリリースでは、一般的なシナリオ用のボイラプレートコードを生成するスキャフォールディング(scaffolding)が利用できるようになった。これはコミュニティから最もリクエストの多かった機能だ。スキャフォールディングは、データベースモデルに対する基本的なCRUD操作用のコードを効率的に生成するために使用される。スキャフォールドテンプレートはページテンプレート、エンティティページテンプレート、フィールドページテンプレート、フィルタテンプレートで構成される。
エンティティの新規作成はNew ScaffoldingというAddポップアップで行う。右クリックでコンテキストメニューをオープンしたノードが、生成されたファイルの配置場所になる。この操作によってスキャフォールディングウィザードがポップアップして、コード生成をアシストする。操作が完了すると、Visual Studioが必要なNuGetパッケージを追加して、スキャフォールダをベースとした新たなページを生成してくれる。
すでにTwitterには、肯定的なフィードバックが現れている。MicrosoftのプロダクトマネージャであるCody Beye氏は、リリースに対するフィードバックをコミュニティに求めている。ユーザSpeedDemoSAのコメント:
スキャフォールディング機能が追加されたのがうれしいですね。個人的に#VS4Mac で一番欲しい機能が手に入りました。動作も申し分ありません。ほんとうにありがとう。
このリリースには、すべてのユーザがVisual Studio for Macを使用できるような支援技術をサポートする、IDEの変更も含まれている。エディタも改良されて、フルカラー表示、コード補完、.razorファイル用のIntelliSenseがサポートされた。
ただし、Blazor WebAssemblyは現在はプレビュー版である点には注意が必要だ。リリースは2020年5月に予定されている。
機能やフィーリングをWindows版VSにより近付けるため、Visual Studio 2019 for Mac 8.4.3では、プロジェクトを右クリックしてPackを選択することによって、.NET CoreライブラリからNuGetパッケージを生成するオプションが追加された。この操作により、出力フォルダにNuGetパッケージ(.nupkg)ファイルが生成される。
(引用: Microsoft Visual Studio for Mac dev blog)
バグレポートや機能提案をDeveloper Communityに報告することで、開発者の声を届けることができる。これはつまり、Visual Studio 2019 for Macのロードマップが、コミュニティからのフィードバックによって直接決定される、ということだ。
次期バージョンであるVisual Studio 2019 for Mac 8.5は現在プレビュー中で、Xamarinの拡張、ASP.NET Coreプロジェクト用の新テンプレート、アクセシビリティサポートの改善などが提供されている。このバージョンでは、次のことが可能になる。
- Androidアプリケーションを再起動する必要なく、変更をすばやく確認することが可能になる
- マルチターゲット再ロードにより、iOSシミュレータやAndroidエミュレータなど、同時に複数のターゲット上でXAMLを簡単に変更することができる
- XAMLドキュメントアウトラインにより、"Document Outline"ペーンでXamarin.Forms UIの階層を確認することが可能になる
- Visual Studio for Mac用のデフォルトiOSデザイナが設定可能になったことで、開発者が最も生産性が高いと判断したiOSオーサリングツールを使用できるようになる