~ .NET の過去、現在、そして未来 ~
井上 章 (いのうえ あきら) @chack411
マイクロソフト コーポレーション
グローバル ブラックベルト
Azure Cloud Native テクニカル スペシャリスト
.NET Application Models ~ .NET Core 3.1 (LTS)
.NET Framework .NET Core Xamarin
アプリ
モデル
ベース
ライブラリ
Win Forms
WPF
◼ .NET Core / Xamarin / .NET Framework アプリケーション モデルをサポート
◼ 統一プラットフォームへ向けた .NET Core の進化
◼ シングル SDK, 一つの BCL, 統一されたツール チェーン
◼ クロスプラットフォーム ネイティブ UI
◼ クロスプラットフォーム Web UI
◼ Cloud Native への投資
◼ パフォーマンス、サイズ、診断、Azure サービスの継続的な改善
◼ .NET 5 に含まれないアプリケーション モデル
◼ ASP.NET Web Forms
◼ WCF (Windows Communication Foundation)
◼ WF (Windows Workflow Foundation)
– .NET 5 to 6 "wave"
.NET Framework
Mono / Xamarin
.NET Core
.NET
One .NET vision
.NET has the best of breed solutions for all modern workloads
.NET リリース スケジュール
• .NET 5.0 リリース : 2020 年 11 月
• 毎年 11 月にメジャー リリース
• LTS は奇数年リリース
• 予定リリース以外に必要であればマイナーリリースあり
Dec 2019
.NET Core 3.1
LTS
Nov 2020
.NET 5.0
Nov 2021
.NET 6.0
LTS
Nov 2022
.NET 7.0
Nov 2023
.NET 8.0
LTS
クロス プラットフォーム, ネイティブ UI
シングル プロジェクト, シングル コードベース
モバイルやデスクトップなどマルチデバイスへのデプロイ
Xamarin.Forms の進化
2021 年予定の .NET 6 preview をターゲット
Build beautiful, native UI for any device
.NET Multi-platform App UI (.NET MAUI)
.NET MAUI
.NET Platform
github.com/dotnet/maui
WinUI 3 Preview 3
http://aka.ms/winui
◼ WinUI – The modern native UI platform of Windows
◼ Windows アプリのためのモダンコントロールとスタイルの UI レイヤー
◼ WinUI 3 は UWP と Win32 アプリをサポート (WinUI 2 は UWP のみ)
◼ Native C/C++, .NET 5, WebView2, Fluent Design Controls 等に対応
.NET 言語
Powerful, flexible, for any kind of .NET app
タイプセーフなオブジェクト指向プログラミング言語
最新の C# 9 が .NET 5 で利用可能
Easy to get started, approachable
自然言語に近く読みやすい構文のプログラミング言語 (VB.NET)
.NET 5 では一部のアプリタイプで使用可能 (今後のアップデートは予定なし)
Productive functional programming and analytics
.NET の関数型プログラミング言語
最新の F# 5 が .NET 5 で利用可能
BCL / Runtime
ASP.NET Core 3.1 / 5.0
◼
◼
◼
◼
◼
◼
◼
◼
◼
◼
◼
ASP.NET Core Blazor
https://blazor.net
Razor Components
.NET
WebAssembly
GitHub リポジトリから Azure へフルスタック Web アプリ環境を自動的に構築してデプロイ
Azure Functions バックエンドと共に Angular, React, Vue などを使用した SPA アプリの構築
GitHub
Azure
Azure Static Web Apps (Preview)
◼ JAM スタックで構成された Web アプリの Azure PaaS 移行
◼ 指定した GitHub リポジトリに対して
GitHub Actions ワークフローを自動生成
◼ Azure Functions による API をサポート
◼ 静的コンテンツの Web ホスティングと
グローバル分散
◼ 各種認証プロバイダーの統合
◼ カスタム ドメイン、無料 SSL 証明書
◼ etc …
.NET 5 の Cloud Native への投資
 REST API’s
 Open API, API REPL, client generation, publish to APIM
 gRPC contract-based API’s
 Generate client & server from proto file, world class performance
 Faster cross-platform development with WSL and Linux
 Smaller microservices, single file apps, top-level C# programs
 High-performance reverse proxy (YARP)
 Opinionated .NET microservices & orchestration tools (Tye)
