SlideShare a Scribd company logo
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
吳俊毅 Gelis - FB 軟體開發之路-經營者
關於我
• 部落格 (Gelis 技術隨筆)
http://gelis-dotnet.blogspot.tw/
• FB 粉絲團(Gelis 的程式設計訓練營)
https://www.facebook.com/gelis.dev.learning/?ref=bookmarks
• FB 社團 (軟體開發之路)
https://www.facebook.com/groups/361804473860062/?ref=ts&fref=ts
集英信誠-資深.NET技術顧問
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
.NET Framework .NET Core
跨多個平台 否 是 (勝)
Open Source 否 是 (勝)
Third-Party Components
支援程度
廣 日漸增加、因為Open Source,未來即將超
越 .NET Framework
Windows GUI
Windows Form、WPF 目前無、發展中WinForm/XAML for .NET
Core (目前Windows Only)
Microservice/Docker 侷限於 Windows 優 (勝)
效能
佳 極佳、更適合企業級後台系統/Cloud 環境
(勝)
開發成本/擴充
不錯、但只在 Windows 上 Write Once, Run Anywhere、內建 DI、
Middleware、延展與擴充 (勝)
部署 Install .NET Framework/MSI/GAC... FDD/SCD/FDE (勝)
... ...
為什麼要遷移至 .NET Core
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
.NET Core 3.0 裡面有什麼?
.NET STANDARD
ASP.NET Core
• dotent CLI 時代
ASP.NET
vNext
ASP.NET
MVC6
ASP.NET
5
ASP.NET
Core 1.0
ASP.NET
Core 1.1
ASP.NET
Core 2.0
ASP.NET
Core 2.1
ASP.NET
Core 2.2
ASP.NET
Core 3.0
ASP.NET
Core 3.1
.NET 5
什麼是 .NET 5?
XAMARIN / MONO.NET FRAMEWORK .NET.NET CORE
.NET STANDARD
.NET
.NET STANDARD
• .NET 5 = .NET Core vNext
所有應用程式都可使用 CLI 建立
• 程式編譯後佔用空間更小,並支持更多的作業系統
July 2019
.NET Core 3.0
RC
Sept 2019
.NET Core 3.0
Nov 2019
.NET Core 3.1
LTS
Nov 2020
.NET 5.0
Nov 2021
.NET 6.0
LTS
Nov 2022
.NET 7.0
Nov 2023
.NET 8.0
LTS
.NET 5
INFRASTRUCTURE
.NET STANDARD
.NET – A unified platform
DESKTOP WEB CLOUD MOBILE GAMING IoT AI
WPF
Windows Forms
UWP
ASP.NET Xamarin UnityAzure ARM32
ARM64
ML.NET
.NET for
Apache Spark
DESKTOP WEB CLOUD MOBILE GAMING IoT AI
.NET
Download .NET Core 3.0 Today!
visualstudio.com/downloads
dot.net/get-core3
.NET Core 給企業帶來什麼挑戰?
Windows
.NET Core
大量部署困難
移轉困難
如何突破困境?
Jeffrey Palermo
IIS
• 服務類型切割(縱向切割)
• 從(服務/需求/類型)角度來思考、可獨立運作的個體
• 透過 Use Case 找出系統的邊界、挑出適合切割出獨立的
服務區塊
但是... 這跟移轉有什麼關係?
?
?
?
?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
平台
平台
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
IIS
• 服務類型切割(縱向切割)
• 從(服務/需求/類型)角度來思考、可獨立運作的個體
• 透過 Use Case 找出系統的邊界、挑出適合切割出獨立的
服務區塊
• 服務類型切割(縱向切割)
• 從(服務/需求/類型)角度來思考、可獨立運作的個體
• 透過 Use Case 找出系統的邊界、挑出適合切割出獨立的
服務區塊
Middleware
.NET Core
• DI(真正的隔離相依性)
• 高內聚、低耦合
• Infrastructure as Services
ASP.NET Core Middleware
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
不良的架構
因為升級替換成本非常巨大
甚至限制住公司的發展
更不用說 Migration to .NET Core!
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
相關 Migration 方法/工具
• .NET 可攜性分析工具 - .NET Portability Analyzer
https://docs.microsoft.com/zh-tw/aspnet/core/migration/proper-to-2x/?view=aspnetcore-3.0
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
https://marketplace.visualstudio.com/items?itemName=ConnieYau.NETPortabilityAnalyzer
https://github.com/microsoft/dotnet-apiport
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
ApiPort.exeanalyze -f WebMvc5TestApp1.dll -t ".NET
Framework, Version=4.6.1" -t ".NET Standard, Version=2.0" -r HTML -o AnalysisReport.html
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
使用 .NET API 分析器
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
Microsoft.DotNet.Analyzers.Compatibility 目前還在 alpha 階段
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
使用架構分析器 .NET Framework Analyzer
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
• 舊版分析規則會慢慢改寫為 Roslyn 程式碼分析器
• VS 功能表上的【分析】 ➔ 【執行程式碼分析】功能表選項仍然屬於舊版分析
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
.csproj (專案檔)
<RunCodeAnalysis>false</RunCodeAnalysis>
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
移轉的實例:
使用自行開發 VS Extension & CLI 工具移轉
ASP.NET Web API
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
特別感謝
Q & A
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?

More Related Content

