SlideShare a Scribd company logo
.NET 5 勉強会
~ .NET Framework から .NET へ ~
2021/03/15
小島 富治雄
前提条件とゴール
2
アジェンダ
1. .NET 5 概要
4
.NET Standard Library
WPF
Windows Forms
ASP.NET
WPF (Windows)
Windows Forms
(Windows)
UWP (Windows)
ASP.NET
iOS
Android
Windows
macOS
https://dotnet.microsoft.com/download/dotnet/5.0
https://dotnet.microsoft.com/download/dotnet/thank-you/sdk-5.0.200-windows-x64-installer
開発環境
5
6
One .NET
7
WPF
Windows Forms
ASP.NET
.NET Standard Library
WPF (Windows)
Windows Forms
(Windows)
UWP (Windows)
ASP.NET
iOS
Android
Windows
macOS
.NET Standard Library
One .NET
8
WPF
Windows Forms
ASP.NET
WPF (Windows)
Windows Forms
(Windows)
UWP (Windows)
ASP.NET
iOS
Android
Windows
macOS
One .NET
9
WPF
Windows Forms
ASP.NET
.NET Standard Library
WPF (Windows)
Windows Forms
(Windows)
UWP (Windows)
ASP.NET
MAUI (Xamarinの後継)
iOS
Android
Windows
macOS
.NET のロードマップ
10
Performance Improvements in .NET 5 | .NET Blog (microsoft.com)
.NET Framework と .NET (Core) のパフォーマンス
11
Round 19 results - TechEmpower Framework Benchmarks
Getting Started with Entity Framework Core: Database-First Development - CodeProject
• .NET 5 に含まれないものがある
• WCF (Windows Communication Foundation)
• WF (Workflow Foundation)
• ASP.NET Web Forms
.NET 5 採用の注意点
12
• ASP.NET や EntityFramework などは、変更されていて互換性がやや低い
ASP.NET 4.x と ASP.NET Core の選択 | Microsoft Docs
EF6 と EF Core を比較する | Microsoft Docs
.NET 5 採用の注意点
13
【参考】 MAUI (Multi-platform App UI)
14
【参考】 MAUI (Multi-platform App UI)
15
The Future of Native Apps Development in .NET 6 - YouTube
【参考】 MAUI (Multi-platform App UI)
16
The Future of Native Apps Development in .NET 6 - YouTube
【参考】 MAUI (Multi-platform App UI)
17
The Future of Native Apps Development in .NET 6 - YouTube
【参考】 Blazor
18
【参考】 Blazor の種類
19
【参考】 Blazor の種類
20
【参考】 Blazor
21
2. .NET Framework との違い
22
WPF
Windows Forms
ASP.NET
.NET Standard Library
WPF (Windows)
Windows Forms
(Windows)
UWP (Windows)
ASP.NET
iOS
Android
Windows
macOS
.NET Framework と .NET
23
.NET Framework .NET 5 .NET 6
動作OS Windows Windows, Mac, Linux (*) Windows, Mac, Linux, iOS,
Android (*)
開発OS Windows Windows, Mac, Linux Windows, Mac, Linux
主な開発ツール Visual Studio Visual Studio, Visual Studio for
Mac, Visual Studio Code
Visual Studio, Visual Studio for
Mac, Visual Studio Code
C# 7.3 (8.0 の一部もサポート) 9.0 C# Next?
(*) プロジェクトの種類による
.NET Framework
24
.NET Platform · GitHub
.NET
25
.NET Framework から .NET Core への移植 - .NET Core | Microsoft Docs
packages.config から PackageReference 形式への移行 | Microsoft Docs
.NET Portability Analyzer - .NET | Microsoft Docs
.NET Framework と .NET のコードの違い
26
【サンプル】 チャット ツール “Chatter” の移植
27
Shos.Chatter.NetFramework: Web API, SignalR, Web Client (WPF and Web) for .NET Framework 4.8
| github.com
Shos.Chatter: Web API, SignalR, Web Client (WPF and Web) for .NET 5 | github.com
【サンプル】 チャット ツール “Chatter” ソースコー
ド
28
2
.NET 5 版 (移植後)
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)¥$(MSBuildToolsVersion)¥Microsoft.Common.props" Condition="Exists('$(MSBuildExtens
ionsPath)¥$(MSBuildToolsVersion)¥Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{8DFF5A68-7B65-4D72-AEBE-7B522BBED745}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>ConsoleApp.NetFramework</RootNamespace>
<AssemblyName>ConsoleApp.NetFramework</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin¥Debug¥</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin¥Release¥</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties¥AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)¥Microsoft.CSharp.targets" />
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
</Project>
【参考】 プロジェクト ファイルの比較
.NET Framework 4.8 .NET 5
【サンプル】 チャット ツール “Chatter”
31
【サンプル】 チャット ツール “Chatter”
32
.NET Portability Analyzer で比較
33
.NET Portability Analyzer で比較
34
.NET Portability Analyzer
35
.NET Portability Analyzer
36
.NET Portability Analyzer
37
GitHub - dotnet/try-convert: Helping .NET developers port their projects to .NET Core!
try-convert で比較
38
try-convert で比較
39
try-convert で比較
40
移植完了後 WinMerge した結果
41
【参考】 Chatter.Models (.NET Framework)
42
【参考】 Chatter.Server (.NET Framework)
43
【参考】 Chatter.Wpf (.NET Framework)
44
【参考】 Chatter.Server (.NET)
45
【参考】 Chatter.Wpf (.NET)
46
3. .NET 5 を体験してみよう
47
.NET プロジェクトの作成
48
dotnet コマンド - .NET CLI | Microsoft Docs
.NET プロジェクトの作成
49
C:¥Temp>cd ¥
C:¥>md 20210315
C:¥>cd 20210315
C:¥20210315>dotnet --version
5.0.201
C:¥20210315>dotnet new console -o HelloNetConsole
The template "Console Application" was created successfully.
Processing post-creation actions...
Running 'dotnet restore' on HelloNetConsole¥HelloNetConsole.csproj...
復元対象のプロジェクトを決定しています...
C:¥20210315¥HelloNetConsole¥HelloNetConsole.csproj を復元しました (81 ms)。
Restore succeeded.
C:¥20210315¥HelloNet>cd HelloNetConsole
.NET プロジェクトの作成
50
C:¥20210315¥HelloNetConsole>dotnet build
.NET 向け Microsoft (R) Build Engine バージョン 16.9.0+57a23d249
Copyright (C) Microsoft Corporation.All rights reserved.
復元対象のプロジェクトを決定しています...
復元対象のすべてのプロジェクトは最新です。
HelloNetConsole -> C:¥20210315¥HelloNetConsole¥bin¥Debug¥net5.0¥HelloNetConsole.dll
ビルドに成功しました。
0 個の警告
0 エラー
経過時間 00:00:05.66
C:¥20210315¥HelloNetConsole>dotnet bin¥Debug¥net5.0¥HelloNetConsole.dll
Hello World!
C:¥20210315¥HelloNetConsole>bin¥Debug¥net5.0¥HelloNetConsole.exe
Hello World!
.NET プロジェクトの作成
51
C:¥20210315¥HelloNetConsole>cd ..
C:¥20210315>dotnet new webapp --auth Windows -o HelloNetWeb
The template "ASP.NET Core Web App" was created successfully.
This template contains technologies from parties other than Microsoft, see https://aka.ms/aspnetcore/5.0-
third-party-notices for details.
Processing post-creation actions...
Running 'dotnet restore' on HelloNetWeb¥HelloNetWeb.csproj...
復元対象のプロジェクトを決定しています...
C:¥20210315¥HelloNetWeb¥HelloNetWeb.csproj を復元しました (82 ms)。
Restore succeeded.
C:¥20210315>devenv HelloNetWeb¥HeloNetWeb.csproj
.NET プロジェクトの作成
52
C:¥20210315>dotnet new wpf -o HelloNetWpf
The template "WPF Application" was created successfully.
Processing post-creation actions...
Running 'dotnet restore' on HelloNetWpf¥HelloNetWpf.csproj...
復元対象のプロジェクトを決定しています...
C:¥20210315¥HelloNetWpf¥HelloNetWpf.csproj を復元しました (127 ms)。
Restore succeeded.
C:¥20210315>cd HelloNetWpf
C:¥20210315¥HelloNetWpf>dotnet publish -c Release -r win10-x64 --self-contained true
…結果省略…
C:¥20210315¥HelloNetWpf>dir bin¥Release¥net5.0-windows¥win10-x64¥publish
…結果省略…
C:¥20210315¥HelloNetWpf>bin¥Release¥net5.0-windows¥win10-x64¥publish¥HelloNetWpf.exe
本日の内容
.NET | Free. Cross-platform. Open Source. (microsoft.com)
Download .NET 5.0 (Linux, macOS, and Windows) (microsoft.com)
Announcing .NET 5.0 | .NET Blog (microsoft.com)
What's new in .NET 5 | Microsoft Docs
Performance Improvements in .NET 5 | .NET Blog (microsoft.com)
Breaking changes in .NET 5 - .NET | Microsoft Docs
.NET 5.0 の破壊的変更 - .NET | Microsoft Docs
.NET 5 Breaking Changes: Historic Technologies (infoq.com)
.NET 5 Breaking Changes to the Base Class Library (infoq.com)
参考文献
54
Announcing ASP.NET Core in .NET 5 | ASP.NET Blog (microsoft.com)
What's new in ASP.NET Core 5.0 | Microsoft Docs
Migrate from ASP.NET Core 3.1 to 5.0 | Microsoft Docs
.NET 5 Breaking Changes for ASP.NET Core (infoq.com)
Azure Static Web Apps with .NET and Blazor | ASP.NET Blog (microsoft.com)
Unified Blazor UI in the Mobile Blazor Bindings Preview 5 | ASP.NET Blog (microsoft.com)
参考文献
55
Announcing the Release of EF Core 5.0 | .NET Blog (microsoft.com)
Plan for Entity Framework Core 5.0 | Microsoft Docs
What's New in EF Core 5.0 | Microsoft Docs
Breaking changes in EF Core 5.0 - EF Core | Microsoft Docs
WPF/Windowsフォームに関する.NET 5の大きな変更 (infoq.com)
Windows フォームに関する破壊的変更 - .NET | Microsoft Docs
Windows Forms 5.0の新機能 (infoq.com)
参考文献
56
Recapping Xamarin Highlights from .NET Conf 2020 | Xamarin Blog (microsoft.com)
Introducing .NET Multi-platform App UI | .NET Blog (microsoft.com)
The future of .NET Standard | .NET Blog (microsoft.com)
Announcing C#/WinRT Version 1.0 with the .NET 5 GA Release - Windows Developer Blog
参考文献
57
[速報]マイクロソフト「.NET 5」正式リリース。1つのフレームワークでWindows/Mac/Linuxの
デスクトップ、サーバアプリ、Webアプリなどが開発可能に - Publickey (publickey1.jp)
マイクロソフト、「.NET 5.0」を正式リリース--.NETの統合に向けた大きな一歩 - ZDNet Japan
クラウドネイティブな「.NET 5」が既存の.NET Frameworkアプリにもたらすインパクト:.NET 5モダナイズ入門(1) - @IT (atmarkit.co.jp)
.NET 5世代のALMを意識した、.NET Frameworkアプリのワークロードごとの.NET 5移行戦略:.NET 5モダナイズ入門(2) - @IT (atmarkit.co.jp)
.NET 5移行前に知らないと損する、アプリモダナイズのための確認事項: .NET 5モダナイズ入門(3) - @IT (atmarkit.co.jp)
「.NET 5」の正式版がついにリリース!新しく追加された機能をまとめて解説 | GrapeCity.devlog - グレープシティ株式会社
Microsoftが .NET 5 をリリース (infoq.com)
参考文献
58
.NET Core と .NET 5 以降で使用できない .NET Framework テクノロジ | Microsoft Docs
破壊的変更 - .NET Framework から .NET Core | Microsoft Docs
ASP.NET MVC から ASP.NET Core MVC への移行 | Microsoft Docs
ASP.NET Core でのアプリケーションのスタートアップ | Microsoft Docs
.NET Framework と .NET の相違点 - WPF .NET | Microsoft Docs
.NET Core 3.0 への WPF アプリの移行 - WPF .NET | Microsoft Docs
Windows フォーム アプリを .NET 5 に移行する - Windows Forms .NET | Microsoft Docs
参考文献
59
.NET Conf 2020 | Channel 9 (msdn.com)
Keynote - Welcome to .NET 5 | .NET Conf 2020 | Channel 9 (msdn.com)
参考文献
60