The Twelve-Factor App
The Twelve Factor App is a set of best practices that
guide you to build a great Cloud Native application.
クラウド ネイティブ アプリのベストプラクティス (方法論) : https://12factor.net/ja/
Linux Container と Windows Container
Hardware
VM VM
Application
Processes
Container Container Container
OS
仮想マシン = ハードウェア仮想化
VM
Linux Containers = OS 仮想化
Kernel
Container Container Container
Container Container Container
Hyper-V
Kernel Kernel Kernel
Hyper-V Containers = Hyper-V による分離
Windows Server Containers = プロセス分離
Kernel
docker run -it --isolation=hyperv <image> …
docker run -it --isolation=process <image> …
Azure App Service & Windows Containers (GA)
Windows Containers によるモノリシック / N-Tier
アプリの Azure App Service 移行が可能
AKS Linux & Windows ノードプール
• 複数のノード プールを使用して、AKS クラスター
で Windows と Linux の VM を混在させること
が可能
• ノード セレクタを使用して、Windows と Linux
が混在するワークロードをスケジュール可能
API server
Controller
Manager
Scheduler
etcd
Store
Cloud
Controller
Self-managed master node(s)
Customer VMs – Nodepool 1
App/
workload
definition
User
Schedule pods over
private tunnel
Kubernetes
API endpoint
Azure managed control plane
Docker
Pods
Docker
Pods
kubelet kube-proxy
VM
Docker
Pods
Docker
Pods
kubelet kube-proxy
VM
Customer VMs – Nodepool 2
Schedule pods over
private tunnel
Docker
Pods
Docker
Pods
kubelet kube-proxy
VM
Docker
Pods
Docker
Pods
kubelet kube-proxy
VM
.NET x / .NET Core
.NET Framework
.NET Core / .NET 5 と .NET Framework の選択
.NET 5 & 6 ~ すべてのアプリのための統一プラットフォーム
.NET 5 & 6(Nov 2021)
INFRASTRUCTURE
.NET Standard
DESKTOP
WPF/Win Forms
UWP
WEB
ASP.NET
MOBILE
Xamarin
GAMING
Unity
CLOUD
Azure
IoT
ARM32
ARM64
AI
ML.NET
.NET Apache Spark
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
© 2021 Microsoft Corporation. All rights reserved.
本情報の内容 (添付文書、リンク先などを含む) は、本資料作成時点のものであり、予告なく変更される場合があります。
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。

