SlideShare a Scribd company logo
1 of 27
Download to read offline
C# Tokyo イベント
自己紹介: @tanaka_733
◦ 「Observability(可観測性)プラットフォーム」がお仕事
◦ Go, Java, JavaScript, Ruby, PHP, Rustに加えてC#やってます
◦ クラウドもオンプレもWindowsもLinuxもコンテナもサーバーレスもやってます
Microsoft MVP for Azure & Development Technologies
◦ Q#もやっています
今日のセッションについて
.NET 5関連の新機能を30分でざっくりと知ったつもりになる
細かいところは立ち入らない (C# 9の新機能とか)
ASP.NET Core, EF Coreも立ち入らない
.NET 5 ダウンロード
◦ インストーラー(OSごとのインストーラーおよびインストールスクリ
プト)
◦ https://dotnet.microsoft.com/download/dotnet/5.0
◦ コンテナイメージ
◦ https://hub.docker.com/_/microsoft-dotnet
◦ リリースノート
◦ https://github.com/dotnet/core/blob/master/release-notes/5.0/5.0.0/5.0.0.md
◦ 既知の問題
◦ https://github.com/dotnet/core/blob/master/release-notes/5.0/5.0-known-issues.md
https://github.com/dotnet/designs/blob/main/accepted/2020/net5/pic01.png
なにがアップデートされた?
.NET 5
ASP.NET Core 5
Entity Framework Core 5
C# 9, F# 5
Visual Studio, Visual Studio for Mac, VS Codeなどのツール
.NET 5 新機能一覧 (1)
◦ C# 9とF# 5へアップデート
◦ コンパイル時にコード生成を可能にするC# Source Generatorの導入
◦ IEEE 754のbinary16 に対応する数値型としてHalf 構造体の導入
◦ null許容参照型のアノテーション導入の完了
◦ Target Framework (TFM)が大きく2つに
◦ 特定のOS(主にWindows)のみで動作するAPIの使用を検出し修正可能に
◦ WebAssembly環境を考慮
◦ さまざまなパフォーマンス改善
◦ 文字列処理・正規表現やネットワーク関連などの改善 GitHubのissue
◦ 95%パーセンタイル以上(P95+)でも予測可能で一貫したパフォーマンスが得られるようにする改善
Improving P95+ latency · Issue #37534 · dotnet/runtime · GitHub
◦ GC、JITなどの改善
◦ ARM64対応
.NET 5 新機能一覧 (2)
◦ 配布オプションの追加
◦ ClickOnceでのクライアントアプリの展開
◦ 単一の実行ファイルへの対応
◦ コンテナイメージサイズの縮小とcgroup v2への対応
◦ Server Coreイメージの追加
◦ 自己完結型アプリケーションの配布サイズを小さくする機能
◦ JsonSerializer の改善
◦ WindowsでもICUを利用へ
◦ .NET5の一部としてWinRT APIをサポート
◦ ネイティブコード運用の改善
◦ アプリケーションコードの潜在的なバグを見つける分析機能
◦ オブザーバビリティ(OpenTelemetry)やマイクロサービス(Tye)対応
.NET のリリースとサポートモデル
2019年12月 2020年11月 2021年11月 2022年11月 2023年11月
.NET Core 3.1
LTS
.NET Core 5.0
GA
.NET Core 6.0
LTS
.NET Core 7.0
GA
.NET Core 8.0
LTS
最低3年
次のGA+3か月
次のGA+3か月
最低3年
Microsoftのサポートは最新のサービスアップデートに対して提供
コミュニティによるサポートや、3rd Partyからのサポートもあり
https://devblogs.microsoft.com/dotnet/net-core-releases-and-support/
.NET Frameworkはサポートされます
◦ .NET Framework 4.8が最後のメジャーリリース
◦ 機能追加などは行われない
◦ バグ修正や信頼性向上、セキュリティ更新などは予定
◦ Windowsが新しくなっても提供される
C# 9.0とF# 5.0
◦ C# 9.0は.NET 5.0のみサポート
◦ .NET Core 3.1以下で動くかもしれないけどサポートはされない
◦ What’s new in C# 9.0
◦ C# 9.0の新機能はまたC# Tokyoでやりましょう
◦ IEEEのbinary16 (float16)に対応したHalf 構造体の導入
◦ Source Generatorでコンパイル時コード生成が可能に
◦ https://devblogs.microsoft.com/dotnet/introducing-c-source-generators/
◦ (厳密にはC# 9.0の一部ではない)
Null許容型に関するアノテーションを
.NETライブラリ全体に付与完了
◦ ドキュメントにはまだ反映しきれていない
◦ Visual StudioのF12によるメタデータ参照や source.dot.net で確認
https://devblogs.microsoft.com/dotnet/annou
ncing-net-5-0/#nullability-annotation-
improvements
Target Framework Names (TFM)
はプラットフォーム共通とOS固有のものへ
◦ .NET5ではnet5.0とnet5.0-windows…
◦ net5.0-windows10 やnet5.0-windows10.0.17763.0 などOSバージョンを制限できる
◦ WPF、WinFormsはnet5.0-windowsのみで動作
◦ .NET 6 でXamarinが入るとnet5.0-androidなども追加
◦ Microsoft.Win32.RegistryのようなWindows固有APIを
◦ なにもせずに利用すると警告が出る
◦ 利用したいときは属性もしくは条件チェックを行う
◦ WebAssembly環境にはTFMは用意しない
◦ プロジェクトの設定でBrowserサポートを追加すると
Browserで利用できないAPIを呼び出すと警告される
◦ https://devblogs.microsoft.com/dotnet/the-future-of-net-standard/
.NET 5 performance improvements
TechEmpower benchmarks round 20 predicted perf increases for .NET 5 over .NET Core 3.1
+38%11,712,405 RPS
Plaintext
+42%1,243,436 RPS
Json
+20%417,818 RPS
Fortunes
Internal tests of .NET 5 performed on equivalent hardware as TechEmpower
Keynote - Welcome to .NET 5より引⽤(次ページも)
.NET 5 performance improvements
ž +30% socket performance improvement on Linux over .NET Core 3.1
ž JSON serialization performance improved +19% over .NET Core 3.11
ž Serialization of large collections & arrays improved 3x and are now zero-alloc
ž gRPC server performance exceeds Go, C++ and Java2
1 All 104 JSON serialization benchmarks improved
2 https://github.com/LesnyRumcajs/grpc_bench/wiki/2020-08-11-bench-results
0
10000
20000
30000
40000
50000
60000
rust_tonic_mt dotnet_grpc go_grpc cpp_grpc_mt java_grpc
gRPC Server Performance Requests/Sec
(higher is better)
さまざまなパフォーマンス改善
◦ GCやJIT関連
◦ coreclrをC/C++実装からC#実装へしたことがパフォーマンス改善作業を容易に
◦ マネージドコードからネイティブコードを呼ぶオーバーヘッドが大きかった箇所もある
◦ C#がマネージドコードである利点をランタイム、GC、JITで生かし改善している
◦ 文字列処理、ネットワークなど機能面の高速化
◦ Int.ToString、DateTime、DateTimeOfset、Encoding.UTF8など
◦ 正規表現
◦ コレクション、LINQ
◦ ネットワーク、HTTP/2対応の改善
◦ 暗号、リフレクションなどなど
◦ P95+にフォーカスした改善
◦ https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/
P95+ 最悪値でも予測可能に
とあるWebアプリの処理時間のヒストグラム
頻度
処理時間
P95
P99
P95=95%パーセンタイル値
全体で遅い処理にも着目し、改善する
平均、最頻値、P95、P99
平均(緑線)
P95(青線)
とあるWebアプリの処理時間の時間変化
P99(黄線)
ARM64対応
◦ Windows ARM64も含めてARM64対応
◦ .NET 5としては対応しているがWPFは未対応 (来年前半予定)
◦ ARM64でのパフォーマンス改善
◦ .NETライブラリでのARM64固有コードの改善
◦ RyuJITによって生成されたコード品質の改善
◦ https://devblogs.microsoft.com/dotnet/arm64-performance-in-net-5/
さまざまな展開方法のサポート・改善
◦ ClickOnceに対応
◦ .NET Core 3.1および.NET 5 以降のWinForm, WPF, ConsoleApp
◦ SmartScreenなどWindows側のセキュリティ機能にも対応
◦ 単一ファイルサポートの拡大
◦ トリミングによりファイルサイズの削減が可能に
◦ コンテナイメージの縮小
◦ Windows Server Coreイメージを追加
.NETライブラリとしての
System.Text.Jsonの高速化・機能追加
◦ 不変型やレコード型にも対応
◦ Newtonsoft.Jsonからの移行用のドキュメント
◦ 機能例
◦ デフォルト値の無視など新しいグローバルオプション
◦ パブリックでないプロパティアクセサーの使用
◦ KeyがstringでないDictionaryのサポート
◦ NullをConverterで扱うかどうかを制御可能に
◦ HttpClientの拡張メソッドとして
GetFromJsonやPutAsJsonなどが利用可能に
WindowsでもICUを使うように
◦ ICU - International Components for Unicode
◦ カルチャや文字列の他、タイムゾーン情報を含んでいる
◦ .NET Core 3.1まではWindowsではOS固有のNLSを利用
◦ 最近だと「令和」がいつ対応されるかで話題に
◦ .NET 5以降はWindowsでもデフォルトでICUを利用
◦ NLS利用も可能
WinRT 相互運用機能
◦ .NET Core 3.1までのものと互換性がないため、
利用していたプロジェクトを.NET 5対応するためには移行が必要
◦ 新しい機能は .NET 5.0かつWindows10 version1809以降で利用可能
◦ 新しい言語機能を取り入れるなど利用しやすくしている
◦ https://blogs.windows.com/windowsdeveloper/2020/11/10/announcing-c-
winrt-version-1-0-with-the-net-5-ga-release/
開発プラットフォーム
視点でのまとめ
デスクトップ開発
◦ Windows Forms、WPFデザイナー
◦ Visual Studioツール
◦ ClickOnceインストーラー
◦ 3rd Partyのコントトール
◦ 自己完結型、単一ファイルなEXEファイル
◦ 実行マシンに.NET Frameworkのインストールが不要に
◦ パフォーマンス改善
◦ Webview2 (Edge Chromium)など最新のコントロール
è かずきさんのセッションで説明が?
Web開発
◦ RazorもしくはBlazorが主要なフレームワーク
◦ 新機能は主にBlazor関連
◦ Razorまわりは機能改善・パフォーマンス向上
◦ もちろん、Blazorもパフォーマンス向上
◦ .NET Frameworkから移植されない技術は
例えば次のような移行がおすすめされている
◦ WebFormはBlazorへ
◦ WCFはgRPCへ
マイクロサービスやオブザーバビリティへの投
資
◦ マイクロサービスを活用するための機能・プロジェクト
◦ REST API
◦ OpenAPI
◦ API REPL
◦ Clientコード生成
◦ Tye => 松村さんのセッションで!
◦ オブザーバビリティ(可観測性)を実現するための機能
◦ 監視をし、サービス改善のために必要なアクションをとれるようにする
◦ dotnet-monitorによる診断機能
◦ OpenTelemetryプロジェクトに対(主に分散トレーシングとメトリクス)

More Related Content

What's hot

【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 日本マイクロソフト株式会社
 
(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0Takayoshi Tanaka
 
復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0Yuta Matsumura
 
.NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.).NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.)Akira Inoue
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発日本マイクロソフト株式会社
 
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 日本マイクロソフト株式会社
 
.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~Fujio Kojima
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCodeYuki Igarashi
 
テスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめテスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめkinunori
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素Akira Inoue
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発Yuta Matsumura
 
PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!Yuta Matsumura
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2Takao Tetsuro
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデートAkira Inoue
 
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!".NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!"Akira Inoue
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Akira Inoue
 

What's hot (20)

【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
 
(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0
 
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
 
復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0
 
.NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.).NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.)
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
 
