はじめに
Announcing .NET 5.0 | .NET Blogにあるように、.NET5が正式にリリースされました。
オンラインイベントに参加して.NET5面白いと思ったので、簡単にまとめてみました。
詳しくは公開資料を見た方が良いです!
【オンライン/開催日決定】.NET 5 リリース記念 C# Tokyo イベント - connpass
.NET5 について
-
.NET Core + .NET Framework + XAMARIN/MONO
.NET5でもWPF, Windows Formsでの開発は引き続き可能。
.NET Framework 4.8が最終メジャーリリース。それ以降はサポートメインに。
共通言語ランタイムが異なる。
.NET Framework: CLR 4.0
.NET 5: CLR 5.0
=>C++アプリから呼び出す必要がある場合は.NET Frameworkに残す必要あり。 - GA(Current)なので、LTSと異なりサポート期間は短い
GA: GA/LTSがリリースされてから3ヶ月
LST: 最低3年 - C#9 F#5へアップデート
C# 9.0については以下を参照。
What's new in C# 9.0 - C# Guide | Microsoft Docs
C# 小ネタ:.NET 5.0 で使える C# 9.0 で気に入ってる機能紹介 - Qiita
=>Recode typesでimmutableクラスを明示しやすいのはいいかも。 - null許容参照型のアノテーションを.NETライブラリに導入。
null許容参照型のアノテーションstring?
でnullを許容する型だと示す。 - TFMがプラットフォーム共通とOS固有と大きく2つになった
ターゲット フレームワーク モニカー (Target Framework Moniker)。
.NET アプリまたはライブラリのターゲット フレームワークを指定するための標準化されたトークン形式のこと。
.NET 用語集 | Microsoft Docs
- パフォーマンス改善
- ARM64対応
- Windows 10 APIが使いやすくなった
カメラ、センサー、Windows ML、BLEなどが簡単に使える。
.NET 5からはTFMの指定のみで呼び出し可能。
DesktopのアプリやライブラリはUWPのAPIを簡単に参照できるようになった。
その他今後注目したいライブラリやツール
Windows UI Library 3.0 (Preview)
Windows 10のネイティブUIがOS組み込みからOSS+Nugetパッケージにする。
https://github.com/microsoft/microsoft-ui-xaml
Project Tye
.NETアプリケーションのKubernetesへのデプロイを自動化などマイクロサービス開発が楽になるツール。Preview前。
https://devblogs.microsoft.com/aspnet/introducing-project-tye/
まとめ
.NET Core と .NET Framework, XMARINが一つになって共通のAPIになって試しやすくなって来るのかなと感じました。
Windows UI Library 3.0は、UIの部品化するということで、Atomic Designの考えを取り入れて部品として使いまわせるようになるのかなと思いましたがどうなんでしょう。
ちょっと試したくなったら以下を参考にDocker環境作ってみようかなと思いました!
Docker 上でお手軽にC#9(.NET 5)を試す - Qiita