7. n .NET Core / Xamarin / .NET Framework アプリケーション モデルをサポート
n 統⼀プラットフォームへ向けた .NET Core の進化
n シングル SDK, ⼀つの BCL, 統⼀されたツール チェーン
n クロスプラットフォーム ネイティブ UI
n クロスプラットフォーム Web UI
n Cloud Native への投資
n パフォーマンス、サイズ、診断、Azure サービスの継続的な改善
n .NET 6 に含まれないアプリケーション モデル
n ASP.NET Web Forms
n WCF (Windows Communication Foundation)
n WF (Windows Workflow Foundation)
– .NET 6
.NET Framework
Mono / Xamarin
.NET Core
.NET
One .NET vision
.NET has the best of breed solutions for all modern workloads
9. ASP.NET Core Blazor
n .NET (Razor Pages & C#) でフロントエンド Web UI を開発
n JavaScript, Angular, React, Vue などを知らなくても OK
n .NET の安定性と⼀貫性
n すべての WebAssembly 対応ブラウザーで動作
n ネイティブ パフォーマンス, プラグインなどは不要
n Client と Server 間での C# コードの共有、強く型付けされた開発
n 2 種類のホスティング モデル
n Blazor サーバー アプリ : サーバーサイドの .NET プロセスで実⾏、SignalR で通信
n Blazor WebAssembly アプリ : Web ブラウザーの WebAssembly で実⾏
https://blazor.net
Razor Components
.NET
WebAssembly
[参考] ASP.NET Web Forms から Blazor への移行 | Microsoft Docs
10. Blazor – full stack web apps with .NET
Blazor サーバー Blazor WebAssembly
DOM
Blazor
WebAssembly
.NET
Razor Components
Blazor
.NET
Razor Components
DOM
SignalR
ü サーバー側機能へフルアクセス
ü ⾼速起動
ü コードはサーバー側で実⾏
ü 古いブラウザとシンクライアントをサポート
û 永続的なコネクションが必要
û UI レイテンシーが⾼い
ü完全にクライアント側で実⾏
üサーバー コンポーネントは不要
ü静的サイトでホスト
üオフライン実⾏可能
ûダウンロードサイズが⼤きい
û実⾏時パフォーマンスがサーバー側実⾏より低速
11. Blazor – full stack web apps with .NET
Blazor サーバー Blazor WebAssembly
DOM
Blazor
WebAssembly
.NET
Razor Components
Blazor
.NET
Razor Components
DOM
SignalR
ü サーバー側機能へフルアクセス
ü ⾼速起動
ü コードはサーバー側で実⾏
ü 古いブラウザとシンクライアントをサポート
û 永続的なコネクションが必要
û UI レイテンシーが⾼い
ü完全にクライアント側で実⾏
üサーバー コンポーネントは不要
ü静的サイトでホスト
üオフライン実⾏可能
ûダウンロードサイズが⼤きい
û実⾏時パフォーマンスがサーバー側実⾏より低速
Blazor WebAssembly ahead-of-time (AOT) compilation
Smaller Blazor WebAssembly app download size
Error boundaries
Razor component type inference & generic type constraints
Dynamic components
Blazor state persistence during prerendering
.NET 6
13. ネイティブと Web の UI コンポーネントの再利⽤
.NET Multi-platform App UI 上に構築
ネイティブ アプリ コンテナーと埋め込みコントロール
2022 年 春頃に GA 予定
Hybrid apps with Blazor & .NET MAUI
.NET MAUI
Blazor
Can use native app
container & controls
iOS
macOS
14. Minimal APIs for cloud native apps
var app = WebApplication.Create(args);
app.MapGet("/", () => "Hello World!");
app.Run();
軽量、単⼀ファイルで Cloud Native API
少ない作法、トップレベルでの C# プログラム
Path to MVC
.NET 6 で GA
Minimal code for minimal apps
15. Simplify your code with C# 10
global using Model; // Global usings apply to entire project
// using System; // Implicit usings for each project type
namespace Model; // File-scope namespace, no indentation needed
// Records can be structs as well as classes
public record struct Order(Customer Customer, string Kind, int Items);
public record class Customer(string Name, string Address);
// Lambdas have types
var parse = (string s) => int.Parse(s); // Func<string, int>
17. .NET 〜 すべてのアプリのための統⼀プラットフォーム
COMMON BASE LIBARIES/APIs
INFRASTRUCTURE
.NET 6
TOOLS
Visual Studio Code
CLI
Visual Studio
Visual Studio for Mac
WEB MOBILE GAMING IoT AI
ASP.NET
Blazor
.NET MAUI
Xamarin
Unity ARM32
ARM64
ML.NET
.NET for
Apache Spark
DESKTOP
.NET MAUI
WPF
WinForms
CLOUD
Azure
ECOSYSTEM
NuGet
GitHub
Components,
tools, library
vendors
20. n 本書に記載した情報は、本書各項⽬に関する発⾏⽇現在の Microsoft の⾒解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報
に対していかなる責務を負うものではなく、提⽰された情報の信憑性については保証できません。
n 本書は情報提供のみを⽬的としています。 Microsoft は、明⽰的または暗⽰的を問わず、本書にいかなる保証も与えるものではありません。
n すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書⾯による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿⼊を⾏うこ
とは、どのような形式または⼿段(電⼦的、機械的、複写、レコーディング、その他)、および⽬的であっても禁じられています。これらは著作権保護された権利を制限するものではあ
りません。
n Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書⾯によるライセンス契約が明確に供給さ
れる場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。
n Microsoft, Windows, その他本⽂中に登場した各製品名は、Microsoft Corporation の⽶国およびその他の国における登録商標または商標です。
その他、記載されている会社名および製品名は、⼀般に各社の商標です。