SlideShare a Scribd company logo
.NET 6、7 時代の
デスクトップ アプリケーション開発
25th March 2022
Fujio Kojima
ゴール
2
アジェンダ
1. マイクロソフト技術による
デスクトップ アプリケーション開発の歴史
4
5
1. マイクロソフト技術による
デスクトップ アプリケーション開発の歴史
C++/MFC
C++/WTL
.NET/Windows Forms
Win32 API
6
XAML
WinRT API
7
UWP (Universal Windows Platform)
XAML
WinRT API
8
C++/CX
C++/WinRT
WinRT API Application 開発環境
9
.NET/WPF
10
Windows Presentation Foundation
XAML
Microsoft Silverlight - Wikipedia
XAML
Silverlight
11
Extensible Application Markup Language
XAML の概要 - WPF .NET | Microsoft Docs
XAML
12
Xamarin Forms
WinUI
XAML の方言
13
XAML Standard は
どうなったのか
2. Win UI 3
14
Windows UI ライブラリ (WinUI) - Windows apps | Microsoft Docs
Windows UI ライブラリ (WinUI) 2 - Windows apps | Microsoft Docs
Windows UI ライブラリ (WinUI) 3 - Windows apps | Microsoft Docs
Fluent Design System
Win UI
15
Win UI 2
16
microsoft-ui-xaml/roadmap.md at main · microsoft/microsoft-ui-xaml · GitHub
Win UI 3
17
Win UI 3
18
Project Reunion
19
Windows UI ライブラリ (WinUI) 3 - Windows apps | Microsoft Docs
Win UI 3
20
Visual Studio 拡張機能
「Windows App SDK」
Windows UI ライブラリ (WinUI) 3 - Windows apps | Microsoft Docs
Win UI 3 (C#)
21
[Experimental]
WinUI 3 App
Windows UI ライブラリ (WinUI) 3 - Windows apps | Microsoft Docs
Win UI 3 (C++/WinRT)
22
[Experimental]
WinUI 3 App
Microsoft インターフェイス定義言語 3.0 の概要 - Windows UWP applications | Microsoft Docs
Win UI 3 アプリケーション (C++/WinRT)
23
.NET MAUI とは - .NET MAUI | Microsoft Docs
3. MAUI
24
• dotnet/maui | GitHub
• クロス プラットフォーム、
ネイティブ UI
• シングル プロジェクト、
シングル コードベース
• モバイルやデスクトップなど
マルチデバイスへのデプロイ
• 2022年春頃 GA 予定
MAUI (Multi-platform App UI)
25
MAUI (Multi-platform App UI)
26
The Future of Native Apps Development in .NET 6 - YouTube
MAUI (Multi-platform App UI)
27
The Future of Native Apps Development in .NET 6 - YouTube
Visual Studio Preview (microsoft.com)
Visual Studio Preview
28
.NET MAUI App
.NET MAUI Blazor App
MAUI (Multi-platform App UI)
29
MAUI (Multi-platform App UI)
30
31
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="HelloMaui.MainPage"
BackgroundColor="{DynamicResource SecondaryColor}">
<ScrollView>
<Grid RowSpacing="25" RowDefinitions="Auto,Auto,Auto,Auto,*"
Padding="{OnPlatform iOS='30,60,30,30', Default='30'}">
<Label
Text="Hello, World!"
Grid.Row="0"
SemanticProperties.HeadingLevel="Level1"
FontSize="32"
HorizontalOptions="Center" />
<Label
Text="Welcome to .NET Multi-platform App UI"
Grid.Row="1"
SemanticProperties.HeadingLevel="Level1"
SemanticProperties.Description="Welcome to dot net Multi platform App U I"
FontSize="18"
HorizontalOptions="Center" />
<Label
Text="Current count: 0"
Grid.Row="2"
FontSize="18"
FontAttributes="Bold"
x:Name="CounterLabel"
HorizontalOptions="Center" />
<Button
Text="Click me"
FontAttributes="Bold"
Grid.Row="3"
SemanticProperties.Hint="Counts the number of times you click"
Clicked="OnCounterClicked"
HorizontalOptions="Center" />
<Image Grid.Row="4"
Source="dotnet_bot.png"
SemanticProperties.Description="Cute dot net bot waving hi to you!"
WidthRequest="250"
HeightRequest="310"
HorizontalOptions="Center" />
</Grid>
</ScrollView>
</ContentPage>
.NET MAUI App (Preview)
32
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:b="clr-
namespace:Microsoft.AspNetCore.Components.WebView.Maui;assembly=Microsoft.AspN
etCore.Components.WebView.Maui"
xmlns:local="clr-namespace:HelloMauiBlazor"
x:Class="HelloMauiBlazor.MainPage"
BackgroundColor="{DynamicResource PageBackgroundColor}">
<b:BlazorWebView HostPage="wwwroot/index.html">
<b:BlazorWebView.RootComponents>
<b:RootComponent Selector="#app" ComponentType="{x:Type
local:Main}" />
</b:BlazorWebView.RootComponents>
</b:BlazorWebView>
</ContentPage>
.NET MAUI Blazor App
(Preview)
@page "/"
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
3. Blazor
33
Blazor
34
Blazor
35
Blazor の種類
36
Blazor の種類
37
Mobile Blazor Bindings App (Experimental)
Blazor の種類
38
Blazor の種類
39
ASP.NET Community Standup - Blazor .NET 7 Roadmap - YouTube
Blazor Hybrid (Experimental)
40
ASP.NET Community Standup - Blazor .NET 7 Roadmap - YouTube
Hybrid apps with Blazor & .NET MAUI
Blazor Hybrid (Experimental)
41
• ネイティブと Web の UI コンポーネントの再利用
• .NET MAUI 上に構築
• ネイティブ アプリ コンテナーと埋め込みコントロール
• 2022年春頃に GA 予定
NuGet Gallery | Microsoft.MobileBlazorBindings.Templates 0.5.50-preview
Blazor Desktop Apps と Blazor Hybrid の 開発環境
42
プロジェクトのテンプレート
をインストール
Blazor
43
44
Blazor Desktop Apps
(Experimental)
<ContentView>
<StackLayout Margin="new Thickness(20)">
<Label Text="Hello, World!"
FontSize="40" />
<Counter />
</StackLayout>
</ContentView>
45
Blazor Hybrid
(Experimental)
@page "/"
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
@inject CounterState CounterState
<ContentView>
<StackLayout>
<StackLayout Margin="new Thickness(20)" Orientation="StackOrientation.Horizontal">
<Label Text="@($"Hello, World! {CounterState.CurrentCount}")" FontSize="40"
HorizontalOptions="LayoutOptions.StartAndExpand" />
<Button Text="Increment" OnClick="@CounterState.IncrementCount" VerticalOptions="LayoutOptions.Center"
Padding="10" />
</StackLayout>
<BlazorWebView VerticalOptions="LayoutOptions.FillAndExpand">
<HelloBlazorBindingHybrid.WebUI.App />
</BlazorWebView>
</StackLayout>
</ContentView>
@code {
protected override void OnInitialized()
{
CounterState.StateChanged += StateHasChanged;
}
public void Dispose()
{
CounterState.StateChanged -= StateHasChanged;
}
}
• 毎年11月にメジャー リリース予定
• LTS は奇数年リリース
• 2021年11月 ― .NET 6 (LTS) リリース
• 予定リリース以外に必要であればマイナー リリースあり
• LTS サポートは3年
【参考】 .NET Roadmap
46
Announcing .NET 7 Preview 2 - The New, 'New' Experience - .NET Blog (microsoft.com)
【参考】 .NET 7
47
まとめ
microsoft-ui-xaml/roadmap.md at main · microsoft/microsoft-ui-xaml · GitHub
Windows UI ライブラリ (WinUI) - Windows apps | Microsoft Docs
Windows UI ライブラリ (WinUI) 3 - Windows apps | Microsoft Docs
Fluent Design System
Microsoft インターフェイス定義言語 3.0 の概要 - Windows UWP applications | Microsoft
Docs
Visual Studio Preview (microsoft.com)
参考文献
49

