本文由葡萄城技術團隊於博客園原創並首發 轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。 .Net Core 是什麼? 最新.Net Core 熱詞霸占了各個技術熱搜,看來微軟近年來發佈的 .Net Core 還是成功了引起了大家的熱烈討論。如果您對微軟熟悉 ...
本文由葡萄城技術團隊於博客園原創並首發
轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。
.Net Core 是什麼?
最新.Net Core 熱詞霸占了各個技術熱搜,看來微軟近年來發佈的 .Net Core 還是成功了引起了大家的熱烈討論。如果您對微軟熟悉,肯定是很瞭解.Net 平臺,但是隨著互聯網的興起,好像微軟這個霸主的地位有所撼動。
.NET Core 是.NET Framework的新一代版本,是微軟開發的第一個跨平臺 (Windows、Mac OSX、Linux) 的應用程式開發框架(Application Framework),未來也將會支持 FreeBSD 與 Alpine 平臺。.Net Core也是微軟在一開始發展時就開源的軟體平臺[1],由於 .NET Core 的開發目標是跨平臺的因此 .NET Core 會包含 .NET Framework 的類別庫,但與 .NET Framework 不同的是 .NET Core 採用包化 (Packages) 的管理方式,應用程式只需要獲取需要的組件即可,與 .NET Framework 大包式安裝的作法截然不同,同時各包亦有獨立的版本線 (Version line),不再硬性要求應用程式跟隨主線版本。
重點來啦:
- 跨平臺:可在 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及其衍生技術和開發工具的需求,請訪問葡萄城官網瞭解詳情。