PDF
이승재, 실시간 HTTP 양방향 통신, NDC2012
PPTX
Laravel Blade×vue.js 混在させる場合の注意点
PDF
FridaによるAndroidアプリの動的解析とフッキングの基礎
PDF
AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS ::: Game...
PDF
Genetic Algorithms: Programming by the Seat of Your Genes
PDF
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
PDF
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
PPTX
軟體弱點掃描
이승재, 실시간 HTTP 양방향 통신, NDC2012
Laravel Blade×vue.js 混在させる場合の注意点
FridaによるAndroidアプリの動的解析とフッキングの基礎
AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS ::: Game...
Genetic Algorithms: Programming by the Seat of Your Genes
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
軟體弱點掃描

What's hot (20)

PDF
Bloc for Pharo: Current State and Future Perspective
PDF
那些我們都曾經學過 ,但是卻幾乎沒有人知道自己學過的《歐氏幾何》
PDF
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
PDF
인프런 - 스타트업 인프랩 시작 사례
PDF
Derbycon 2019 - I simulate therefore i catch: enhancing detection engineering...
PDF
Deep Learning을 위한 AWS 기반 인공 지능(AI) 서비스 (윤석찬)
PDF
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
PDF
レベルデザインの四要素
PPTX
로그 기깔나게 잘 디자인하는 법
PPTX
KorQuAD v2.0 소개
PPTX
처음 시작하는 라라벨
PPTX
第六回渋谷Java Java8のJVM監視を考える
PDF
ほぼ初心者からのマッチングサービス開発のリアル Feat. 嫁
PDF
쿠키런 1년, 서버개발 분투기
PDF
인공지능추천시스템 airs개발기_모델링과시스템
PDF
AndroidでIDm読み取ってみた
PDF
Ganeti - build your own cloud
PDF
GCを発生させないJVMとコーディングスタイル
PPTX
HamaCTF WriteUp (Unpack category)
PPTX
Inside WebM
Bloc for Pharo: Current State and Future Perspective
那些我們都曾經學過 ,但是卻幾乎沒有人知道自己學過的《歐氏幾何》
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
인프런 - 스타트업 인프랩 시작 사례
Derbycon 2019 - I simulate therefore i catch: enhancing detection engineering...
Deep Learning을 위한 AWS 기반 인공 지능(AI) 서비스 (윤석찬)
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
レベルデザインの四要素
로그 기깔나게 잘 디자인하는 법
KorQuAD v2.0 소개
처음 시작하는 라라벨
第六回渋谷Java Java8のJVM監視を考える
ほぼ初心者からのマッチングサービス開発のリアル Feat. 嫁
쿠키런 1년, 서버개발 분투기
인공지능추천시스템 airs개발기_모델링과시스템
AndroidでIDm読み取ってみた
Ganeti - build your own cloud
GCを発生させないJVMとコーディングスタイル
HamaCTF WriteUp (Unpack category)
Inside WebM
Ad

Similar to 該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎? (14)

PPTX
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
PDF
twMVC#36.NetCore 3快速看一波
PPTX
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
PPTX
DEV305 - ASP.NET 5 開發攻略
PPTX
ASP.NET 5 的創新與變革
PPTX
Asp.net mvc 6 新功能初探
PPTX
使用 .NET Standard 開發跨平台應用程式
PPT
教學投影片01_Vb2005
PPTX
Asp.net core v1.0
PPTX
Asp.net core v1.0
PPTX
ASP.NET MVC 6 新功能探索
PPTX
Net 6 的 blazor 開發新視界
PDF
ASP.NET Core 2.1設計新思維與新發展
PPTX
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
twMVC#36.NetCore 3快速看一波
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
DEV305 - ASP.NET 5 開發攻略
ASP.NET 5 的創新與變革
Asp.net mvc 6 新功能初探
使用 .NET Standard 開發跨平台應用程式
教學投影片01_Vb2005
Asp.net core v1.0
Asp.net core v1.0
ASP.NET MVC 6 新功能探索
Net 6 的 blazor 開發新視界
ASP.NET Core 2.1設計新思維與新發展
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
Ad

More from Gelis Wu (20)

PPTX
Blazor in NET 8 的重大改變___________________
PDF
.NET 7 升級教戰手冊_V1.0.pdf
PPTX
顧問養成秘技 - 顧問服務實戰.pptx
PDF
軟體架構設計的技術養成之路
PDF
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
PDF
Blazor Component 開發實戰
PDF
實踐 Clean Architecture(實作高可用性的軟件架構)
PDF
專業顧問的技能成長日記
PDF
你的軟體架構夠敏捷嗎?
PPTX
一個 ASP.NET Core 2.1 開發指南
PPTX
前端大型系統的基石 TypeScript
PPTX
Dot netstandard2.0與.net的未來發展
PPTX
客製化的 Web api 的框架設計
PPTX
Asp.net identity 2.0
PPTX
Asp.net mvc 基礎
PPTX
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
PPTX
Azure PaaS (WebApp & SQL Database) workshop solution
PPTX
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
PPTX
軟體開發之路甘苦談(Gelis)
PPTX
活用 Application insight
Blazor in NET 8 的重大改變___________________
.NET 7 升級教戰手冊_V1.0.pdf
顧問養成秘技 - 顧問服務實戰.pptx
軟體架構設計的技術養成之路
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
Blazor Component 開發實戰
實踐 Clean Architecture(實作高可用性的軟件架構)
專業顧問的技能成長日記
你的軟體架構夠敏捷嗎?
一個 ASP.NET Core 2.1 開發指南
前端大型系統的基石 TypeScript
Dot netstandard2.0與.net的未來發展
客製化的 Web api 的框架設計
Asp.net identity 2.0
Asp.net mvc 基礎
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
Azure PaaS (WebApp & SQL Database) workshop solution
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
軟體開發之路甘苦談(Gelis)
活用 Application insight

該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?