Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
.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...
https://dotnet.microsoft.com/download/dotnet/5.0
https://dotnet.microsoft.com/download/dotnet/thank-you/sdk-5.0.200-window...
6
One .NET
7
WPF
Windows Forms
ASP.NET
.NET Standard Library
WPF (Windows)
Windows Forms
(Windows)
UWP (Windows)
ASP.NET
iOS...
.NET Standard Library
One .NET
8
WPF
Windows Forms
ASP.NET
WPF (Windows)
Windows Forms
(Windows)
UWP (Windows)
ASP.NET
iOS...
One .NET
9
WPF
Windows Forms
ASP.NET
.NET Standard Library
WPF (Windows)
Windows Forms
(Windows)
UWP (Windows)
ASP.NET
MAU...
.NET のロードマップ
10
Performance Improvements in .NET 5 | .NET Blog (microsoft.com)
.NET Framework と .NET (Core) のパフォーマンス
11
Round 19 results -...
Getting Started with Entity Framework Core: Database-First Development - CodeProject
• .NET 5 に含まれないものがある
• WCF (Windows C...
• ASP.NET や EntityFramework などは、変更されていて互換性がやや低い
ASP.NET 4.x と ASP.NET Core の選択 | Microsoft Docs
EF6 と EF Core を比較する | Micr...
【参考】 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 (Windo...
.NET Framework と .NET
23
.NET Framework .NET 5 .NET 6
動作OS Windows Windows, Mac, Linux (*) Windows, Mac, Linux, iOS,
Andro...
.NET Framework
24
.NET Platform · GitHub
.NET
25
.NET Framework から .NET Core への移植 - .NET Core | Microsoft Docs
packages.config から PackageReference 形式への移行 | Microsoft Docs
...
【サンプル】 チャット ツール “Chatter” の移植
27
Shos.Chatter.NetFramework: Web API, SignalR, Web Client (WPF and Web) for .NET Framework 4.8
| github.com
Shos.Chatter: We...
2
.NET 5 版 (移植後)
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/...
【サンプル】 チャット ツール “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 ...
.NET プロジェクトの作成
50
C:¥20210315¥HelloNetConsole>dotnet build
.NET 向け Microsoft (R) Build Engine バージョン 16.9.0+57a23d249
Copyr...
.NET プロジェクトの作成
51
C:¥20210315¥HelloNetConsole>cd ..
C:¥20210315>dotnet new webapp --auth Windows -o HelloNetWeb
The templa...
.NET プロジェクトの作成
52
C:¥20210315>dotnet new wpf -o HelloNetWpf
The template "WPF Application" was created successfully.
Proce...
本日の内容
.NET | Free. Cross-platform. Open Source. (microsoft.com)
Download .NET 5.0 (Linux, macOS, and Windows) (microsoft.com)
An...
Announcing ASP.NET Core in .NET 5 | ASP.NET Blog (microsoft.com)
What's new in ASP.NET Core 5.0 | Microsoft Docs
Migrate f...
Announcing the Release of EF Core 5.0 | .NET Blog (microsoft.com)
Plan for Entity Framework Core 5.0 | Microsoft Docs
What...
Recapping Xamarin Highlights from .NET Conf 2020 | Xamarin Blog (microsoft.com)
Introducing .NET Multi-platform App UI | ....
[速報]マイクロソフト「.NET 5」正式リリース。1つのフレームワークでWindows/Mac/Linuxの
デスクトップ、サーバアプリ、Webアプリなどが開発可能に - Publickey (publickey1.jp)
マイクロソフト、「...
.NET Core と .NET 5 以降で使用できない .NET Framework テクノロジ | Microsoft Docs
破壊的変更 - .NET Framework から .NET Core | Microsoft Docs
AS...
.NET Conf 2020 | Channel 9 (msdn.com)
Keynote - Welcome to .NET 5 | .NET Conf 2020 | Channel 9 (msdn.com)
参考文献
60
Upcoming SlideShare
Loading in …5
×

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

2021/03

  • Be the first to comment

  • Be the first to like this

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

  1. 1. .NET 5 勉強会 ~ .NET Framework から .NET へ ~ 2021/03/15 小島 富治雄
  2. 2. 前提条件とゴール 2
  3. 3. アジェンダ
  4. 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
  5. 5. 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. 6. 6
  7. 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. 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. 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
  10. 10. .NET のロードマップ 10
  11. 11. Performance Improvements in .NET 5 | .NET Blog (microsoft.com) .NET Framework と .NET (Core) のパフォーマンス 11 Round 19 results - TechEmpower Framework Benchmarks
  12. 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. 13. • ASP.NET や EntityFramework などは、変更されていて互換性がやや低い ASP.NET 4.x と ASP.NET Core の選択 | Microsoft Docs EF6 と EF Core を比較する | Microsoft Docs .NET 5 採用の注意点 13
  14. 14. 【参考】 MAUI (Multi-platform App UI) 14
  15. 15. 【参考】 MAUI (Multi-platform App UI) 15 The Future of Native Apps Development in .NET 6 - YouTube
  16. 16. 【参考】 MAUI (Multi-platform App UI) 16 The Future of Native Apps Development in .NET 6 - YouTube
  17. 17. 【参考】 MAUI (Multi-platform App UI) 17 The Future of Native Apps Development in .NET 6 - YouTube
  18. 18. 【参考】 Blazor 18
  19. 19. 【参考】 Blazor の種類 19
  20. 20. 【参考】 Blazor の種類 20
  21. 21. 【参考】 Blazor 21
  22. 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. 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? (*) プロジェクトの種類による
  24. 24. .NET Framework 24
  25. 25. .NET Platform · GitHub .NET 25
  26. 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. 27. 【サンプル】 チャット ツール “Chatter” の移植 27
  28. 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. 29. 2 .NET 5 版 (移植後)
  30. 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
  31. 31. 【サンプル】 チャット ツール “Chatter” 31
  32. 32. 【サンプル】 チャット ツール “Chatter” 32
  33. 33. .NET Portability Analyzer で比較 33
  34. 34. .NET Portability Analyzer で比較 34
  35. 35. .NET Portability Analyzer 35
  36. 36. .NET Portability Analyzer 36
  37. 37. .NET Portability Analyzer 37
  38. 38. GitHub - dotnet/try-convert: Helping .NET developers port their projects to .NET Core! try-convert で比較 38
  39. 39. try-convert で比較 39
  40. 40. try-convert で比較 40
  41. 41. 移植完了後 WinMerge した結果 41
  42. 42. 【参考】 Chatter.Models (.NET Framework) 42
  43. 43. 【参考】 Chatter.Server (.NET Framework) 43
  44. 44. 【参考】 Chatter.Wpf (.NET Framework) 44
  45. 45. 【参考】 Chatter.Server (.NET) 45
  46. 46. 【参考】 Chatter.Wpf (.NET) 46
  47. 47. 3. .NET 5 を体験してみよう 47
  48. 48. .NET プロジェクトの作成 48
  49. 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. 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. 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. 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
  53. 53. 本日の内容
  54. 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. 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. 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. 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. 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. 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. 60. .NET Conf 2020 | Channel 9 (msdn.com) Keynote - Welcome to .NET 5 | .NET Conf 2020 | Channel 9 (msdn.com) 参考文献 60

×