.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCode
 
テスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめテスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめ
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2
 
Azure Functions Tips
Azure Functions TipsAzure Functions Tips
Azure Functions Tips
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
 
【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発
 
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!".NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
 

Similar to 20201127 .NET 5

20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on LinuxTakayoshi Tanaka
 
Dotnetcore30forwindesktop
Dotnetcore30forwindesktopDotnetcore30forwindesktop
Dotnetcore30forwindesktopru pic
 
20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaokabeyond Co., Ltd.
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#Yuta Matsumura
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーションYuta Matsumura
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説Takao Tetsuro
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組みKouji Matsui
 
20160709 .NET Core on RHEL
20160709  .NET Core on RHEL20160709  .NET Core on RHEL
20160709 .NET Core on RHELTakayoshi Tanaka
 
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~decode2016
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Akira Inoue
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌A AOKI
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来decode2016
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Mori Shingo
 
IBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみたIBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみたYou&I
 

Similar to 20201127 .NET 5 (20)

20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
Dotnetcore30forwindesktop
Dotnetcore30forwindesktopDotnetcore30forwindesktop
Dotnetcore30forwindesktop
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka
 
NET5 and Diagnostics
NET5 and DiagnosticsNET5 and Diagnostics
NET5 and Diagnostics
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
About .Net vNext
About .Net vNextAbout .Net vNext
About .Net vNext
 