More Related Content

What's hot (20)

PPTX
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
 
PDF
Cloud Foundry Cli Plugin入門
Takeshi Morikawa
 
PDF
Introduction to NotifyPropertyChangedGenerator
Yoshifumi Kawai
 
PDF
Dartでサーバレスサービス
cch-robo
 
PDF
Quarkus による超音速な Spring アプリケーション開発
Chihiro Ito
 
PDF
APIMeetup 20170329_ichimura
Tomohiro Ichimura
 
PDF
20190722 OpenStack community past present future
Akihiro Motoki
 
PDF
20140329 modern logging and data analysis pattern on .NET
Takayoshi Tanaka
 
PDF
[GKE & Spanner 勉強会] GKE 入門
Google Cloud Platform - Japan
 
PPTX
Jenkins 2.0 (日本語)
Kohsuke Kawaguchi
 
PPTX
WebRTC on Native App
WebRTCConferenceJapan
 
PPTX
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
 
PDF
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
VirtualTech Japan Inc.
 
PPTX
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
NTT DATA Technology & Innovation
 
PDF
linq.js - Linq to Objects for JavaScript
Yoshifumi Kawai
 
PPTX
コードの互換性と進化の両立
Kohsuke Kawaguchi
 
PPTX
SpringOne 2015 報告会 - Lattice + Spring Cloud Netflix
Tommy Ludwig
 