.NET の過去、現在、そして未来 ~ .NET 最新アップデート

  • 1.
    ~ .NET の過去、現在、そして未来~ 井上 章 (いのうえ あきら) @chack411 マイクロソフト コーポレーション グローバル ブラックベルト Azure Cloud Native テクニカル スペシャリスト
  • 3.
    .NET Application Models~ .NET Core 3.1 (LTS) .NET Framework .NET Core Xamarin アプリ モデル ベース ライブラリ Win Forms WPF
  • 4.
    ◼ .NET Core/ Xamarin / .NET Framework アプリケーション モデルをサポート ◼ 統一プラットフォームへ向けた .NET Core の進化 ◼ シングル SDK, 一つの BCL, 統一されたツール チェーン ◼ クロスプラットフォーム ネイティブ UI ◼ クロスプラットフォーム Web UI ◼ Cloud Native への投資 ◼ パフォーマンス、サイズ、診断、Azure サービスの継続的な改善 ◼ .NET 5 に含まれないアプリケーション モデル ◼ ASP.NET Web Forms ◼ WCF (Windows Communication Foundation) ◼ WF (Windows Workflow Foundation) – .NET 5 to 6 "wave" .NET Framework Mono / Xamarin .NET Core .NET One .NET vision .NET has the best of breed solutions for all modern workloads
  • 5.
    .NET リリース スケジュール •.NET 5.0 リリース : 2020 年 11 月 • 毎年 11 月にメジャー リリース • LTS は奇数年リリース • 予定リリース以外に必要であればマイナーリリースあり Dec 2019 .NET Core 3.1 LTS Nov 2020 .NET 5.0 Nov 2021 .NET 6.0 LTS Nov 2022 .NET 7.0 Nov 2023 .NET 8.0 LTS
  • 6.
    クロス プラットフォーム, ネイティブUI シングル プロジェクト, シングル コードベース モバイルやデスクトップなどマルチデバイスへのデプロイ Xamarin.Forms の進化 2021 年予定の .NET 6 preview をターゲット Build beautiful, native UI for any device .NET Multi-platform App UI (.NET MAUI) .NET MAUI .NET Platform github.com/dotnet/maui
  • 7.
    WinUI 3 Preview3 http://aka.ms/winui ◼ WinUI – The modern native UI platform of Windows ◼ Windows アプリのためのモダンコントロールとスタイルの UI レイヤー ◼ WinUI 3 は UWP と Win32 アプリをサポート (WinUI 2 は UWP のみ) ◼ Native C/C++, .NET 5, WebView2, Fluent Design Controls 等に対応
  • 8.
    .NET 言語 Powerful, flexible,for any kind of .NET app タイプセーフなオブジェクト指向プログラミング言語 最新の C# 9 が .NET 5 で利用可能 Easy to get started, approachable 自然言語に近く読みやすい構文のプログラミング言語 (VB.NET) .NET 5 では一部のアプリタイプで使用可能 (今後のアップデートは予定なし) Productive functional programming and analytics .NET の関数型プログラミング言語 最新の F# 5 が .NET 5 で利用可能
  • 9.
    BCL / Runtime ASP.NETCore 3.1 / 5.0
  • 10.
  • 11.
    GitHub リポジトリから Azureへフルスタック Web アプリ環境を自動的に構築してデプロイ Azure Functions バックエンドと共に Angular, React, Vue などを使用した SPA アプリの構築 GitHub Azure Azure Static Web Apps (Preview) ◼ JAM スタックで構成された Web アプリの Azure PaaS 移行 ◼ 指定した GitHub リポジトリに対して GitHub Actions ワークフローを自動生成 ◼ Azure Functions による API をサポート ◼ 静的コンテンツの Web ホスティングと グローバル分散 ◼ 各種認証プロバイダーの統合 ◼ カスタム ドメイン、無料 SSL 証明書 ◼ etc …
  • 12.
    .NET 5 のCloud Native への投資  REST API’s  Open API, API REPL, client generation, publish to APIM  gRPC contract-based API’s  Generate client & server from proto file, world class performance  Faster cross-platform development with WSL and Linux  Smaller microservices, single file apps, top-level C# programs  High-performance reverse proxy (YARP)  Opinionated .NET microservices & orchestration tools (Tye)
  • 13.
    The Twelve-Factor App TheTwelve Factor App is a set of best practices that guide you to build a great Cloud Native application. クラウド ネイティブ アプリのベストプラクティス (方法論) : https://12factor.net/ja/
  • 14.
    Linux Container とWindows Container Hardware VM VM Application Processes Container Container Container OS 仮想マシン = ハードウェア仮想化 VM Linux Containers = OS 仮想化 Kernel Container Container Container Container Container Container Hyper-V Kernel Kernel Kernel Hyper-V Containers = Hyper-V による分離 Windows Server Containers = プロセス分離 Kernel docker run -it --isolation=hyperv <image> … docker run -it --isolation=process <image> …
  • 15.
    Azure App Service& Windows Containers (GA) Windows Containers によるモノリシック / N-Tier アプリの Azure App Service 移行が可能
  • 16.
    AKS Linux &Windows ノードプール • 複数のノード プールを使用して、AKS クラスター で Windows と Linux の VM を混在させること が可能 • ノード セレクタを使用して、Windows と Linux が混在するワークロードをスケジュール可能 API server Controller Manager Scheduler etcd Store Cloud Controller Self-managed master node(s) Customer VMs – Nodepool 1 App/ workload definition User Schedule pods over private tunnel Kubernetes API endpoint Azure managed control plane Docker Pods Docker Pods kubelet kube-proxy VM Docker Pods Docker Pods kubelet kube-proxy VM Customer VMs – Nodepool 2 Schedule pods over private tunnel Docker Pods Docker Pods kubelet kube-proxy VM Docker Pods Docker Pods kubelet kube-proxy VM
  • 17.
    .NET x /.NET Core .NET Framework .NET Core / .NET 5 と .NET Framework の選択
  • 18.
    .NET 5 &6 ~ すべてのアプリのための統一プラットフォーム .NET 5 & 6(Nov 2021) INFRASTRUCTURE .NET Standard DESKTOP WPF/Win Forms UWP WEB ASP.NET MOBILE Xamarin GAMING Unity CLOUD Azure IoT ARM32 ARM64 AI ML.NET .NET Apache Spark
  • 19.
    © 2018 MicrosoftCorporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。 © 2021 Microsoft Corporation. All rights reserved. 本情報の内容 (添付文書、リンク先などを含む) は、本資料作成時点のものであり、予告なく変更される場合があります。 本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。