Microsoft .NET のアップデートには Blazor WebAssembly の C および C++ コードが含まれており、Visual Studio 2022 のリリース日も発表されました。

Table of Contents

Microsoft .NET のアップデートには Blazor WebAssembly の C および C++ コードが含まれており、Visual Studio 2022 のリリース日も発表されました。

Microsoft は、ネイティブ依存関係を Blazor WebAssembly にコンパイルする機能や、Visual Studio 2022 のリリース日が 11 月 8 日であることなど、毎月恒例の .NET ニュースを大量に発表しました。

長期サポートリリースであることから重要な意味を持つ.NET 6のリリースが間近に迫っており、11月9日~11日に開催されるオンラインイベント.NET Conf 2021で発表される予定です。Visual Studio 2022のリリース日も当然のことです。ただし、すべてが準備完了しているわけではありません。特に、XamarinテクノロジをベースとしたクロスプラットフォームのMAUI(マルチプラットフォームアプリUI)フレームワークは、2022年初頭にRCリリース、2022年第2四半期に一般提供が予定されています。MAUIのPreview 9はすでにリリースされており、コントロールとグラフィックスAPI(Microsoft.Maui.Graphics)が更新されています。

リリースサイクルのこの段階では、新機能はバグ修正に取って代わられますが、ブラウザアプリケーション向けBlazorフレームワークに重要な新機能が追加されました。プリンシパルプログラムマネージャーのDaniel Roth氏は、Blazor WebAssembly (Wasm) アプリのネイティブ依存関係について説明しました。これは、「あらゆるポータブルネイティブコードをネイティブ依存関係として使用できる」ことを意味します。これはつまり、例えばブラウザで実行されているC#コードからCコードを呼び出すことができることを意味します。C#コードとCコードはどちらもWasmにコンパイルされるため、技術的には小さなステップに思えるかもしれませんが、サーバーまたはデスクトップ上のC#のネイティブコード相互運用性と同じように動作するように巧みにラップされています。

この新機能は、.NET WebAssemblyビルドツールと呼ばれるVisual Studioコンポーネントに依存しており、C++およびC用のEmscriptenコンパイラツールチェーンを含む多くのものをインストールします。主な制限は、コードが移植可能である必要があることです。ただし、JavaScriptにはネイティブの64ビットint型がないため、一部のコード(64ビットint変数を使用するコードなど)は動作が遅くなる可能性があります。Roth氏は例として、ネイティブSkiaグラフィックスライブラリをラップし、Blazor WebAssemblyのプレビューサポートを備えたSkiaSharp 2Dグラフィックスライブラリを挙げました。

BlazorアプリケーションにCおよびC++コードを含めることができるようになりました

BlazorアプリケーションにCおよびC++コードを含めることができるようになりました

この新機能を1行のC関数で試してみたところ、うまく動作しました。BlazorはJavaScriptやTypeScriptの記述を避けるための回りくどい方法のように思えますが、サーバーサイドコードとブラウザアプリケーションの両方でC#を使いたい開発者にとっては価値があります。CやC++のコードを再利用したり、Emscriptenでコンパイルした.wasmコードを参照したりすることも可能です。

新しいVisual Studioを使いたい開発者は、リリース候補版に適用されるMicrosoftのGo Liveライセンスを利用して今すぐ使用できます。ただし、奇妙な点があります。リリース候補版をインストールしたユーザーは、来月には自動的にリリース版にアップデートされますが、Visual Studio 2022のプレビューリリースも継続され、コーポレートバイスプレジデントのAmanda Silver氏が説明したように、Visual Studio 2022 17.1 Preview 1になります。したがって、最新機能を求める開発者はプレビュー版を使い続けるべきですが、両方を並行してインストールすることも可能です。

  • .NET Foundationは「プロジェクト管理者の信頼を裏切った」と認める
  • .NET Foundationはエグゼクティブディレクターの辞任後、「コミュニティの問題」に焦点を当てる
  • .NET Foundationの責任者がコミュニティの論争を引き起こしたプルリクエストについて謝罪
  • マイクロソフトの.NET Foundation、理事を辞任しその役割に疑問を呈したことで批判を浴びる

.NET 6の新しいリリース候補版も提供開始されており、こちらもGo Liveライセンスが付属しています。プログラムマネージャーのリチャード・ランダー氏は、Visual Studio 2019は.NET 6では動作しないため、開発者はVisual Studio 2022にアップグレードする必要があると述べています。

Lander氏は投稿の中で、.NET 6に付随するC# 10の機能についても説明しました。.NET 6のmacOSサポートにもいくつか変更が加えられています。Lander氏は、Apple Siliconのサポートに必要なArm64 SDKがArm64とx64の両方の開発を可能にしたため、開発者にはArm64 SDKのみの使用を推奨しています。.NET 6がリリースされ次第、.NET 5 Arm64 SDKのサポートが終了するため、現在最新リリースを使用している開発者には迅速な変更が求められています。

マイクロソフトが.NET 6に注力しているにもかかわらず、プラットフォームの一部はあまり注目されていません。その一つがWindows Presentation Framework(WPF)です。開発者には好評ですが、マイクロソフトは戦略的に重要視していません。

「WPFテンプレートはリリースの一部として更新されていません」とロス氏は述べ、それ以上の説明はなかった。ある開発者はこう答えた。「デスクトップで開発していると、.NETでの開発が難しくなっています。WinFormsは古すぎるし、WPFは公式には機能していないし、WinUIはバグだらけだし…UWPは制限が多すぎる。Xamarinはモバイルに重点を置きすぎていて、デスクトップではリソースが多すぎる。」

デスクトップ開発のこれらすべてのオプションを詳しく説明すると、Microsoft がそれらすべてに投資していない理由がわかるかもしれませんが、WinUI や MAUI に取り組むよりも WPF と Windows Forms の改善を望むビジネス アプリケーション開発者は大勢います。®

Discover More