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 Framework から .NET へ ~どう変わったか、どのように移行するか~

.NETラボ 勉強会 2021年3月
https://dotnetlab.connpass.com/event/201231/

2021/03/27

  • Be the first to comment

  • Be the first to like this

.NET Framework から .NET へ ~どう変わったか、どのように移行するか~

  1. 1. .NET Framework から .NET へ ~どう変わったか、どのように移行するか~ .NETラボ 勉強会 2021年3月 27th March 2021 Fujio Kojima
  2. 2. 自己紹介
  3. 3. アジェンダ
  4. 4. 1. .NET 概要 4 .NET Standard Library WPF Windows Forms ASP.NET WPF (Windows) Windows Forms (Windows) UWP (Windows) ASP.NET iOS Android Windows macOS
  5. 5. One .NET 5 WPF Windows Forms ASP.NET .NET Standard Library WPF (Windows) Windows Forms (Windows) UWP (Windows) ASP.NET iOS Android Windows macOS
  6. 6. .NET Standard Library One .NET 6 WPF Windows Forms ASP.NET WPF (Windows) Windows Forms (Windows) UWP (Windows) ASP.NET iOS Android Windows macOS
  7. 7. One .NET 7 WPF Windows Forms ASP.NET .NET Standard Library WPF (Windows) Windows Forms (Windows) UWP (Windows) ASP.NET MAUI (Xamarinの後継) iOS Android Windows macOS
  8. 8. .NET のロードマップ 8
  9. 9. Performance Improvements in .NET 5 | .NET Blog (microsoft.com) .NET Framework と .NET (Core) のパフォーマンス 9 Round 19 results - TechEmpower Framework Benchmarks
  10. 10. 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 採用の注意点 10
  11. 11. • ASP.NET や EntityFramework などは、変更されていて互換性がやや低い ASP.NET 4.x と ASP.NET Core の選択 | Microsoft Docs EF6 と EF Core を比較する | Microsoft Docs .NET 5 採用の注意点 11
  12. 12. 2. .NET Framework との違い 12 WPF Windows Forms ASP.NET .NET Standard Library WPF (Windows) Windows Forms (Windows) UWP (Windows) ASP.NET iOS Android Windows macOS
  13. 13. .NET Framework と .NET 13 .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? (*) プロジェクトの種類による
  14. 14. .NET Framework 14
  15. 15. .NET Platform · GitHub .NET 15
  16. 16. .NET Framework から .NET Core への移植 - .NET Core | Microsoft Docs packages.config から PackageReference 形式への移行 | Microsoft Docs .NET Portability Analyzer - .NET | Microsoft Docs .NET Framework と .NET のコードの違い 16
  17. 17. 【サンプル】 チャット ツール “Chatter” の移植 17
  18. 18. 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” ソースコー ド 18
  19. 19. 1 .NET 5 版 (移植後)
  20. 20. <?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
  21. 21. 【サンプル】 チャット ツール “Chatter” 21
  22. 22. 【サンプル】 チャット ツール “Chatter” 22
  23. 23. .NET Portability Analyzer で比較 23
  24. 24. .NET Portability Analyzer で比較 24
  25. 25. .NET Portability Analyzer 25
  26. 26. .NET Portability Analyzer 26
  27. 27. .NET Portability Analyzer 27
  28. 28. GitHub - dotnet/try-convert: Helping .NET developers port their projects to .NET Core! try-convert で比較 28
  29. 29. try-convert で比較 29
  30. 30. try-convert で比較 30
  31. 31. 移植完了後 WinMerge した結果 31
  32. 32. 【参考】 Chatter.Models (.NET Framework) 32
  33. 33. 【参考】 Chatter.Server (.NET Framework) 33
  34. 34. 【参考】 Chatter.Wpf (.NET Framework) 34
  35. 35. 【参考】 Chatter.Server (.NET) 35
  36. 36. 【参考】 Chatter.Wpf (.NET) 36
  37. 37. 本日の内容
  38. 38. .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) 参考文献 38
  39. 39. 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) 参考文献 39
  40. 40. 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) 参考文献 40
  41. 41. 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 参考文献 41
  42. 42. [速報]マイクロソフト「.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) 参考文献 42
  43. 43. .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 参考文献 43
  44. 44. .NET Conf 2020 | Channel 9 (msdn.com) Keynote - Welcome to .NET 5 | .NET Conf 2020 | Channel 9 (msdn.com) 参考文献 44

×