*本資料の内容 (添付文書、リンク先などを含む) は de:code 2020 における公開日時点のものであり、予告なく変更される場合があります。
#decode20 #
Build 2020 最新情報
~ Azure & Visual Studio & .NET ~
A10
井上 章 (チャック) @chack411
マイクロソフト コーポレーション
グローバル ブラックベルト
Azure Cloud Native テクニカル スペシャリスト
本セッションについて
対象者
課題
ゴール
• Build 2020 で発表になった技術情報や開発ツールに興味を持つ
アプリケーション開発に携わる方
• クラウドを中心としたプラットフォームにおいて、迅速かつ信頼性の高いアプ
リケーション開発とリモートワークを想定した開発ツールの環境構築が必要
• レガシー アプリケーションのクラウド移行が必要
• アプリケーション開発における、Azure, Visual Studio,
および .NET に関連した最新情報を知ることができる
セッション アジェンダ
Azure - Developing for the Cloud
◼ VS Code / Visual Studio 2019
◼ Windows Terminal 1.0
◼ Windows Package Manager
◼ WSL 2
◼ Visual Studio Codespaces / GitHub Codespaces
Azure - Cloud Native Applications
◼ AKS updates
◼ Azure Static Web Apps
Journey to one .NET
◼ .NET Core 3.1 / Blazor WebAssembly
◼ .NET 5 / .NET MAUI
◼ WinUI 3
Learn.
Connect.
Code.
迅速かつ信頼性の高い
継続した製品やサービスの展開
新しい技術と
アプローチの習得
タイムゾーンを超えた遠隔での
チーム コラボレーション
Visual Studio Code
Tailor your editor experience with
21,000+ extensions
Develop locally, remotely, or
even in the browser
Preview: Sync and roam your
settings and extensions
code.visualstudio.com
Visual Studio 2019
Edit productively with IntelliCode
and additional refactorings
Collaborate with Live Share
and GitHub integration
v16.6 and v16.7 Preview 1 now
available
visualstudio.com/downloads
Windows Terminal
Optimize workflows with tabs
and panes
Fully customizable and open
source
Windows Terminal 1.0 available
today
aka.ms/terminal
Windows Package
Manager
Secure and trusted software
installation with open source
GitHub app repository
Set up your dev machine with a
single, customizable script
Preview available today
aka.ms/winget
Windows
Subsystem for Linux
Near-native Linux performance
with a real Linux kernel
Preview: Hardware accelerated
workloads via GPU
WSL 2 available today
aka.ms/wsl
WSL 1 と WSL 2 の比較
機能 WSL 1 WSL 2
Windows と Linux の統合 ⭕ ⭕
高速の起動時間 ⭕ ⭕
小さなリソース フット プリント ⭕ ⭕
マネージド VM ❌ ⭕
完全な Linux カーネル ❌ ⭕
システム コールの完全な互換性 ❌ ⭕
VMware と VirtualBox での実行 ⭕ ❌
OS ファイル システム間でのパフォーマンス ⭕ ❌
※ WSL 2 は Windows 10 バージョン 2004, ビルド 19041 以上 が必要
参考: https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
Codespaces
Private Preview
Codespaces on GitHub.com
github.com/features/codespaces
Preview
Visual Studio Codespaces
Private Preview
Visual Studio 2019 support
aka.ms/codespaces
◼ 指定した GitHub リポジトリに対して
GitHub Actions ワークフローを自動生成
◼ 静的コンテンツの Web ホスティングと
グローバル分散
◼ Azure Functions による API をサポート
◼ 各種認証プロバイダーの統合
◼ カスタム ドメイン、無料 SSL 証明書
◼ etc …
GitHub リポジトリから Azure へフルスタック Web アプリ環境を自動的に構築してデプロイ
Azure Functions バックエンドと共に Angular, React, Vue などを使用した SPA アプリの構築
Azure
Journey to one .NET
.NET エコシステム モメンタム
insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted | github.com/cncf/velocity/ | octoverse.github.com/
www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=plaintext
dot.net/get-core3
dot.net/get-core3
Also ships with Visual Studio update version 16.6
ASP.NET Core Blazor
◼ .NET (Razor Pages & C#) でフロントエンド Web UI を開発
◼ JavaScript, Angular, React, Vue などを知らなくても OK
◼ .NET の安定性と一貫性
◼ すべての WebAssembly 対応ブラウザーで動作
◼ ネイティブ パフォーマンス, プラグインなどは不要
◼ Client と Server 間での C# コードの共有、強く型付けされた開発
◼ 2 種類のホスティング モデル
◼ Blazor サーバー アプリ : サーバーサイドの .NET Core プロセスで実行、SignalR で通信
◼ Blazor WebAssembly アプリ : Web ブラウザーの WebAssembly で実行
https://blazor.net
Razor Components
.NET
WebAssembly
Blazor
WebAssembly
features
.NET Standard 2.1
ASP.NET Core hosted / standalone
Authentication
Progressive Web Apps
Debugging
IL trimming
Precompression
Configuration
Globalization & localization
One .NET vision – .NET 5 (Preview 4)
◼ .NET Core / Xamarin / .NET Framework アプリケーション モデルをサポート
◼ 統一プラットフォームへ向けた .NET Core の進化
◼ 一つの Base Class Library (BCL) 実装 + .NET Standard
◼ 一つのツール チェーン (SDK スタイル プロジェクト)
◼ Just-in-Time (JIT) とネイティブの実行モデルをサポート
◼ Java, Swift との相互運用性 (モバイル開発 – Xamarin)
◼ .NET 5 に含まれないアプリケーション モデル
◼ ASP.NET Web Forms
◼ 代替は Blazor (移行ガイド ドキュメント公開予定)
◼ WCF (Windows Communication Foundation)
◼ 代替は gRPC for WCF server and remoting (移行ガイド ドキュメント公開予定)
◼ WF (Windows Workflow Foundation)
◼ 代替は Open source core workflow for Windows workflow (WF): https://github.com/UiPath/corewf
.NET
.NET STANDARD
.NET スケジュール
• .NET Core 3.1 : 2019 年 12 月 3 日 – Long Term Support (LTS)
July 2019
.NET Core 3.0
Preview
Sept 2019
.NET Core 3.0
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
• .NET 5.0 リリース : 2020 年 11 月
• 毎年 11 月にメジャー リリース, LTS は奇数年リリース
• 予定リリース以外に必要であればマイナーリリースあり
クロス プラットフォーム, ネイティブ UI
シングル プロジェクト, シングル コードベース
モバイルやデスクトップなどマルチデバイスへのデプロイ
Xamarin.Forms の進化
2020 年末予定の .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
UWP AppsDesktop (Win32) Apps
WinForms
2002
MFC
1992
WPF
2006
UWP XAML
2012
Native C++ .NET C++ & .NET
WinUI 3 Preview 1
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 等に対応
C# 9.0
 Ships with .NET 5
 Simplicity
 Data and immutability
github.com/dotnet/csharplang
aka.ms/LangStatus
return vehicle switch
{
…
Bus => 5.00m,
DeliveryTruck t => t.GrossWeightClass switch
{
< 3000 => 10.00m - 2.00m,
>= 3000 and <= 5000 => 10.00m,
> 5000 => 10.00m + 5.00m
},
not null => throw new ArgumentException(…),
null => throw new ArgumentNullException(…)
};
Target-typed “new”:
Person person = new ("Dustin", "Campbell");
Parameter null checking:
public Person(string firstName!, string lastName!){ … }
Covariant returns:
public virtual Person GetMember() { … }
public override Student GetMember() { … }
www.dotnetconf.net
Build 2020 関連リソース
Microsoft Build 2020
https://www.microsoft.com/en-us/build
Learn TV
https://docs.microsoft.com/en-us/learn/tv/
Windows Terminal
https://aka.ms/terminal
Windows Package Manager
https://aka.ms/winget
Windows Subsystem for Linux
https://aka.ms/wsl
Visual Studio Codespaces
https://aka.ms/codespaces
GitHub Codespaces
https://github.com/features/codespaces
Visual Studio 2019
https://visualstudio.microsoft.com/vs/
Visual Studio Code
https://code.visualstudio.com
Microsoft Azure
https://azure.microsoft.com/
Azure App Service Static Web Apps
https://docs.microsoft.com/ja-jp/azure/static-web-apps/
.NET | Free. Cross-platform. Open Source.
https://dotnet.microsoft.com/
.NET Core 3.1 downloads
https://dot.net/get-core3
.NET MAUI
https://github.com/dotnet/maui
WinUI
https://aka.ms/winui
WinUI 3.0 Preview 1
https://docs.microsoft.com/ja-jp/windows/apps/winui
C#
https://github.com/dotnet/csharplang
.NET Conf 2020
https://www.dotnetconf.net
Guidance from experts
Microsoft Docs
Explore overviews, tutorials,
code samples, and more.
Keep on with
Microsoft Learn
Complete interactive learning
exercises, watch videos, and
apply your new skills.
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
© 2020 Microsoft Corporation. All rights reserved.
本情報の内容 (添付文書、リンク先などを含む) は、公開日時点のものであり、予告なく変更される場合があります。
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。

【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜

  • 1.
    *本資料の内容 (添付文書、リンク先などを含む) はde:code 2020 における公開日時点のものであり、予告なく変更される場合があります。 #decode20 # Build 2020 最新情報 ~ Azure & Visual Studio & .NET ~ A10 井上 章 (チャック) @chack411 マイクロソフト コーポレーション グローバル ブラックベルト Azure Cloud Native テクニカル スペシャリスト
  • 2.
    本セッションについて 対象者 課題 ゴール • Build 2020で発表になった技術情報や開発ツールに興味を持つ アプリケーション開発に携わる方 • クラウドを中心としたプラットフォームにおいて、迅速かつ信頼性の高いアプ リケーション開発とリモートワークを想定した開発ツールの環境構築が必要 • レガシー アプリケーションのクラウド移行が必要 • アプリケーション開発における、Azure, Visual Studio, および .NET に関連した最新情報を知ることができる
  • 3.
    セッション アジェンダ Azure -Developing for the Cloud ◼ VS Code / Visual Studio 2019 ◼ Windows Terminal 1.0 ◼ Windows Package Manager ◼ WSL 2 ◼ Visual Studio Codespaces / GitHub Codespaces Azure - Cloud Native Applications ◼ AKS updates ◼ Azure Static Web Apps Journey to one .NET ◼ .NET Core 3.1 / Blazor WebAssembly ◼ .NET 5 / .NET MAUI ◼ WinUI 3
  • 4.
  • 6.
  • 9.
    Visual Studio Code Tailoryour editor experience with 21,000+ extensions Develop locally, remotely, or even in the browser Preview: Sync and roam your settings and extensions code.visualstudio.com
  • 10.
    Visual Studio 2019 Editproductively with IntelliCode and additional refactorings Collaborate with Live Share and GitHub integration v16.6 and v16.7 Preview 1 now available visualstudio.com/downloads
  • 11.
    Windows Terminal Optimize workflowswith tabs and panes Fully customizable and open source Windows Terminal 1.0 available today aka.ms/terminal
  • 12.
    Windows Package Manager Secure andtrusted software installation with open source GitHub app repository Set up your dev machine with a single, customizable script Preview available today aka.ms/winget
  • 13.
    Windows Subsystem for Linux Near-nativeLinux performance with a real Linux kernel Preview: Hardware accelerated workloads via GPU WSL 2 available today aka.ms/wsl
  • 14.
    WSL 1 とWSL 2 の比較 機能 WSL 1 WSL 2 Windows と Linux の統合 ⭕ ⭕ 高速の起動時間 ⭕ ⭕ 小さなリソース フット プリント ⭕ ⭕ マネージド VM ❌ ⭕ 完全な Linux カーネル ❌ ⭕ システム コールの完全な互換性 ❌ ⭕ VMware と VirtualBox での実行 ⭕ ❌ OS ファイル システム間でのパフォーマンス ⭕ ❌ ※ WSL 2 は Windows 10 バージョン 2004, ビルド 19041 以上 が必要 参考: https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
  • 15.
    Codespaces Private Preview Codespaces onGitHub.com github.com/features/codespaces Preview Visual Studio Codespaces Private Preview Visual Studio 2019 support aka.ms/codespaces
  • 20.
    ◼ 指定した GitHubリポジトリに対して GitHub Actions ワークフローを自動生成 ◼ 静的コンテンツの Web ホスティングと グローバル分散 ◼ Azure Functions による API をサポート ◼ 各種認証プロバイダーの統合 ◼ カスタム ドメイン、無料 SSL 証明書 ◼ etc … GitHub リポジトリから Azure へフルスタック Web アプリ環境を自動的に構築してデプロイ Azure Functions バックエンドと共に Angular, React, Vue などを使用した SPA アプリの構築 Azure
  • 21.
  • 22.
    .NET エコシステム モメンタム insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted| github.com/cncf/velocity/ | octoverse.github.com/ www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=plaintext
  • 23.
  • 24.
    dot.net/get-core3 Also ships withVisual Studio update version 16.6
  • 25.
    ASP.NET Core Blazor ◼.NET (Razor Pages & C#) でフロントエンド Web UI を開発 ◼ JavaScript, Angular, React, Vue などを知らなくても OK ◼ .NET の安定性と一貫性 ◼ すべての WebAssembly 対応ブラウザーで動作 ◼ ネイティブ パフォーマンス, プラグインなどは不要 ◼ Client と Server 間での C# コードの共有、強く型付けされた開発 ◼ 2 種類のホスティング モデル ◼ Blazor サーバー アプリ : サーバーサイドの .NET Core プロセスで実行、SignalR で通信 ◼ Blazor WebAssembly アプリ : Web ブラウザーの WebAssembly で実行 https://blazor.net Razor Components .NET WebAssembly
  • 26.
    Blazor WebAssembly features .NET Standard 2.1 ASP.NETCore hosted / standalone Authentication Progressive Web Apps Debugging IL trimming Precompression Configuration Globalization & localization
  • 27.
    One .NET vision– .NET 5 (Preview 4) ◼ .NET Core / Xamarin / .NET Framework アプリケーション モデルをサポート ◼ 統一プラットフォームへ向けた .NET Core の進化 ◼ 一つの Base Class Library (BCL) 実装 + .NET Standard ◼ 一つのツール チェーン (SDK スタイル プロジェクト) ◼ Just-in-Time (JIT) とネイティブの実行モデルをサポート ◼ Java, Swift との相互運用性 (モバイル開発 – Xamarin) ◼ .NET 5 に含まれないアプリケーション モデル ◼ ASP.NET Web Forms ◼ 代替は Blazor (移行ガイド ドキュメント公開予定) ◼ WCF (Windows Communication Foundation) ◼ 代替は gRPC for WCF server and remoting (移行ガイド ドキュメント公開予定) ◼ WF (Windows Workflow Foundation) ◼ 代替は Open source core workflow for Windows workflow (WF): https://github.com/UiPath/corewf .NET .NET STANDARD
  • 28.
    .NET スケジュール • .NETCore 3.1 : 2019 年 12 月 3 日 – Long Term Support (LTS) July 2019 .NET Core 3.0 Preview Sept 2019 .NET Core 3.0 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 • .NET 5.0 リリース : 2020 年 11 月 • 毎年 11 月にメジャー リリース, LTS は奇数年リリース • 予定リリース以外に必要であればマイナーリリースあり
  • 29.
    クロス プラットフォーム, ネイティブUI シングル プロジェクト, シングル コードベース モバイルやデスクトップなどマルチデバイスへのデプロイ Xamarin.Forms の進化 2020 年末予定の .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
  • 30.
    UWP AppsDesktop (Win32)Apps WinForms 2002 MFC 1992 WPF 2006 UWP XAML 2012 Native C++ .NET C++ & .NET
  • 31.
    WinUI 3 Preview1 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 等に対応
  • 32.
    C# 9.0  Shipswith .NET 5  Simplicity  Data and immutability github.com/dotnet/csharplang aka.ms/LangStatus return vehicle switch { … Bus => 5.00m, DeliveryTruck t => t.GrossWeightClass switch { < 3000 => 10.00m - 2.00m, >= 3000 and <= 5000 => 10.00m, > 5000 => 10.00m + 5.00m }, not null => throw new ArgumentException(…), null => throw new ArgumentNullException(…) }; Target-typed “new”: Person person = new ("Dustin", "Campbell"); Parameter null checking: public Person(string firstName!, string lastName!){ … } Covariant returns: public virtual Person GetMember() { … } public override Student GetMember() { … }
  • 33.
  • 34.
    Build 2020 関連リソース MicrosoftBuild 2020 https://www.microsoft.com/en-us/build Learn TV https://docs.microsoft.com/en-us/learn/tv/ Windows Terminal https://aka.ms/terminal Windows Package Manager https://aka.ms/winget Windows Subsystem for Linux https://aka.ms/wsl Visual Studio Codespaces https://aka.ms/codespaces GitHub Codespaces https://github.com/features/codespaces Visual Studio 2019 https://visualstudio.microsoft.com/vs/ Visual Studio Code https://code.visualstudio.com Microsoft Azure https://azure.microsoft.com/ Azure App Service Static Web Apps https://docs.microsoft.com/ja-jp/azure/static-web-apps/ .NET | Free. Cross-platform. Open Source. https://dotnet.microsoft.com/ .NET Core 3.1 downloads https://dot.net/get-core3 .NET MAUI https://github.com/dotnet/maui WinUI https://aka.ms/winui WinUI 3.0 Preview 1 https://docs.microsoft.com/ja-jp/windows/apps/winui C# https://github.com/dotnet/csharplang .NET Conf 2020 https://www.dotnetconf.net
  • 35.
    Guidance from experts MicrosoftDocs Explore overviews, tutorials, code samples, and more.
  • 36.
    Keep on with MicrosoftLearn Complete interactive learning exercises, watch videos, and apply your new skills.
  • 37.
    © 2018 MicrosoftCorporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。 © 2020 Microsoft Corporation. All rights reserved. 本情報の内容 (添付文書、リンク先などを含む) は、公開日時点のものであり、予告なく変更される場合があります。 本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。