PDF
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
 
PDF
A Framework for LightUp Applications of Grani
Yoshifumi Kawai
 
PPTX
TungstenFabricでOpenStackとk8sをラクラク管理
Yuki Yamashita
 
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
 
Cloud Foundry Cli Plugin入門
Takeshi Morikawa
 
Introduction to NotifyPropertyChangedGenerator
Yoshifumi Kawai
 
Dartでサーバレスサービス
cch-robo
 
Quarkus による超音速な Spring アプリケーション開発
Chihiro Ito
 
APIMeetup 20170329_ichimura
Tomohiro Ichimura
 
20190722 OpenStack community past present future
Akihiro Motoki
 
20140329 modern logging and data analysis pattern on .NET
Takayoshi Tanaka
 
[GKE & Spanner 勉強会] GKE 入門
Google Cloud Platform - Japan
 
Jenkins 2.0 (日本語)
Kohsuke Kawaguchi
 
WebRTC on Native App
WebRTCConferenceJapan
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
 
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
VirtualTech Japan Inc.
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
NTT DATA Technology & Innovation
 
linq.js - Linq to Objects for JavaScript
Yoshifumi Kawai
 
コードの互換性と進化の両立
Kohsuke Kawaguchi
 
SpringOne 2015 報告会 - Lattice + Spring Cloud Netflix
Tommy Ludwig
 
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
 