More Related Content

PDF
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
KEY
一人でもはじめるGitでバージョン管理
PDF
Gitはじめの一歩
PPTX
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
PDF
Gitlab ci-cd
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
PDF
Concourseで快適な自動化の旅
PPTX
Using GitHub Actions to Deploy your Workloads to Azure
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
一人でもはじめるGitでバージョン管理
Gitはじめの一歩
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
Gitlab ci-cd
Java開発の強力な相棒として今すぐ使えるGroovy
Concourseで快適な自動化の旅
Using GitHub Actions to Deploy your Workloads to Azure

What's hot (20)

PDF
ADRという考えを取り入れてみて
PPTX
冬のLock free祭り safe
PPTX
Web assembly: a brief overview
PDF
Use After Free 脆弱性攻撃を試す
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
PPTX
Nmap 9つの真実
PDF
신입 개발자 생활백서 [개정판]
PDF
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
PDF
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
PDF
目grep入門 +解説
PDF
Dockerfile を書くためのベストプラクティス解説編
PPTX
학생 개발자, 인턴십으로 성장하기
PDF
いつやるの?Git入門
PPTX
소프트웨어 학습 및 자바 웹 개발자 학습 로드맵
PDF
Usb接続するアプリを開発した時に試行錯誤した事
PPT
Git workflows
PPT
Glibc malloc internal
PPT
Git workflows presentation
PPTX
Hang fire
PDF
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
ADRという考えを取り入れてみて
冬のLock free祭り safe
Web assembly: a brief overview
Use After Free 脆弱性攻撃を試す
ネットワーク ゲームにおけるTCPとUDPの使い分け
Nmap 9つの真実
신입 개발자 생활백서 [개정판]
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
目grep入門 +解説
Dockerfile を書くためのベストプラクティス解説編
학생 개발자, 인턴십으로 성장하기
いつやるの?Git入門
소프트웨어 학습 및 자바 웹 개발자 학습 로드맵
Usb接続するアプリを開発した時に試行錯誤した事
Git workflows
Glibc malloc internal
Git workflows presentation
Hang fire
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
Ad

