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

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

PDF
你的軟體架構夠敏捷嗎?
Gelis Wu
 
PDF
軟體架構設計的技術養成之路
Gelis Wu
 
PDF
專業顧問的技能成長日記
Gelis Wu
 
PDF
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
Gelis Wu
 
PDF
實踐 Clean Architecture(實作高可用性的軟件架構)
Gelis Wu
 
PDF
.NET 7 升級教戰手冊_V1.0.pdf
Gelis Wu
 
PDF
New FileMaker 13 Platform (Chinese)
Chong-Bing Liu
 
PPTX
使用 .NET Standard 開發跨平台應用程式
Gelis Wu
 
PDF
Frontend Beginner
Merchu Liang
 
PPTX
Net 6 的 blazor 開發新視界
Gelis Wu
 
PPT
Html5
rockst
 
PPT
開源碼介紹及Joomla
tmjhart
 
PPT
【第一季第一期】开发的前端之痛 by 银环
tbosstraining
 
PPT
【第一期】开发的前端之痛 by 银环
tbosstraining
 
PPTX
oa rapid framework課程說明會
Jimmy Weng
 
PDF
Html5
Ian Chen
 
PPTX
HTML5 規格最新發展現況 (HTML5 趨勢發展與技術應用論壇)
Will Huang
 
PPTX
Google系列工具應用於校園與生活
yunjuli
 
PDF
Koubei banquet 27
Koubei UED
 
PDF
20180322
spower
 
你的軟體架構夠敏捷嗎?
Gelis Wu
 
軟體架構設計的技術養成之路
Gelis Wu
 
專業顧問的技能成長日記
Gelis Wu
 
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
Gelis Wu
 
實踐 Clean Architecture(實作高可用性的軟件架構)
Gelis Wu
 
.NET 7 升級教戰手冊_V1.0.pdf
Gelis Wu
 
New FileMaker 13 Platform (Chinese)
Chong-Bing Liu
 
使用 .NET Standard 開發跨平台應用程式
Gelis Wu
 
Frontend Beginner
Merchu Liang
 
Net 6 的 blazor 開發新視界
Gelis Wu
 
Html5
rockst
 
開源碼介紹及Joomla
tmjhart
 
【第一季第一期】开发的前端之痛 by 银环
tbosstraining
 
【第一期】开发的前端之痛 by 银环
tbosstraining
 
oa rapid framework課程說明會
Jimmy Weng
 
Html5
Ian Chen
 
HTML5 規格最新發展現況 (HTML5 趨勢發展與技術應用論壇)
Will Huang
 
Google系列工具應用於校園與生活
yunjuli
 
Koubei banquet 27
Koubei UED
 
20180322
spower
 

More from Gelis Wu (20)

PPTX
Blazor in NET 8 的重大改變___________________
Gelis Wu
 
PPTX
顧問養成秘技 - 顧問服務實戰.pptx
Gelis Wu
 
PDF
Blazor Component 開發實戰
Gelis Wu
 
PPTX
一個 ASP.NET Core 2.1 開發指南
Gelis Wu
 
PPTX
前端大型系統的基石 TypeScript
Gelis Wu
 
PPTX
Dot netstandard2.0與.net的未來發展
Gelis Wu
 
PPTX
客製化的 Web api 的框架設計
Gelis Wu
 
PPTX
Asp.net identity 2.0
Gelis Wu
 
PPTX
Asp.net mvc 基礎
Gelis Wu
 
PPTX
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
Gelis Wu
 
PPTX
Azure PaaS (WebApp & SQL Database) workshop solution
Gelis Wu
 
PPTX
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
Gelis Wu
 
PPTX
軟體開發之路甘苦談(Gelis)
Gelis Wu
 
PPTX
活用 Application insight
Gelis Wu
 
PPTX
企業現代化網站架構
Gelis Wu
 
PPTX
Css java script 前端網頁設計概論(day2).pics
Gelis Wu
 
PPTX
Visual studio 2010 塑模化應用程式講座v4
Gelis Wu
 
PPTX
Css java script 前端網頁設計概論(day1)
Gelis Wu
 
PPTX
C sharp物件導向 分層架構課程
Gelis Wu
 
PPTX
.Net framework 技術架構發展與 c# 6.0
Gelis Wu
 
Blazor in NET 8 的重大改變___________________
Gelis Wu
 
顧問養成秘技 - 顧問服務實戰.pptx
Gelis Wu
 
Blazor Component 開發實戰
Gelis Wu
 
一個 ASP.NET Core 2.1 開發指南
Gelis Wu
 
前端大型系統的基石 TypeScript
Gelis Wu
 
Dot netstandard2.0與.net的未來發展
Gelis Wu
 
客製化的 Web api 的框架設計
Gelis Wu
 
Asp.net identity 2.0
Gelis Wu
 
Asp.net mvc 基礎
Gelis Wu
 
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
Gelis Wu
 
Azure PaaS (WebApp & SQL Database) workshop solution
Gelis Wu
 
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
Gelis Wu
 
軟體開發之路甘苦談(Gelis)
Gelis Wu
 
活用 Application insight
Gelis Wu
 
企業現代化網站架構
Gelis Wu
 
Css java script 前端網頁設計概論(day2).pics
Gelis Wu
 
Visual studio 2010 塑模化應用程式講座v4
Gelis Wu
 
Css java script 前端網頁設計概論(day1)
Gelis Wu
 
C sharp物件導向 分層架構課程
Gelis Wu
 
.Net framework 技術架構發展與 c# 6.0
Gelis Wu
 
Ad

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