本文由葡萄城技術團隊于博客園原創并首發
轉載請注明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者,
.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.01 |
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是跨作業系統平臺的輕量級代碼編輯器,支持絕大多數主流語言編譯和除錯的能力,

- ActiveReports .Net 報表控制元件,專注報表領域20余年,所以可見專業性以及對于.Net 技術的完善的集成技術,支持最新的ASP.Net Core MVC (.Net Core)專案的開發,可快速解決.Net Core 平臺的報表設計,展示,列印/匯出,資料鉆取等功能,與此也提供了最終用戶免費設計器(在線/桌面端)解區域署差異的難題,

-
Wyn Enterprise 嵌入式商業智能和報表軟體,基于.NET Core平臺,可以以白標的方式嵌入到應用系統中,快速增強應用系統的自助式分析、移動BI、資料可視化、報表統計和資料填報等功能,最終用戶在業務系統中便能通過資料分析,為決策制定提供資料支撐,
-

綜上所述,無論從其性能和生態上預測,.NET Core 都極有可能成為最受歡迎的開發平臺,不過,當前國內僅有騰訊、阿里等廠家愿意試水,葡萄城作為一家具備30多年開發經驗的軟體廠商,同樣也在持續對.NET控制元件進行更新迭代,
如果您有 .NET Core及其衍生技術和開發工具的需求,請訪問葡萄城官網了解詳情,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/17100.html
標籤:.NET Core
