Slide 1

Slide 1 text

#fukuten .NET 8 がリリース直前だから振り返る 2023/10/26 Fukuoka.NET #25 Yuta Matsumura © 2023 Yuta Matsumura.

Slide 2

Slide 2 text

#fukuten 松村 優大 (Yuta Matsumura) Currently working for © 2023 Yuta Matsumura. Chief Technical Architect C#, PHP, Azure, GitHub が好き Microsoft MVP (Developer Technologies) #fukuten #devblogradio の中の人 @tsubakimoto_s

Slide 3

Slide 3 text

#fukuten © 2023 Yuta Matsumura.

Slide 4

Slide 4 text

#fukuten .NET Conf 2023 • https://www.dotnetconf.net/ • 2023/11/14~16 開催 • 参加無料のオンデマンド配信・アーカイブあり • .NET 次期バージョンの正式リリース時期 © 2023 Yuta Matsumura.

Slide 5

Slide 5 text

#fukuten © 2023 Yuta Matsumura. https://dotnet.microsoft.com/ja-jp/platform/support/policy/dotnet-core

Slide 6

Slide 6 text

#fukuten © 2023 Yuta Matsumura. https://dotnet.microsoft.com/ja-jp/platform/support/policy/dotnet-core 🚨2024/11/12 EOL

Slide 7

Slide 7 text

#fukuten © 2023 Yuta Matsumura. https://dotnet.microsoft.com/ja-jp/platform/support/policy/dotnet-core 🚨2024/05/14 EOL

Slide 8

Slide 8 text

#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ヶ月間隔 最後のリリース候補版

Slide 9

Slide 9 text

#fukuten アップデート内容はリリースブログで © 2023 Yuta Matsumura.

Slide 10

Slide 10 text

#fukuten アップデート内容はリリースブログで © 2023 Yuta Matsumura. .NET ASP.NET Core EF Core MAUI Tools (ex: Visual Studio) Performance Improvements

Slide 11

Slide 11 text

#fukuten アップデート内容はリリースブログで © 2023 Yuta Matsumura. https://qiita.com/tsubakimoto_s/items/36188f8a7751352037a0

Slide 12

Slide 12 text

#fukuten C# 12 もリリースされる • プライマリ コンストラクター • コレクション式 • 既定のラムダパラメーター • 任意の型の別名設定 • インライン配列 • インターセプター © 2023 Yuta Matsumura. https://learn.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-12

Slide 13

Slide 13 text

#fukuten #fukuten 従来のコンストラクター © 2023 Yuta Matsumura.

Slide 14

Slide 14 text

#fukuten #fukuten プライマリコンストラクター © 2023 Yuta Matsumura.

Slide 15

Slide 15 text

#fukuten #fukuten コレクション式 一次元配列の宣言と初期化 構造体の宣言と初期化 二次元配列の宣言と初期化 変数を使った二次元配列の宣言と初期化 © 2023 Yuta Matsumura.

Slide 16

Slide 16 text

#fukuten #fukuten 既定のラムダパラメーター © 2023 Yuta Matsumura.

Slide 17

Slide 17 text

#fukuten 気になるアップデート .NET 8 © 2023 Yuta Matsumura.

Slide 18

Slide 18 text

#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

Slide 19

Slide 19 text

#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/

Slide 20

Slide 20 text

#fukuten #fukuten Native AOT: csproj の構成 © 2023 Yuta Matsumura. dotnet publish -r win-x64 -c Release

Slide 21

Slide 21 text

#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

Slide 22

Slide 22 text

#fukuten 気になるアップデート ASP.NET Core 8 © 2023 Yuta Matsumura.

Slide 23

Slide 23 text

#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

Slide 24

Slide 24 text

#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

Slide 25

Slide 25 text

#fukuten 気になるアップデート Entity Framework Core 8 © 2023 Yuta Matsumura.

Slide 26

Slide 26 text

#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

Slide 27

Slide 27 text

#fukuten #fukuten Contains 演算子 (LINQ) の SQL 変換の改善 © 2023 Yuta Matsumura. パフォーマンス向上

Slide 28

Slide 28 text

#fukuten Visual Studio & Visual Studio Code © 2023 Yuta Matsumura.

Slide 29

Slide 29 text

#fukuten Visual Studio 2022 17.8 • プルリクエストや Diff の改善 • Visual Studio の SPA テンプレートの拡充 (Angular, React, Vue) • .http ファイルの環境ファイル (http-client.env.json) © 2023 Yuta Matsumura.

Slide 30

Slide 30 text

#fukuten プルリクエストや Diff の改善 © 2023 Yuta Matsumura.

Slide 31

Slide 31 text

#fukuten SPA テンプレートの拡充 © 2023 Yuta Matsumura.

Slide 32

Slide 32 text

#fukuten .http ファイルの環境ファイル © 2023 Yuta Matsumura.

Slide 33

Slide 33 text

#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

Slide 34

Slide 34 text

#fukuten Visual Studio Code: C# Dev Kit • ソリューションファイルの構成を表示 • Visual Studioっぽい © 2023 Yuta Matsumura.

Slide 35

Slide 35 text

#fukuten ご清聴ありがとうございました © 2023 Yuta Matsumura.