.NET Core .NET Framework 2024 年 2 月 15 日2024 年 2 月 15 日 作者: WENJENG .NET跟.NET FrameWork、.NET Core有什麼不同,差異在哪呢? 懶人包你看了就懂! 開發很多年的程式,但往往沒有搞清楚到底什麼是 .NET (人家常念的打Net或者點Net) 。剛好最近需要把專案打包成單一執行檔案,所以去研究了一下差異,有看到一篇還不錯的文章,滿簡單易懂的。我把他作一些微調跟補充放到網站上,讓之後有興趣的工程師們一起參考。 Table of Contents Toggle .NET Framework是什麼?.NET Core是什麼?.NET 是什麼?延伸學習參考資料 .NET Framework是什麼? .NET Framework 是一個軟體架構,第一個版本發佈於2002年,目前最新的版本是 .NET Framework 4.8.1,也會是.NET Framework最後一個版本,可以使用 C#、F#、VB、VB.NET、C++、Python等多種語言開發,內建於 Windows中。 那麼 .NET Framework 是作什麼的呢?就簡單的說明就是,他可以幫你把寫好的程式作翻譯,讓 Windows作業系統(你的主機)了解你寫的程式想要作的目的。就好像你想要存取主機資料,不用自己去研究哪個記憶體的位置或是底層硬體的操作方式,只需要透過.NET Framework的類別庫,使用他開放的API就可以輕鬆的操作。 阿政目前開發過的軟體專案,有許多都是這個架構,舉凡自助點餐系統、第三方支付模組、線上授權管理工具、第三方平台管理工具等。未來有機會也會分享這部分的內容。 .NET Core是什麼? 2014年.NET Core正式發佈第一版本,考量到讓應用程式可以跨平台 (Windows、Linux、macOS)執行。.NET Core只包含最小功能,是重新寫過且開源的 .NET Framework框架。.NET Core的最高版本為 3.1,且只會到 3.1(目前還是有持續安全性更新,最新版本為2022年12月13日 3.1.32) .NET Core 擁有以下特性: 跨平台:Windows、Linux、macOS等。不同架構保持一致:在 x86、x64及ARM等架構上會有相同的執行行為。 命令列工具 (CLI):在本機開發和持續整合中都可以使用的命令。彈性部署:可以直接執行應用程式,或部屬到IIS、Nginx、Apache、Docker上。相容性:透過.NET Standatd 與 .NET Framework 、Xamarin和Mono箱容。開源:.NET Core 是.NET Standard專案,使用MIT和Apache2授權。 .NET 是什麼? .NET Core 3.1 的下一個版本叫作 .NET 5,直接改了名字,把 Core給省略掉了。那麼你可能會問 .NET Core 4.0 或者 .NET 4呢?怎麼直接變成 .NET 5。我看文章有討論到是因為微軟怕跟.NET Framework 4.x搞混,所以跳過4,不過也有說法是因為4不吉利,所以跳過4。 延伸學習 最近想要把.NET Framework 4.6.1 的專案升級為 .NET Core 或者 .NET 然後部屬為單一個執行檔 .exe 讓部門同仁方便使用,可攜式的應用程式。 參考資料 參考鹿遊大大的文章,分享了這幾個的差異。文章連結:.NET .NET Core .NET Framework 這三個是什麼?差別在哪裡?快速釐清懶人包因為.NET Core可以跨平台,那我們要怎麼從 .NET Framework 走向 .NET Core呢?這裡有一篇鐵人賽的內容,我覺得也寫得很不錯,推薦給大家。文章連結:從 .NET Framework 走向 .NET Core有些國外的文章寫得更詳細,也很建議大家閱讀,文章連結處:.NET Core vs .NET Framework .NET.NETCore.NETFrameWork