Similar to .NET 6 時代のデスクトップ アプリケーション開発 (20)

PDF
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
PDF
NET MAUI for .NET 7 for iOS, Android app development
PDF
XAML のこれまでとこれから、今「やる」べき意義
PPTX
Windows 8時代のアプリ開発
PDF
Web開発者が始める .NET MAUI Blazor App
PDF
Web開発者にお勧め .NET MAUI Blazor App
PDF
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
PPTX
7 つの Blazor
PDF
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
PPTX
自己紹介とC# Devkitについて.pptx
PPTX
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
PDF
Slug 3-windows phone7helloworld-classmethod-ryuichi-nonaka
PDF
.NET 5 勉強会 ~.NET Framework から .NET へ~
PDF
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
PDF
Dev camp2012jpn day2special
PDF
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
PDF
[Japan Tech summit 2017] APP 001
PPTX
Xamarin Dev days 2 xamarin.forms ja
PDF
App010 【xamarin 開発の真実】
PPTX
App010 【xamarin 開発の真実】
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
NET MAUI for .NET 7 for iOS, Android app development
XAML のこれまでとこれから、今「やる」べき意義
Windows 8時代のアプリ開発
Web開発者が始める .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor App
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
7 つの Blazor
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
自己紹介とC# Devkitについて.pptx
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Slug 3-windows phone7helloworld-classmethod-ryuichi-nonaka
.NET 5 勉強会 ~.NET Framework から .NET へ~
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Dev camp2012jpn day2special
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[Japan Tech summit 2017] APP 001
Xamarin Dev days 2 xamarin.forms ja
App010 【xamarin 開発の真実】
App010 【xamarin 開発の真実】
Ad

More from Fujio Kojima (20)

PDF
AIエージェント勉強会~マイクロソフトの最新技術発表を受けて~ (2025/07)
PDF
ITエンジニア (Developer) 向けAIエージェント勉強会 (2025/06/13)
PDF
Burikaigi 2023「C# Live Coding!」 小島の分
PDF
BuriKaigi 2022 「C# Live Coding!」 小島の分
PDF
C#勉強会 ~ C#9の新機能 ~
PDF
.NETラボ 勉強会 2021年1月 「C#で機械学習」
PDF
『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~
PDF
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~
PDF
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
PDF
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
PDF
『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui
PDF
機械学習 (AI/ML) 勉強会 #2 IoT編
PDF
機械学習 (AI/ML) 勉強会 #1 基本編
PPTX
BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分
PPTX
機械学習入門
PPTX
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
PPTX
C# LINQ ~深く知って、使いまくろう~
PPTX
「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」
PPTX
.NET MVP によるドキドキ・ライブコーディング! 小島の分
PPTX
HTML5 on ASP.NET
AIエージェント勉強会~マイクロソフトの最新技術発表を受けて~ (2025/07)
ITエンジニア (Developer) 向けAIエージェント勉強会 (2025/06/13)
Burikaigi 2023「C# Live Coding!」 小島の分
BuriKaigi 2022 「C# Live Coding!」 小島の分
C#勉強会 ~ C#9の新機能 ~
.NETラボ 勉強会 2021年1月 「C#で機械学習」
『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui
機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #1 基本編
BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分
機械学習入門
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# LINQ ~深く知って、使いまくろう~
「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」
.NET MVP によるドキドキ・ライブコーディング! 小島の分
HTML5 on ASP.NET

.NET 6 時代のデスクトップ アプリケーション開発