Slide 1

Slide 1 text

C#/.NETのこれまでのふりか えり 株式会社SAKURUG プロダクトDiv 草場 友光 .NETラボ勉強会2024年10月

Slide 2

Slide 2 text

自己紹介 • コミュニティ活動を通じて知識をアッ プデートしています。 • 2022/08-2025 Microsoft MVP (Developer Technologies) • tomo_kusaba

Slide 3

Slide 3 text

宣伝 【VISION】ひとの可能性を開花させる企業であり続ける VISIONに共感できる仲間募集中。

Slide 4

Slide 4 text

注意 • 個人の見解・解釈が多分に入っています。 • 見解の相違・事実誤認などありましたらご指摘ください。 • #dotnetlabでtweetすると左側に表示されます

Slide 5

Slide 5 text

今日の目的 • まもなく、.NET 9がリリースされます • .NETの過去を通じて現在の位置づけを知る • これまでの.NETについて振り返りましょう

Slide 6

Slide 6 text

.NET Frameworkのはじまり • 2002年1月5日 .NET Framework1.0リリース • Windows98、NT4.0、2000、XP向け • 今から考えるといろいろないないづくしの • ジェネリックコレクションもない • LINQもない • 挿入文字列もない • 自動プロパティもない • 拡張メソッドもない • ラムダ式もねー • おらおこんなふれーむわーくいやだ

Slide 7

Slide 7 text

当時のJavaとの比較 • 2002年当時のJavaは1.4 • ジェネリックコレクションなし • Linqなし • その他諸々なし • 当時のライブラリ水準とすれば劣っていたわけじゃない

Slide 8

Slide 8 text

.NET Mono • 2004年12月15日 Mono1.0リリース • プロジェクトの目標 • FreeBSD、Windows、MacOSXで動作するオープンソースのクロス プラットフォーム.NET Framewrok実装を実現する • 後に.NET Coreの立ち上げによりプロジェクトとしての存在意義は失っ ていく • 事実上、Xamarinで広く使われていたプラットフォーム

Slide 9

Slide 9 text

.NET Frameworkの強化(実行環境) バージョン 内容 1.1 バグ修正のみ 2.0 ジェネリック関連の命令追加 4.0 性能改善 4.5 性能改善とWinRTへの対応 4.8 JITコンパイラの最適化 大きな修正があったのは2.0のみ

Slide 10

Slide 10 text

.NET Frameworkの強化(ライブラリその他) バージョン 内容 1.1 バグ修正 IPv6 2.0 ジェネリックコレクション追加 ClickOne ASP.NETでの新しいコンポーネント 64ビットサポート 3.0 WPF、WCF、WFなど追加 3.5 LINQ追加、ASP.NET AJAX追加 3.5SP1 ADO.NET Entity Framework追加 4 dynamic関連 並列関連の追加 4.5 async/await関連の追加 4.6 WPFのHDPIサポート強化 4.7 WinFormsの高DPIサポート 4.8 WPFの高DPI機能強化 実質的に.NET Frameworkのフラッ グシップ言語であるC#の歩みと同期し てる

Slide 11

Slide 11 text

.NET Frameworkの強化(C#と対比) .NET Framework .NET (Core) C# Visual Studio 1.0 1.0 .NET 2002 1.1 1.1 .NET 2003 2.0 2.0 2005 3.5 3.0 2008 4 4.0 2012 4.5 .NET Core Profile 5.0 2013 4.6 1.0 6.0 2015 4.7 7.0 2017 2.0 7.1 2017 15.5 2.1→(ASP.NET Core2.3?) 7.2 2017 15.8.6 4.8 2.2 7.3 2017 15.9

Slide 12

Slide 12 text

.NET Frameworkの強化2(C#と対 比) .NET Framework .NET (Core) C# Visual Studio 3.0 8.0 2019 16.0 5.0 9.0 2019 16.8 6.0 10.0 2022 7.0 11.0 8.0 12.0 9.0 13.0

Slide 13

Slide 13 text

.NET Coreのはじまり • 2016年6月27日 .NET Core1.0 リリース • 名称が示すとおり.NET Frameworkのサブセットとして開発が進めら れた • 当面はサーバーサイドでの利用を想定されていた(ASP.NET Core)

Slide 14

Slide 14 text

.NET Coreの機能強化 2.0 ランタイムおよびフレームワークの性能向上 C#7.1のサポート 2.1 Span Blazor 2.2 JITコンパイラの機能強化 3.0 WinFormsおよびWPF、UWPのサポート Blazor Server C#8.0のサポート 3.1 マイナー強化 LTS (Blazor WebAssembly) 5.0 .NET Frameworkとの統合 C#9.0 6.0 .NET MAUI Minimal API 7.0 C#11 8.0 C#12 .NET Aspire Blazor Web Apps 9.0 C#13

Slide 15

Slide 15 text

.NET の特徴1 • 様々な目的で使用できる • AIやML • ゲーム • IoT • モバイル • デスクトップ • Webフロント • WebバックエンドやAPI • データアクセス

Slide 16

Slide 16 text

.NETの特徴2 • 高速なレスポンスと高い同時実行性能

Slide 17

Slide 17 text

.NETの特徴3 • オープンソースで開発されている • MITライセンスのもとで無料で使用できる

Slide 18

Slide 18 text

.NETの特徴4 • クロスプラットフォームである • Windows • Linux • macOS • iOS • Android

Slide 19

Slide 19 text

.NETの特徴 • 様々な開発のエコシステムがある • 開発ツール • Visual Studio • Visual Studio Code • Rider • パッケージシステム • Nuget

Slide 20

Slide 20 text

.NET 9注目の新機能1 • 静的Webアセット配信の最適化 • 従来はUseStaticFiles()ミドルウェアを使用していた • MapStaticAssets()ミドルウェアに置き換えることで以下の利 点がある • アプリ内のすべてのアセットをビルド時に圧縮 • コンテンツベースのETag • ビルド時にアプリが認識している場合は使えるが、アプリが他の 場所からアセットを提供する場合は今まで通りUseStaticFiles を使用する

Slide 21

Slide 21 text

.NET9注目の新機能2 • Blazor Serverの再接続の改善 • 回線切断時の再試行間隔の改善 • 再接続時にすでにサーバーで回線がすでに解放されている場合 (サーバー側の状態保持がない場合)デフォルト状態で更新されま す。

Slide 22

Slide 22 text

参考文献 • ASP.NET Core 9.0 の新機能 https://learn.microsoft.com/ja- jp/aspnet/core/release-notes/aspnetcore- 9.0?view=aspnetcore-8.0 • .NET 9 の新機能 https://learn.microsoft.com/ja- jp/dotnet/core/whats-new/dotnet-9/overview

Slide 23

Slide 23 text

おしまい おしまい