.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及其衍生技術和開發工具的需求,請訪問葡萄城官網瞭解詳情。
相關文章
- Lens成為最受歡迎的Kubernetes IDE – thenewstackIDE
- GDC:16%遊戲開發者正在開發VR遊戲 Oculus平臺最受歡迎遊戲開發VR
- 機智雲AIoT自助開發平臺榮獲"物聯網行業最受歡迎開發平臺獎"AI行業
- 《我的世界》YouTube瀏覽量突破1萬億 成為該平臺上最受歡迎的遊戲遊戲
- 青少年網路行為Facebook仍然是最受歡迎的平臺
- 分析師:蘋果iPhone XR將會成為最受歡迎的iPhone機型蘋果iPhone
- V社:Xbox手柄在Steam平臺上的使用佔比達59% 成為最受歡迎手柄
- 最受歡迎的App開發工具推薦APP
- Zalo成為越南最受歡迎的訊息應用程式
- 低程式碼開發平臺為什麼那麼受歡迎
- GDC即將召開 VR報告顯示最受歡迎平臺竟是他VR
- 蘋果取代三星 成為中國最受歡迎移動品牌蘋果
- 最知名的遊戲公司就最受歡迎嗎?遊戲
- 低程式碼開發平臺會成為未來軟體開發的主流模式嗎模式
- HowLongToBeat :2022年最受歡迎的遊戲平臺是PC遊戲
- 受歡迎的無程式碼開發平臺有哪些?
- MBLM:2015年蘋果成為阿聯酋土豪最受歡迎品牌蘋果
- Firefox將淘汰微軟IE 成為最受歡迎的瀏覽器(轉)Firefox微軟瀏覽器
- Steam:2019年12月Steam平臺最受歡迎顯示卡排名
- 南美8月遊戲爆發 哪些最受歡迎?遊戲
- 年度最受歡迎的開源CHROME外掛Chrome
- Business Insider:iPhone 4成為Flickr社交網路上最受歡迎相機IDEiPhone
- eMarketer:Facebook是最受歡迎的收看和釋出視訊的社交平臺
- 高盛:微軟Azure超過AWS成最受歡迎雲服務微軟
- Imperva Cloud WAF:Python和Go成為年度最受歡迎的黑客工具榜首CloudPythonGo黑客
- Nginx成為Top1000網站最受歡迎的Web伺服器Nginx網站Web伺服器
- .NET Core跨平臺:使用.NET Core開發一個初心源商城總括
- 15個最受歡迎的Python開源框架Python框架
- 14個最受歡迎的Python開源框架Python框架
- 最受IT公司歡迎的50款開源軟體
- 揚長補短 浪潮雲平臺的逆襲
- GitHub上最受開發人員歡迎的5大Java專案!GithubJava
- 一款沉寂10年的遊戲,緣何成為Xbox釋出會上最受歡迎的FPS?遊戲
- Python成為2017年最受歡迎的程式語言:排名第一Python
- .NET Core 跨平臺
- 最受歡迎 Linux 發行版,來看看都有誰?Linux
- François Chollet:ArXiv中最受歡迎的開源框架框架
- 【轉】15個最受歡迎的Python開源框架Python框架