今回はついに正式リリースとなった「.NET 5」についてお届けします。
2020年11月10日からマイクロソフト社が開催しているバーチャルイベント「.NET Conf 2020」の初日に、「.NET 5」の正式版のGAが発表されました。
.NET 5注目の新機能
.NET 5では、「.NET Framework」と「.NET Core」が統合され、大きな節目となるリリースとなっています。もちろん新機能も多数追加されておりますので、気になったものをいくつか紹介していきたいと思います。
C# 9.0対応
.NET 5 では、C#の既定のバージョンが 9.0にアップされます。C# 9.0で新たに追加される要素として注目されているのが「Record型」です。
Record型については、「Java 14」でも同様の機能が追加されており、C#にもその後追いのようなかたちで実装されたことになります。
Record型は、クラスと同程度の拡張性に加え、構造体のような比較処理をあわせ持っており、冗長な比較処理を長々と記述する面倒さを排除できます。
単一の実行ファイルの強化
.NET Coreでもサポートされていた単一の実行ファイルの作成機能が強化されました。.NET Coreにおける単一の実行ファイルの作成については、以下の記事でも紹介していましたが、これまでは実行するときにすべてのファイルを一時ディレクトリに展開してから実行する、という動作でした。
この動作が.NET 5.0では改善され、一時ディレクトリに展開することなく直接実行することができるようになりました。
Windows Formsの強化
Windows Formsにも新しいタスクダイアログが追加されるなど、新機能の追加があります。また、メモリ使用量やパフォーマンスも改善が行われているようです。
さらに、.NET 5ではWindows Formsのデザイナでサードパーティのコントロールもサポートされるようになります。弊社にとっても待望の機能強化です!
ClickOnceのサポート
.NET Coreではサポートされない、と言われていたClickOnceのサポートも追加されました。.NET 5だけでなく、.NET Coreでも使用可能です。
VB.NET対応の拡大
.NET 5におけるVBのサポートについては、以前より以下ブログにてアナウンスがされておりました。
今回のリリースでは、Windows FormsやWPFもサポート対象となりました。
ASP.NET Coreの強化
ASP.NET Coreでは、.NET 5のAPIのサポートのほか、パフォーマンスが大幅に向上しており、特にJSONでの処理に関して、スループットやレイテンシーが改善しています。
参考:https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-in-net-5/#performance-improvements
.NET Confのキーノートの中でもBlazor WebAssemblyのパフォーマンス向上に関して紹介がありました。
また、新しく「dotnet watch」と呼ばれる機能が追加され、開発者がコードが変更されたときにブラウザを自動更新し、変更を即反映して確認ができます。
グレープシティの.NET 5対応コンポーネント
弊社の開発ツールも.NET 5への対応に向け開発を進めておりますが、今回は直近で対応予定のある(または対応済み)2製品についてご紹介します。
DioDocs
ExcelやPDFを作成・編集するAPIライブラリ「DioDocs(ディオドック)」は、.NET Standard 2.0以上に準拠のプラットフォームをサポートします。
今回リリースされた.NET 5もサポート対象となりますので、ぜひフレームワークをアップデートしてお試しいただければと思います。
ComponentOne
.NET開発コンポーネントセット「ComponentOne(コンポーネントワン)」では、2020年末にリリース予定の新バージョン「2020J v3」にて、.NET 5対応のコンポーネントをリリース予定です。
なお、ComponentOneの.NET 5対応のコンポーネントについては、英語版で先行してベータ版を公開しています。
ちょっとわかりにくいのですが、コントロール名の右上に「5」と付いているのが、ベータ版対応しているコントロールです。「2020J v3」ではこれらに加えさらに対応コントロールが増える予定なので、ご期待いただければと思います。