About .Net vNext
About .Net vNextAbout .Net vNext
About .Net vNext
 
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
20160709 .NET Core on RHEL
20160709  .NET Core on RHEL20160709  .NET Core on RHEL
20160709 .NET Core on RHEL
 
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
IBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみたIBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみた
 

More from Takayoshi Tanaka

deep dive distributed tracing
deep dive distributed tracingdeep dive distributed tracing
deep dive distributed tracingTakayoshi Tanaka
 
202202 open telemetry .net handson
202202 open telemetry .net handson202202 open telemetry .net handson
202202 open telemetry .net handsonTakayoshi Tanaka
 
202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineersTakayoshi Tanaka
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapploggingTakayoshi Tanaka
 
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法Takayoshi Tanaka
 
20191024 Get Start gRPC with ASP.NET
20191024 Get Start gRPC with ASP.NET20191024 Get Start gRPC with ASP.NET
20191024 Get Start gRPC with ASP.NETTakayoshi Tanaka
 
New Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservabilityNew Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservabilityTakayoshi Tanaka
 
C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)Takayoshi Tanaka
 
C#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオンC#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオンTakayoshi Tanaka
 
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...Takayoshi Tanaka
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能Takayoshi Tanaka
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能Takayoshi Tanaka
 
Try! Visual Studio 209 git feature
Try! Visual Studio 209 git featureTry! Visual Studio 209 git feature
Try! Visual Studio 209 git featureTakayoshi Tanaka
 
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10Takayoshi Tanaka
 