A Framework for LightUp Applications of Grani
Yoshifumi Kawai
 
TungstenFabricでOpenStackとk8sをラクラク管理
Yuki Yamashita
 

Similar to .NET 5 勉強会 ~.NET Framework から .NET へ~ (20)

PDF
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
Akira Inoue
 
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
 
PDF
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Akira Inoue
 
PDF
【BS2】.NET 6 最新アップデート
日本マイクロソフト株式会社
 
PPTX
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
 
PPTX
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
 
PDF
Dotnetcore30forwindesktop
ru pic
 
PPTX
.NET 5 and Windows app dev
一希 大田
 
PDF
[Japan Tech summit 2017] APP 001
Microsoft Tech Summit 2017
 
PDF
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Akira Inoue
 
PDF
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
日本マイクロソフト株式会社
 
PDF
.NET の今と今後に思うこと
Akira Inoue
 
PDF
.NET Core 1.0
Akira Inoue
 
PDF
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
de:code 2017
 
PDF
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
Akira Inoue
 
PDF
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
Akira Inoue
 
PDF
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
Akira Inoue
 
PDF
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
Akira Inoue
 
PDF
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
decode2016
 
PPTX
OSC Tokyo/Spring NETMF 170311
Atomu Hidaka
 
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
Akira Inoue
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Akira Inoue
 
【BS2】.NET 6 最新アップデート
日本マイクロソフト株式会社
 
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
 
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
 
Dotnetcore30forwindesktop
ru pic
 
.NET 5 and Windows app dev
一希 大田
 
