主頁 > .NET開發 > .Net Core 會逆襲成為最受歡迎開發平臺嗎?

.Net Core 會逆襲成為最受歡迎開發平臺嗎?

2020-09-12 21:08:51 .NET開發

本文由葡萄城技術團隊于博客園原創并首發

轉載請注明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者,

.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

上一篇:Magicodes.IE 在100萬資料量下匯入匯出性能測驗

下一篇:.NetCore3.1發布在CentOS后連接SqlServer資料庫例外(SslException)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more