New features of Azure Cloud Provider at OCP 3.10
New features of Azure Cloud Provider at OCP 3.10New features of Azure Cloud Provider at OCP 3.10
New features of Azure Cloud Provider at OCP 3.10Takayoshi Tanaka
 
Introduction to SQL Server on RHEL
Introduction to SQL Server on RHELIntroduction to SQL Server on RHEL
Introduction to SQL Server on RHELTakayoshi Tanaka
 

More from Takayoshi Tanaka (20)

deep dive distributed tracing
deep dive distributed tracingdeep dive distributed tracing
deep dive distributed tracing
 
202202 open telemetry .net handson
202202 open telemetry .net handson202202 open telemetry .net handson
202202 open telemetry .net handson
 
202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapplogging
 
Unity(再)入門
Unity(再)入門Unity(再)入門
Unity(再)入門
 
最近のQ#について
最近のQ#について最近のQ#について
最近のQ#について
 
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
 
20191024 Get Start gRPC with ASP.NET
20191024 Get Start gRPC with ASP.NET20191024 Get Start gRPC with ASP.NET
20191024 Get Start gRPC with ASP.NET
 
New Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservabilityNew Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservability
 
C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)
 
20190806 Q# Measurements
20190806 Q# Measurements20190806 Q# Measurements
20190806 Q# Measurements
 