[Japan Tech summit 2017] APP 001
Microsoft Tech Summit 2017
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Akira Inoue
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
日本マイクロソフト株式会社
 
.NET の今と今後に思うこと
Akira Inoue
 
.NET Core 1.0
Akira Inoue
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
de:code 2017
 
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
Akira Inoue
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
Akira Inoue
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
Akira Inoue
 
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
Akira Inoue
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
decode2016
 
OSC Tokyo/Spring NETMF 170311
Atomu Hidaka
 
Ad

More from Fujio Kojima (20)

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

Recently uploaded (9)

PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
PDF
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 

.NET 5 勉強会 ~.NET Framework から .NET へ~

  • 1. .NET 5 勉強会 ~ .NET Framework から .NET へ ~ 2021/03/15 小島 富治雄
  • 4. 1. .NET 5 概要 4 .NET Standard Library WPF Windows Forms ASP.NET WPF (Windows) Windows Forms (Windows) UWP (Windows) ASP.NET iOS Android Windows macOS
  • 6. 6
  • 7. One .NET 7 WPF Windows Forms ASP.NET .NET Standard Library WPF (Windows) Windows Forms (Windows) UWP (Windows) ASP.NET iOS Android Windows macOS
  • 8. .NET Standard Library One .NET 8 WPF Windows Forms ASP.NET WPF (Windows) Windows Forms (Windows) UWP (Windows) ASP.NET iOS Android Windows macOS
  • 9. One .NET 9 WPF Windows Forms ASP.NET .NET Standard Library WPF (Windows) Windows Forms (Windows) UWP (Windows) ASP.NET MAUI (Xamarinの後継) iOS Android Windows macOS
  • 11. Performance Improvements in .NET 5 | .NET Blog (microsoft.com) .NET Framework と .NET (Core) のパフォーマンス 11 Round 19 results - TechEmpower Framework Benchmarks
  • 12. Getting Started with Entity Framework Core: Database-First Development - CodeProject • .NET 5 に含まれないものがある • WCF (Windows Communication Foundation) • WF (Workflow Foundation) • ASP.NET Web Forms .NET 5 採用の注意点 12
  • 13. • ASP.NET や EntityFramework などは、変更されていて互換性がやや低い ASP.NET 4.x と ASP.NET Core の選択 | Microsoft Docs EF6 と EF Core を比較する | Microsoft Docs .NET 5 採用の注意点 13
  • 15. 【参考】 MAUI (Multi-platform App UI) 15 The Future of Native Apps Development in .NET 6 - YouTube
  • 16. 【参考】 MAUI (Multi-platform App UI) 16 The Future of Native Apps Development in .NET 6 - YouTube
  • 17. 【参考】 MAUI (Multi-platform App UI) 17 The Future of Native Apps Development in .NET 6 - YouTube
  • 22. 2. .NET Framework との違い 22 WPF Windows Forms ASP.NET .NET Standard Library WPF (Windows) Windows Forms (Windows) UWP (Windows) ASP.NET iOS Android Windows macOS
  • 23. .NET Framework と .NET 23 .NET Framework .NET 5 .NET 6 動作OS Windows Windows, Mac, Linux (*) Windows, Mac, Linux, iOS, Android (*) 開発OS Windows Windows, Mac, Linux Windows, Mac, Linux 主な開発ツール Visual Studio Visual Studio, Visual Studio for Mac, Visual Studio Code Visual Studio, Visual Studio for Mac, Visual Studio Code C# 7.3 (8.0 の一部もサポート) 9.0 C# Next? (*) プロジェクトの種類による
  • 25. .NET Platform · GitHub .NET 25
  • 26. .NET Framework から .NET Core への移植 - .NET Core | Microsoft Docs packages.config から PackageReference 形式への移行 | Microsoft Docs .NET Portability Analyzer - .NET | Microsoft Docs .NET Framework と .NET のコードの違い 26
  • 27. 【サンプル】 チャット ツール “Chatter” の移植 27
  • 28. Shos.Chatter.NetFramework: Web API, SignalR, Web Client (WPF and Web) for .NET Framework 4.8 | github.com Shos.Chatter: Web API, SignalR, Web Client (WPF and Web) for .NET 5 | github.com 【サンプル】 チャット ツール “Chatter” ソースコー ド 28
  • 29. 2 .NET 5 版 (移植後)
  • 30. <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)¥$(MSBuildToolsVersion)¥Microsoft.Common.props" Condition="Exists('$(MSBuildExtens ionsPath)¥$(MSBuildToolsVersion)¥Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProjectGuid>{8DFF5A68-7B65-4D72-AEBE-7B522BBED745}</ProjectGuid> <OutputType>Exe</OutputType> <RootNamespace>ConsoleApp.NetFramework</RootNamespace> <AssemblyName>ConsoleApp.NetFramework</AssemblyName> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <Deterministic>true</Deterministic> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin¥Debug¥</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin¥Release¥</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data.DataSetExtensions" /> <Reference Include="Microsoft.CSharp" /> <Reference Include="System.Data" /> <Reference Include="System.Net.Http" /> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> <Compile Include="Program.cs" /> <Compile Include="Properties¥AssemblyInfo.cs" /> </ItemGroup> <ItemGroup> <None Include="App.config" /> </ItemGroup> <Import Project="$(MSBuildToolsPath)¥Microsoft.CSharp.targets" /> </Project> <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net5.0</TargetFramework> </PropertyGroup> </Project> 【参考】 プロジェクト ファイルの比較 .NET Framework 4.8 .NET 5
  • 38. GitHub - dotnet/try-convert: Helping .NET developers port their projects to .NET Core! try-convert で比較 38
  • 47. 3. .NET 5 を体験してみよう 47
  • 49. dotnet コマンド - .NET CLI | Microsoft Docs .NET プロジェクトの作成 49 C:¥Temp>cd ¥ C:¥>md 20210315 C:¥>cd 20210315 C:¥20210315>dotnet --version 5.0.201 C:¥20210315>dotnet new console -o HelloNetConsole The template "Console Application" was created successfully. Processing post-creation actions... Running 'dotnet restore' on HelloNetConsole¥HelloNetConsole.csproj... 復元対象のプロジェクトを決定しています... C:¥20210315¥HelloNetConsole¥HelloNetConsole.csproj を復元しました (81 ms)。 Restore succeeded. C:¥20210315¥HelloNet>cd HelloNetConsole
  • 50. .NET プロジェクトの作成 50 C:¥20210315¥HelloNetConsole>dotnet build .NET 向け Microsoft (R) Build Engine バージョン 16.9.0+57a23d249 Copyright (C) Microsoft Corporation.All rights reserved. 復元対象のプロジェクトを決定しています... 復元対象のすべてのプロジェクトは最新です。 HelloNetConsole -> C:¥20210315¥HelloNetConsole¥bin¥Debug¥net5.0¥HelloNetConsole.dll ビルドに成功しました。 0 個の警告 0 エラー 経過時間 00:00:05.66 C:¥20210315¥HelloNetConsole>dotnet bin¥Debug¥net5.0¥HelloNetConsole.dll Hello World! C:¥20210315¥HelloNetConsole>bin¥Debug¥net5.0¥HelloNetConsole.exe Hello World!
  • 51. .NET プロジェクトの作成 51 C:¥20210315¥HelloNetConsole>cd .. C:¥20210315>dotnet new webapp --auth Windows -o HelloNetWeb The template "ASP.NET Core Web App" was created successfully. This template contains technologies from parties other than Microsoft, see https://aka.ms/aspnetcore/5.0- third-party-notices for details. Processing post-creation actions... Running 'dotnet restore' on HelloNetWeb¥HelloNetWeb.csproj... 復元対象のプロジェクトを決定しています... C:¥20210315¥HelloNetWeb¥HelloNetWeb.csproj を復元しました (82 ms)。 Restore succeeded. C:¥20210315>devenv HelloNetWeb¥HeloNetWeb.csproj
  • 52. .NET プロジェクトの作成 52 C:¥20210315>dotnet new wpf -o HelloNetWpf The template "WPF Application" was created successfully. Processing post-creation actions... Running 'dotnet restore' on HelloNetWpf¥HelloNetWpf.csproj... 復元対象のプロジェクトを決定しています... C:¥20210315¥HelloNetWpf¥HelloNetWpf.csproj を復元しました (127 ms)。 Restore succeeded. C:¥20210315>cd HelloNetWpf C:¥20210315¥HelloNetWpf>dotnet publish -c Release -r win10-x64 --self-contained true …結果省略… C:¥20210315¥HelloNetWpf>dir bin¥Release¥net5.0-windows¥win10-x64¥publish …結果省略… C:¥20210315¥HelloNetWpf>bin¥Release¥net5.0-windows¥win10-x64¥publish¥HelloNetWpf.exe
  • 54. .NET | Free. Cross-platform. Open Source. (microsoft.com) Download .NET 5.0 (Linux, macOS, and Windows) (microsoft.com) Announcing .NET 5.0 | .NET Blog (microsoft.com) What's new in .NET 5 | Microsoft Docs Performance Improvements in .NET 5 | .NET Blog (microsoft.com) Breaking changes in .NET 5 - .NET | Microsoft Docs .NET 5.0 の破壊的変更 - .NET | Microsoft Docs .NET 5 Breaking Changes: Historic Technologies (infoq.com) .NET 5 Breaking Changes to the Base Class Library (infoq.com) 参考文献 54
  • 55. Announcing ASP.NET Core in .NET 5 | ASP.NET Blog (microsoft.com) What's new in ASP.NET Core 5.0 | Microsoft Docs Migrate from ASP.NET Core 3.1 to 5.0 | Microsoft Docs .NET 5 Breaking Changes for ASP.NET Core (infoq.com) Azure Static Web Apps with .NET and Blazor | ASP.NET Blog (microsoft.com) Unified Blazor UI in the Mobile Blazor Bindings Preview 5 | ASP.NET Blog (microsoft.com) 参考文献 55
  • 56. Announcing the Release of EF Core 5.0 | .NET Blog (microsoft.com) Plan for Entity Framework Core 5.0 | Microsoft Docs What's New in EF Core 5.0 | Microsoft Docs Breaking changes in EF Core 5.0 - EF Core | Microsoft Docs WPF/Windowsフォームに関する.NET 5の大きな変更 (infoq.com) Windows フォームに関する破壊的変更 - .NET | Microsoft Docs Windows Forms 5.0の新機能 (infoq.com) 参考文献 56
  • 57. Recapping Xamarin Highlights from .NET Conf 2020 | Xamarin Blog (microsoft.com) Introducing .NET Multi-platform App UI | .NET Blog (microsoft.com) The future of .NET Standard | .NET Blog (microsoft.com) Announcing C#/WinRT Version 1.0 with the .NET 5 GA Release - Windows Developer Blog 参考文献 57
  • 58. [速報]マイクロソフト「.NET 5」正式リリース。1つのフレームワークでWindows/Mac/Linuxの デスクトップ、サーバアプリ、Webアプリなどが開発可能に - Publickey (publickey1.jp) マイクロソフト、「.NET 5.0」を正式リリース--.NETの統合に向けた大きな一歩 - ZDNet Japan クラウドネイティブな「.NET 5」が既存の.NET Frameworkアプリにもたらすインパクト:.NET 5モダナイズ入門(1) - @IT (atmarkit.co.jp) .NET 5世代のALMを意識した、.NET Frameworkアプリのワークロードごとの.NET 5移行戦略:.NET 5モダナイズ入門(2) - @IT (atmarkit.co.jp) .NET 5移行前に知らないと損する、アプリモダナイズのための確認事項: .NET 5モダナイズ入門(3) - @IT (atmarkit.co.jp) 「.NET 5」の正式版がついにリリース!新しく追加された機能をまとめて解説 | GrapeCity.devlog - グレープシティ株式会社 Microsoftが .NET 5 をリリース (infoq.com) 参考文献 58
  • 59. .NET Core と .NET 5 以降で使用できない .NET Framework テクノロジ | Microsoft Docs 破壊的変更 - .NET Framework から .NET Core | Microsoft Docs ASP.NET MVC から ASP.NET Core MVC への移行 | Microsoft Docs ASP.NET Core でのアプリケーションのスタートアップ | Microsoft Docs .NET Framework と .NET の相違点 - WPF .NET | Microsoft Docs .NET Core 3.0 への WPF アプリの移行 - WPF .NET | Microsoft Docs Windows フォーム アプリを .NET 5 に移行する - Windows Forms .NET | Microsoft Docs 参考文献 59
  • 60. .NET Conf 2020 | Channel 9 (msdn.com) Keynote - Welcome to .NET 5 | .NET Conf 2020 | Channel 9 (msdn.com) 参考文献 60