今週新たに発表された Microsoft の Visual Studio 2019 16.5 の 2 回目のプレビューでは、C++ 開発者向けの Linux サポートが強化され、Windows Presentation Foundation (WPF) の新しいデザイナーも含まれています。
Visual Studioは2~3ヶ月ごとに更新されます。バージョン16.4は12月上旬にリリースされたため、16.5は2月か3月にプレビュー版から移行する予定です。新しいプレビュー版は本番環境での使用にはサポートされていません。
Visual Studio 2019では、リモートマシンまたはWindows Subsystem for Linux(WSL)を使用したC++によるLinux開発がサポートされています。MicrosoftはWSLとの統合を改善し、よりスムーズな開発体験を提供しています。WSLはWindowsファイルシステムに簡単にアクセスできるため、リモート接続を設定する必要はありません。Windowsでプロジェクトファイルを編集し、Linuxでビルドするだけで済みます。CMakeまたはMSBuildのいずれかを使用できます。
ただし、WSLはコマンドラインのみに対応しているという難点があります。16.5の新機能として、WSL上でビルドを行い、SSH経由で別のリモートLinuxシステムにデプロイおよびデバッグできるようになりました。
リモートでビルドとデバッグを行う場合の最適化も新たに導入されました。Visual Studioは、SFTPとrsyncユーティリティを併用することでソースファイルの同期をよりスマートに行うようになりました。新バージョンに関するこちらの投稿によると、デバッグ開始までの時間が劇的に短縮され、例えば3分以上かかっていたものが2秒に短縮されるなど、大幅な高速化が実現しています。
Windows Subsystem for LinuxでのLinuxアプリケーションのデバッグがスムーズになりました
CMake を使用する開発者は、CMake スクリプト内で「定義へ移動」や「すべての参照の検索」などのエディター機能も利用できるようになります。
暮らしのためのデザイン
.NETの世界では、Microsoftは開発者が古い.NET Frameworkではなく、あらゆる場所で.NET Coreを利用できるようにすることに尽力しています。.NET Core 3.xを使用することで、WPF(Windows Presentation Foundation)およびWindows Formsアプリケーションを開発できるようになりました。ただし、まだ解決すべき問題がいくつかあり、その一つが新しいビジュアルデザイナーの必要性です。
WPF .NET Core 用の XAML デザイナーは、2019 年 12 月に一般提供されました。新しい 16.5 プレビューでは、このデザイナーを .NET Framework アプリでも使用できるようになりました。パフォーマンスも向上しているとされています。ただし、.NET Core 用の Windows フォーム デザイナーはまだプレビュー段階です。.NET Core はクロスプラットフォームですが、これらのアプリケーションはすべて Windows 専用です。.NET Core の利点は、Windows デスクトップ開発者が最新の改善点を常に把握できることです。一方、.NET Framework はもはやレガシーツールと見なされています。
C#にも新しいリファクタリングが追加されました。これらは、ローカル関数の抽出(C# 7.0以降でサポートされているローカル関数機能を使用)、静的化、文字列補間の簡素化です。文字列補間は、結果を文字列にフォーマットする方法です。
Xamarin を使用したクロスプラットフォーム開発にもいくつかの改善が加えられました。iOS 向けのホットリスタートがプレビュー版として提供され、デバイス上でデバッグ中にコードを変更し、「再起動」をクリックするだけで変更を適用できるようになりました。現在、この機能は iOS 上の Xamarin Forms アプリケーションでのみ動作し、その他の制限事項もあります。Android 開発者向けには、Android Apply Changes という同様の機能が提供されます。この機能は、実行中のアプリケーションをリソースファイルの変更内容で更新します。
変更と修正の完全なリストは、ここで確認できます。
なぜマイクロソフトはLinux向けのC++開発ツールに力を入れているのでしょうか?EAのケーススタディがこちらにあります。「EAのゲーム開発者はWindows環境での開発に慣れているため、Linux環境で直接開発を強いるのは難しいと考えました。そこで、clangを使用してWindowsからクロスコンパイルし、Linuxをターゲットにすることにしました」と、シニアソフトウェアエンジニアのベン・メイ氏は述べています。
つまり、Microsoftは戦略的に、Linuxサーバーへのデプロイ需要の高まりにもかかわらず、開発者をWindowsに引き留めようとしているのです。ASP.NET Coreでも同様です。Windowsで開発し、Linuxにデプロイするのです。今回のVisual Studioのアップデートは、Microsoftの世界におけるLinuxの重要性の高まりを示す、もう一つの小さな一歩と言えるでしょう。®