C#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオンC#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオン
 
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
 
Try! Visual Studio 209 git feature
Try! Visual Studio 209 git featureTry! Visual Studio 209 git feature
Try! Visual Studio 209 git feature
 
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
 
New features of Azure Cloud Provider at OCP 3.10
New features of Azure Cloud Provider at OCP 3.10New features of Azure Cloud Provider at OCP 3.10
New features of Azure Cloud Provider at OCP 3.10
 
Open shift on azure stack
Open shift on azure stackOpen shift on azure stack
Open shift on azure stack
 
Introduction to SQL Server on RHEL
Introduction to SQL Server on RHELIntroduction to SQL Server on RHEL
Introduction to SQL Server on RHEL
 

Recently uploaded

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (10)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

20201127 .NET 5

  • 2. 自己紹介: @tanaka_733 ◦ 「Observability(可観測性)プラットフォーム」がお仕事 ◦ Go, Java, JavaScript, Ruby, PHP, Rustに加えてC#やってます ◦ クラウドもオンプレもWindowsもLinuxもコンテナもサーバーレスもやってます Microsoft MVP for Azure & Development Technologies ◦ Q#もやっています
  • 4. .NET 5 ダウンロード ◦ インストーラー(OSごとのインストーラーおよびインストールスクリ プト) ◦ https://dotnet.microsoft.com/download/dotnet/5.0 ◦ コンテナイメージ ◦ https://hub.docker.com/_/microsoft-dotnet ◦ リリースノート ◦ https://github.com/dotnet/core/blob/master/release-notes/5.0/5.0.0/5.0.0.md ◦ 既知の問題 ◦ https://github.com/dotnet/core/blob/master/release-notes/5.0/5.0-known-issues.md
  • 6. なにがアップデートされた? .NET 5 ASP.NET Core 5 Entity Framework Core 5 C# 9, F# 5 Visual Studio, Visual Studio for Mac, VS Codeなどのツール
  • 7. .NET 5 新機能一覧 (1) ◦ C# 9とF# 5へアップデート ◦ コンパイル時にコード生成を可能にするC# Source Generatorの導入 ◦ IEEE 754のbinary16 に対応する数値型としてHalf 構造体の導入 ◦ null許容参照型のアノテーション導入の完了 ◦ Target Framework (TFM)が大きく2つに ◦ 特定のOS(主にWindows)のみで動作するAPIの使用を検出し修正可能に ◦ WebAssembly環境を考慮 ◦ さまざまなパフォーマンス改善 ◦ 文字列処理・正規表現やネットワーク関連などの改善 GitHubのissue ◦ 95%パーセンタイル以上(P95+)でも予測可能で一貫したパフォーマンスが得られるようにする改善 Improving P95+ latency · Issue #37534 · dotnet/runtime · GitHub ◦ GC、JITなどの改善 ◦ ARM64対応
  • 8. .NET 5 新機能一覧 (2) ◦ 配布オプションの追加 ◦ ClickOnceでのクライアントアプリの展開 ◦ 単一の実行ファイルへの対応 ◦ コンテナイメージサイズの縮小とcgroup v2への対応 ◦ Server Coreイメージの追加 ◦ 自己完結型アプリケーションの配布サイズを小さくする機能 ◦ JsonSerializer の改善 ◦ WindowsでもICUを利用へ ◦ .NET5の一部としてWinRT APIをサポート ◦ ネイティブコード運用の改善 ◦ アプリケーションコードの潜在的なバグを見つける分析機能 ◦ オブザーバビリティ(OpenTelemetry)やマイクロサービス(Tye)対応
  • 9. .NET のリリースとサポートモデル 2019年12月 2020年11月 2021年11月 2022年11月 2023年11月 .NET Core 3.1 LTS .NET Core 5.0 GA .NET Core 6.0 LTS .NET Core 7.0 GA .NET Core 8.0 LTS 最低3年 次のGA+3か月 次のGA+3か月 最低3年 Microsoftのサポートは最新のサービスアップデートに対して提供 コミュニティによるサポートや、3rd Partyからのサポートもあり https://devblogs.microsoft.com/dotnet/net-core-releases-and-support/
  • 10. .NET Frameworkはサポートされます ◦ .NET Framework 4.8が最後のメジャーリリース ◦ 機能追加などは行われない ◦ バグ修正や信頼性向上、セキュリティ更新などは予定 ◦ Windowsが新しくなっても提供される
  • 11. C# 9.0とF# 5.0 ◦ C# 9.0は.NET 5.0のみサポート ◦ .NET Core 3.1以下で動くかもしれないけどサポートはされない ◦ What’s new in C# 9.0 ◦ C# 9.0の新機能はまたC# Tokyoでやりましょう ◦ IEEEのbinary16 (float16)に対応したHalf 構造体の導入 ◦ Source Generatorでコンパイル時コード生成が可能に ◦ https://devblogs.microsoft.com/dotnet/introducing-c-source-generators/ ◦ (厳密にはC# 9.0の一部ではない)
  • 12. Null許容型に関するアノテーションを .NETライブラリ全体に付与完了 ◦ ドキュメントにはまだ反映しきれていない ◦ Visual StudioのF12によるメタデータ参照や source.dot.net で確認 https://devblogs.microsoft.com/dotnet/annou ncing-net-5-0/#nullability-annotation- improvements
  • 13. Target Framework Names (TFM) はプラットフォーム共通とOS固有のものへ ◦ .NET5ではnet5.0とnet5.0-windows… ◦ net5.0-windows10 やnet5.0-windows10.0.17763.0 などOSバージョンを制限できる ◦ WPF、WinFormsはnet5.0-windowsのみで動作 ◦ .NET 6 でXamarinが入るとnet5.0-androidなども追加 ◦ Microsoft.Win32.RegistryのようなWindows固有APIを ◦ なにもせずに利用すると警告が出る ◦ 利用したいときは属性もしくは条件チェックを行う ◦ WebAssembly環境にはTFMは用意しない ◦ プロジェクトの設定でBrowserサポートを追加すると Browserで利用できないAPIを呼び出すと警告される ◦ https://devblogs.microsoft.com/dotnet/the-future-of-net-standard/
  • 14. .NET 5 performance improvements TechEmpower benchmarks round 20 predicted perf increases for .NET 5 over .NET Core 3.1 +38%11,712,405 RPS Plaintext +42%1,243,436 RPS Json +20%417,818 RPS Fortunes Internal tests of .NET 5 performed on equivalent hardware as TechEmpower Keynote - Welcome to .NET 5より引⽤(次ページも)
  • 15. .NET 5 performance improvements ž +30% socket performance improvement on Linux over .NET Core 3.1 ž JSON serialization performance improved +19% over .NET Core 3.11 ž Serialization of large collections & arrays improved 3x and are now zero-alloc ž gRPC server performance exceeds Go, C++ and Java2 1 All 104 JSON serialization benchmarks improved 2 https://github.com/LesnyRumcajs/grpc_bench/wiki/2020-08-11-bench-results 0 10000 20000 30000 40000 50000 60000 rust_tonic_mt dotnet_grpc go_grpc cpp_grpc_mt java_grpc gRPC Server Performance Requests/Sec (higher is better)
  • 16. さまざまなパフォーマンス改善 ◦ GCやJIT関連 ◦ coreclrをC/C++実装からC#実装へしたことがパフォーマンス改善作業を容易に ◦ マネージドコードからネイティブコードを呼ぶオーバーヘッドが大きかった箇所もある ◦ C#がマネージドコードである利点をランタイム、GC、JITで生かし改善している ◦ 文字列処理、ネットワークなど機能面の高速化 ◦ Int.ToString、DateTime、DateTimeOfset、Encoding.UTF8など ◦ 正規表現 ◦ コレクション、LINQ ◦ ネットワーク、HTTP/2対応の改善 ◦ 暗号、リフレクションなどなど ◦ P95+にフォーカスした改善 ◦ https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/
  • 19. ARM64対応 ◦ Windows ARM64も含めてARM64対応 ◦ .NET 5としては対応しているがWPFは未対応 (来年前半予定) ◦ ARM64でのパフォーマンス改善 ◦ .NETライブラリでのARM64固有コードの改善 ◦ RyuJITによって生成されたコード品質の改善 ◦ https://devblogs.microsoft.com/dotnet/arm64-performance-in-net-5/
  • 20. さまざまな展開方法のサポート・改善 ◦ ClickOnceに対応 ◦ .NET Core 3.1および.NET 5 以降のWinForm, WPF, ConsoleApp ◦ SmartScreenなどWindows側のセキュリティ機能にも対応 ◦ 単一ファイルサポートの拡大 ◦ トリミングによりファイルサイズの削減が可能に ◦ コンテナイメージの縮小 ◦ Windows Server Coreイメージを追加
  • 21. .NETライブラリとしての System.Text.Jsonの高速化・機能追加 ◦ 不変型やレコード型にも対応 ◦ Newtonsoft.Jsonからの移行用のドキュメント ◦ 機能例 ◦ デフォルト値の無視など新しいグローバルオプション ◦ パブリックでないプロパティアクセサーの使用 ◦ KeyがstringでないDictionaryのサポート ◦ NullをConverterで扱うかどうかを制御可能に ◦ HttpClientの拡張メソッドとして GetFromJsonやPutAsJsonなどが利用可能に
  • 22. WindowsでもICUを使うように ◦ ICU - International Components for Unicode ◦ カルチャや文字列の他、タイムゾーン情報を含んでいる ◦ .NET Core 3.1まではWindowsではOS固有のNLSを利用 ◦ 最近だと「令和」がいつ対応されるかで話題に ◦ .NET 5以降はWindowsでもデフォルトでICUを利用 ◦ NLS利用も可能
  • 23. WinRT 相互運用機能 ◦ .NET Core 3.1までのものと互換性がないため、 利用していたプロジェクトを.NET 5対応するためには移行が必要 ◦ 新しい機能は .NET 5.0かつWindows10 version1809以降で利用可能 ◦ 新しい言語機能を取り入れるなど利用しやすくしている ◦ https://blogs.windows.com/windowsdeveloper/2020/11/10/announcing-c- winrt-version-1-0-with-the-net-5-ga-release/
  • 25. デスクトップ開発 ◦ Windows Forms、WPFデザイナー ◦ Visual Studioツール ◦ ClickOnceインストーラー ◦ 3rd Partyのコントトール ◦ 自己完結型、単一ファイルなEXEファイル ◦ 実行マシンに.NET Frameworkのインストールが不要に ◦ パフォーマンス改善 ◦ Webview2 (Edge Chromium)など最新のコントロール è かずきさんのセッションで説明が?
  • 26. Web開発 ◦ RazorもしくはBlazorが主要なフレームワーク ◦ 新機能は主にBlazor関連 ◦ Razorまわりは機能改善・パフォーマンス向上 ◦ もちろん、Blazorもパフォーマンス向上 ◦ .NET Frameworkから移植されない技術は 例えば次のような移行がおすすめされている ◦ WebFormはBlazorへ ◦ WCFはgRPCへ
  • 27. マイクロサービスやオブザーバビリティへの投 資 ◦ マイクロサービスを活用するための機能・プロジェクト ◦ REST API ◦ OpenAPI ◦ API REPL ◦ Clientコード生成 ◦ Tye => 松村さんのセッションで! ◦ オブザーバビリティ(可観測性)を実現するための機能 ◦ 監視をし、サービス改善のために必要なアクションをとれるようにする ◦ dotnet-monitorによる診断機能 ◦ OpenTelemetryプロジェクトに対(主に分散トレーシングとメトリクス)