.Net Core 會逆襲成為最受歡迎開發平臺嗎?
本文由葡萄城技術團隊於部落格園原創並首發
轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。
.Net Core 是什麼?
最新.Net Core 熱詞霸佔了各個技術熱搜,看來微軟近年來發布的 .Net Core 還是成功了引起了大家的熱烈討論。如果您對微軟熟悉,肯定是很瞭解.Net 平臺,但是隨著網際網路的興起,好像微軟這個霸主的地位有所撼動。
.NET Core 是.NET Framework的新一代版本,是微軟開發的第一個跨平臺 (Windows、Mac OSX、Linux) 的應用程式開發框架(Application Framework),未來也將會支援 FreeBSD 與 Alpine 平臺。.Net Core也是微軟在一開始發展時就開源的軟體平臺[1]
重點來啦:
- 跨平臺:可在 Windows、macOS 和 Linux 作業系統上執行
- 跨體系結構保持一致:在多個體繫結構(包括 x64、x86 和 ARM)上以相同的行為執行程式碼
- 命令列工具:包括可用於本地開發和持續整合方案中的易於使用的命令列工具。
- 部署靈活:可以包含在應用或已安裝的並行(使用者或系統範圍安裝)中。 可搭配 Docker 容器使用
- 相容性: .NET Core 通過 .NET Standard 與 .NET Framework、Xamarin 和 Mono 相容
- 開放原始碼: .NET Core 平臺是開放原始碼,使用 MIT 和 Apache 2 許可證。 .NET Core 是一個 .NET Foundation 專案
- 強勁效能:超強的後臺效能,超出.Net Framework
- 支援命令列執行所有操作
.Net Core 當前的現狀是什麼
目前可以看到很多傳統行業的資訊系統也在逐漸升級平臺,而且很多大的網際網路公司也已經使用,畢竟一次開發即可實現跨平臺的部署及應用,也是減少成本的重要體現。
可以確定.Net Core 是未來的發展趨勢。 .Net FrameWork也會延續使用,畢竟短期內遷移一些大型專案是很有難度的,而且也不太可能。.Net Core 和.Net FrameWork 的關係就如同是新能源汽車和傳統穩定的油耗汽車。油耗汽車已經經歷了多年的發展,技術非常成熟穩定,可以放心自由的使用。而新能源汽車是一個新興的技術,也是未來將要取待傳統技術的未來發展方向,所以使用.Net Core 開發專案必須越早越好。
.Net Core 與. Net FrameWork 對比:
.NET Core |
.NET Framework |
跨平臺 (OS platform): 支援Windows, Linux, 及 macOS |
僅支援在 Windows執行 |
安裝過程是獨立,端對端,可以在同一計算器中為應用程式指定獨立的.Net Core 版本。 |
一臺計算機上的所有應用程式都在同一.NET Framework版本上執行 |
高效能:在集合,數學,正則表示式,字串,檔案等方面都有提升。. |
高相容性 |
開源: 基於.NET平臺既可以根據 MIT或 Apache 2 授權 |
與最廣泛的NuGet軟體包,第三方庫和內部庫相容 |
v2.0 實現了.NET Standard 2.0¹ |
v4.6.1+ 以上版本支援s .NET Standard 2.0 |
使用.Net Core 優勢:
1. 支援在任何平臺部署,跨平臺幾乎沒有任何成本
2. 龐大的.Net 標準庫支援
3. 面向高效能的伺服器開發,基於 微軟 Azure雲的平臺優勢,已提供高效能的服務。
4. 高效能和可移植性
5. 相容多平臺
如何平滑的遷移專案至.Net Core 平臺
很多原有的專案是基於.Net FrameWork 開發的,可能是 Windows. WPF, ASP.NET MVC,那本身的侷限是隻能在Windows系統部署外,還涉及到一些核心功能的實現。傳統框架的種種不足,需要大的突破和改變。這意味著打破變化,但結果是值得期待的。
遷移原有專案到新的.Net Core 平臺意味著你可以保留舊專案的所有核心業務功能,不需要重構整個專案,從0開始開發。以下是我們根據經驗給出了幾類的應用的遷移難度。
專案型別 |
遷移難易程度 |
Web 應用: ASP.NET MVC |
簡單 |
WebForm 應用 |
不建議遷移,因為.Net Core 支援 WebForm |
Windows 應用 (Universal Framework) |
不需要遷移 |
Windows 應用(基於Sliverlight) |
簡單 |
WPF 及WinForms 桌面應用 |
複雜 |
控制檯應用 |
簡單 |
1. 遷移還是重構
如果針對前端專案,遷移是最佳選擇,畢竟前端程式碼均可複用,唯一要改動的就是後端程式碼。儘管.Net Core 和.Net Frame Work 專案都是基於C# 語言做開發的,然而兩者是不同的執行機制。所以如果是後端很重的專案,還是建議重寫,這樣也會利用一些新技術的優勢。
2. NuGet 包
在遷移之前,需要確認引用的.Net 標準庫是否在.Net Core中支援或丟棄,如果不支援的話,就需要考慮如何用新的包代替或者當前功能的重構。
.Net 標準包是在.Net 4.6.1 和.Net Core 中都可使用的,所以只需要可以使用該技術升級舊的PCL。如果你添加了.Net 標準庫的引用,同樣也可以在.Net Core 專案中使用。
3. Html / JavaScript / CSS 複用
可以將這些檔案直接複製到.NET Core解決方案中。 但是,請確保更改程式碼中的檔案路徑,例如CSS中的影象路徑。 因為經典的ASP.NET / MVC模板使用“ / Content /”目錄,而.NET Core使用“ / css /”,“ / js /”,“ / lib /”等。對此沒有任何限制,它們只是約定而已 。
如何選擇.Net Core 的開發工具
在開發專案時候,新的平臺和技術總是帶給你專案的一些新的重大突破功能,比如效能,比如核心功能提升,所以不僅我們的專案要一直跟隨升級,我們所選擇的開發工具,也要緊跟技術前沿,甚至要領先於我們的專案升級進度,為我們開發專案始終提供最有力的技術支援。
.NET Core是多平臺應用程式的未來。 如我們所見,.NET Core提供了傳統框架不支援的強大的本機新功能。 另一方面,.NET Core並不完全支援所有現有的應用程式型別進行遷移,尤其是那些與Windows OS緊密整合的應用程式型別,因此必須仔細考慮並計劃這些挑戰。
所以我們在選擇新平臺的同時,也需要考慮一些輔助開發的工具。以及這些工具在該領域的技術背景,是否足夠穩定,是否有足夠明確的未來,甚至比我們更能預先跟蹤未來的技術棧,以始終在我們遷移新專案的時候提供輔助工具。
這裡推介一些支援.Net Core 平臺的開發控制元件:
- API Protability Tool。這是一款輔助.net開發者在不同的開發框架上遷移原始碼工程的靜態程式碼審查工具。由於.net framework具有多個歷史版本,並且.net core以及Xamarin等開發框架在基礎類庫中實現API數量和型別有很多的不一致情況。.net開發者想把自身原始碼升級到更高的.net版本或者遷移到其他的.net開發框架上,會面臨很多API呼叫不相容的問題。該工具就是幫助.net開發者審查.net專案的原始碼,並生成審查報告,快速幫助開發人員找到不相容程式碼行以及協助評估遷移工作量。
- PostMan,Postman是一款支援跨平臺的應用程式,用來幫助開發者快速構建和測試REST API 服務。Postman可以模擬HTTP請求的所有謂詞,用於REST API的測試。
- Visual Studio Code , Visual Studio Code是跨作業系統平臺的輕量級程式碼編輯器。支援絕大多數主流語言編譯和除錯的能力。
綜上所述,無論從其效能和生態上預測,.NET Core 都極有可能成為最受歡迎的開發平臺,不過,當前國內僅有騰訊、阿里等廠家願意試水,葡萄城作為一傢俱備30多年開發經驗的軟體廠商,同樣也在持續對.NET控制元件進行更新迭代。
如果您有 .NET Core及其衍生技術和開發工具的需求,請訪問葡萄城官網瞭解詳情。