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

PPTX
AtCoderに毎回参加したくなる仕組み
PPTX
セキュリティの都市伝説を暴く
PDF
テスト文字列に「うんこ」と入れるな
PDF
那些我們都曾經學過 ,但是卻幾乎沒有人知道自己學過的《歐氏幾何》
PDF
40歳過ぎてもエンジニアでいるためにやっていること
PPT
Sbir計畫的簡報技巧、審查意見
PDF
シェル芸初心者によるシェル芸入門
PPTX
ビルド職人の朝は早い
AtCoderに毎回参加したくなる仕組み
セキュリティの都市伝説を暴く
テスト文字列に「うんこ」と入れるな
那些我們都曾經學過 ,但是卻幾乎沒有人知道自己學過的《歐氏幾何》
40歳過ぎてもエンジニアでいるためにやっていること
Sbir計畫的簡報技巧、審查意見
シェル芸初心者によるシェル芸入門
ビルド職人の朝は早い

What's hot (20)

PPTX
リバースモデリングを用いたテスト観点標準化の取り組み
PDF
2022-11-08_プロダクト開発を成功に導くユーザーインタビュー_伊賀正志.pdf
PDF
勉強か?趣味か?人生か?―プログラミングコンテストとは
PDF
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
PDF
Spring 歴約1年初心者の Test 奮闘記
PDF
SATySFi 最近の発展と目下実装中の変更
PDF
エンジニア必見!Sreへの第一歩
PDF
組み合わせテストの落とし穴〜有則と無則〜
PDF
ジャストシステムJava100本ノックのご紹介
PDF
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
PDF
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
PPTX
serverspecを使用したサーバ設定テストの実例
PDF
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
PDF
ふつうの受託開発チームのつくりかた
PPTX
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
PPTX
さくっと理解するSpring bootの仕組み
PDF
CTF超入門 (for 第12回セキュリティさくら)
PDF
テスト自動化のこれまでとこれから
PDF
JCSQE初級受けてみたの
PDF
XunitとMoq 公開用
リバースモデリングを用いたテスト観点標準化の取り組み
2022-11-08_プロダクト開発を成功に導くユーザーインタビュー_伊賀正志.pdf
勉強か?趣味か?人生か?―プログラミングコンテストとは
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
Spring 歴約1年初心者の Test 奮闘記
SATySFi 最近の発展と目下実装中の変更
エンジニア必見!Sreへの第一歩
組み合わせテストの落とし穴〜有則と無則〜
ジャストシステムJava100本ノックのご紹介
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
serverspecを使用したサーバ設定テストの実例
サービスブループリントによるシステム設計手法の紹介 - XP祭り2022
ふつうの受託開発チームのつくりかた
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
さくっと理解するSpring bootの仕組み
CTF超入門 (for 第12回セキュリティさくら)
テスト自動化のこれまでとこれから
JCSQE初級受けてみたの
XunitとMoq 公開用
Ad

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

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

More from Gelis Wu (20)

PPTX
Blazor in NET 8 的重大改變___________________
PPTX
顧問養成秘技 - 顧問服務實戰.pptx
PDF
Blazor Component 開發實戰
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
PPTX
企業現代化網站架構
PPTX
Css java script 前端網頁設計概論(day2).pics
PPTX
Visual studio 2010 塑模化應用程式講座v4
PPTX
Css java script 前端網頁設計概論(day1)
PPTX
C sharp物件導向 分層架構課程
PPTX
.Net framework 技術架構發展與 c# 6.0
Blazor in NET 8 的重大改變___________________
顧問養成秘技 - 顧問服務實戰.pptx
Blazor Component 開發實戰
一個 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
企業現代化網站架構
Css java script 前端網頁設計概論(day2).pics
Visual studio 2010 塑模化應用程式講座v4
Css java script 前端網頁設計概論(day1)
C sharp物件導向 分層架構課程
.Net framework 技術架構發展與 c# 6.0

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