Upgrade to Pro — share decks privately, control downloads, hide ads and more …

.NET 8 がリリース直前だから振り返る

.NET 8 がリリース直前だから振り返る

登壇資料です

Fukuoka.NET #25 - connpass
https://fukuten.connpass.com/event/297072/

Yuta Matsumura

October 28, 2023
Tweet

More Decks by Yuta Matsumura

Other Decks in Technology

Transcript

  1. #fukuten 松村 優大 (Yuta Matsumura) Currently working for © 2023

    Yuta Matsumura. Chief Technical Architect C#, PHP, Azure, GitHub が好き Microsoft MVP (Developer Technologies) #fukuten #devblogradio の中の人 @tsubakimoto_s
  2. #fukuten .NET Conf 2023 • https://www.dotnetconf.net/ • 2023/11/14~16 開催 •

    参加無料のオンデマンド配信・アーカイブあり • .NET 次期バージョンの正式リリース時期 © 2023 Yuta Matsumura.
  3. #fukuten .NET 8 GA までの道のり バージョン リリース日 リリースブログ Preview 1

    2023/02/21 Announcing .NET 8 Preview 1 Preview 2 2023/03/14 Announcing .NET 8 Preview 2 Preview 3 2023/04/11 Announcing .NET 8 Preview 3 Preview 4 2023/05/16 Announcing .NET 8 Preview 4 Preview 5 2023/06/13 Announcing .NET 8 Preview 5 Preview 6 2023/07/11 Announcing .NET 8 Preview 6 Preview 7 2023/08/08 Announcing .NET 8 Preview 7 RC 1 2023/09/14 Announcing .NET 8 RC1 RC 2 2023/10/10 Announcing .NET 8 RC2 GA 2023/11/xx - © 2023 Yuta Matsumura. https://dotnet.microsoft.com/ja-jp/download/dotnet/8.0 https://github.com/dotnet/core/tree/main/release-notes/8.0 だいたい1ヶ月間隔 最後のリリース候補版
  4. #fukuten C# 12 もリリースされる • プライマリ コンストラクター • コレクション式 •

    既定のラムダパラメーター • 任意の型の別名設定 • インライン配列 • インターセプター © 2023 Yuta Matsumura. https://learn.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-12
  5. #fukuten 💡.NET 8 updates • Native AOT (Reduced memory footprint,

    Improved startup time, Improved battery life) • non-root コンテナーイメージ • コンテナーのマルチプラットフォームビルド (ex: dotnet build … --platform linux/amd64) • TimeProvider クラスの導入 (DateTime/DateTimeOffset/TimeSpan のモックが容易になる) • IMeterFactory / .AddMetrics() • IHostedLifecycleService の拡張 (Graceful shutdown がより制御しやすくなる) • .NET SDK のライブラリ類のドキュメントの充実 © 2023 Yuta Matsumura. Pre 1 Pre 1 Pre 3 Pre 4 Pre 5 Pre 7 RC 2
  6. #fukuten Native AOT • AOT: Ahead of Time → 事前コンパイラ

    • ビルド時にネイティブコードにコンパイルされる (実行時の JIT コンパイルは行われない) • C++ のコンパイラ環境が必要 • 利点 • 実行形式ファイルのサイズ削減 • 起動時間の短縮 • 必要メモリの削減 © 2023 Yuta Matsumura. https://learn.microsoft.com/ja-jp/aspnet/core/fundamentals/native-aot?view=aspnetcore-8.0 https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/
  7. #fukuten 実行形式ファイルのサイズ削減 © 2023 Yuta Matsumura. 非AOT AOT dotnet publish

    -r win-x64 -c Release -p:PublishSingleFile=true --self-contained true dotnet publish -r win-x64 -c Release
  8. #fukuten 💡ASP.NET Core 8 updates • Blazor テンプレートの更新 (旧 Blazor

    United … Server も WebAssembly もひとまとめ) • Native AOT のサポート (Razor, Minimal API, gRPC, Libraries) • コンテナーのマルチプラットフォームビルド (ex: dotnet build … --platform linux/amd64) • Web API プロジェクトに .http ファイルが同梱 • デバッグエクスペリエンスの向上 • Minimal API のフォームバインディングのサポート • Minimal API や Blazor の偽装防止 (Antiforgery) の統合 • Visual Studio の SPA テンプレートの拡充 (Angular, React, Vue) © 2023 Yuta Matsumura. Pre 1 Pre 3 Pre 3 Pre 4 Pre 5 Pre 5 Pre 7 Pre 6
  9. #fukuten Minimal API の Native AOT © 2023 Yuta Matsumura.

    非AOT AOT dotnet publish -r win-x64 -c Release -p:PublishSingleFile=true --self-contained true dotnet publish -r win-x64 -c Release
  10. #fukuten 💡Entity Framework Core 8 updates • マップされていない型の生 SQL クエリ

    • SQL Server での DateOnly/TimeOnly のサポート • 複合型を使用した値オブジェクト • Contains 演算子 (LINQ) の SQL 変換の改善 サンプルコード集 https://github.com/dotnet/EntityFramework.Docs/tree/main/samples © 2023 Yuta Matsumura. Pre 1 Pre 1 RC 2 Pre 1
  11. #fukuten Visual Studio 2022 17.8 • プルリクエストや Diff の改善 •

    Visual Studio の SPA テンプレートの拡充 (Angular, React, Vue) • .http ファイルの環境ファイル (http-client.env.json) © 2023 Yuta Matsumura.
  12. #fukuten Visual Studio Code • C# Dev Kit • VS

    Code で C# 開発を行うための新たな開発環境 • ローカル: VS サブスクリプション必須 • GitHub Codespaces: VS サブスクリプション不要 © 2023 Yuta Matsumura. https://learn.microsoft.com/ja-jp/visualstudio/subscriptions/vs-c-sharp-dev-kit https://devblogs.microsoft.com/visualstudio/announcing-csharp-dev-kit-for-visual-studio-code/ https://blog.shibayan.jp/entry/20230825/1692937805