.NETTer,你必須知道——.NET 5是未來!
喜歡就關(guān)注我們吧!
.NET 5是.NET的未來
? ? ? 微軟在Build 2019大會(huì)上宣布了新的.NET 5(.NET的未來)。.NET 5將是用于構(gòu)建在所有平臺(tái)(Windows,Linux)和設(shè)備(IoT,Mobile)上運(yùn)行的應(yīng)用程序的單一統(tǒng)一平臺(tái)。
? ? ? ?如果您是.NET開發(fā)人員,目前支持在.NET框架中開發(fā)的企業(yè)應(yīng)用程序,那么從長(zhǎng)遠(yuǎn)來看,您需要了解.NET 5將如何影響您當(dāng)前的企業(yè)應(yīng)用程序。.Net 5基于.Net標(biāo)準(zhǔn),這意味著并非每個(gè).Net框架功能都可以在.Net5中使用。此外,還有一些技術(shù)堆棧,如Web表單,WCF和WWF沒有移植到.Net 5.我們將看看 關(guān)于.Net 5未涵蓋的內(nèi)容的細(xì)節(jié)以及有哪些替代方案。
技術(shù)堆棧沒有進(jìn)入.NET 5
ASP.NET Web窗體
? ? ? ?ASP.NET Web Forms不會(huì)出現(xiàn)在.NET 5中,微軟目前正在推薦向Blazor遷移,這是一個(gè)最近被提升為官方的實(shí)驗(yàn)性項(xiàng)目。如果你擅長(zhǎng)JavaScript,其他選擇是Angular,React和Vue SPA框架。
? ? ? ?如果您當(dāng)前正在使用ASP.NET MVC作為完整堆棧Web應(yīng)用程序,則可以使用ASP.NET Core MVC或.NET Core 2.0中引入的新Razor頁(yè)面繼續(xù)使用相同的堆棧,這可能與ASP類似。NET Web表單,用于快速構(gòu)建沒有視圖和控制器的Web表單應(yīng)用程序。但是,如果您正在為企業(yè)開發(fā)現(xiàn)代Web應(yīng)用程序,最好考慮單頁(yè)應(yīng)用程序,如Blazor,Angular或React,而不是傳統(tǒng)的Web應(yīng)用程序,以提供豐富的客戶端功能。
WCF(Windows Communication Foundation)
? ? ? ?WCF將要錯(cuò)過.NET 5列車的消息讓很多人感到驚訝,包括我在內(nèi)。關(guān)于將WCF帶回.NET Core的GitHub已經(jīng)有很多討論,但微軟決定不這樣做,因?yàn)樗麄冏畛豕烙?jì)將WCF移植到.NET Core是三年。
? ? ? ?Microsoft建議使用gRPC作為替代方案,它是一種可在任何環(huán)境中運(yùn)行的現(xiàn)代化,開源,高性能的RPC框架。但是,與WCF不同,gRPC目前無法在IIS中托管,因?yàn)镠ttp.Sys的HTTP / 2實(shí)現(xiàn)不支持gRPC依賴的HTTP響應(yīng)尾隨標(biāo)頭
WWF(Windows Workflow Foundation)
? ? ? ?Workflow Foundation沒有移植到.NET Core中。每個(gè)企業(yè)應(yīng)用程序都將具有一些與其集成的工作流程或BPM工具。如果您在應(yīng)用程序中使用了WWF,Microsoft建議您查看WF運(yùn)行時(shí)的非官方分支以移植到.NET Core中。
即將到來的技術(shù)堆棧5
Winforms,WPF和UWP
? ? ? 微軟正在推出Windows桌面包(winforms,WPF和UWP),以支持僅適用于Windows的桌面應(yīng)用程序。我不希望任何人使用winforms進(jìn)行任何新的開發(fā),但是,這將有助于將傳統(tǒng)的winforms應(yīng)用程序移植到.NET5.這并不意味著.NET Core的架構(gòu)正在發(fā)生變化。它仍然是一個(gè)跨平臺(tái)的框架,但是當(dāng)您添加桌面包時(shí),它的目標(biāo)是僅在Windows上工作。但是,將現(xiàn)有Windows桌面應(yīng)用程序移植到.NETCore中可以提供Core Runtime和API性能改進(jìn)以及部署靈活性的額外好處。

什么被取代了
? ? ? ?EF核心 - 實(shí)體框架核心正在取代.NET核心框架中的EF 6。
? ? ? ?ASP.NET核心 - ASP.NET被ASP.NET核心取代。查看遷移指南,將ASP.NET應(yīng)用程序移植到ASP.NETCore中。
? ? ? ?ASP.NET Core MVC - ASP.NET Core MVC統(tǒng)一ASP.NET MVC和Web API。查看遷移指南,將asp.net mvc app移植到ASP.NETMVC中。
MSIX - Microsoft的新打包工具,它取代了桌面應(yīng)用程序的舊MSI包安裝程序。
? ? JsonDocument - 來自System.Text.Json.JsonDocument API的新Json Document庫(kù)將取代json.net。它比舊的json.net快2-3倍。
其他重要事項(xiàng)要突出
? ? ? ?最新版本的C#8.0引入了許多新的語言功能,包括Async Stream,Ranges,Nullable Reference Types和Pattern Matching。但是,它們將僅在.NET Core 3.0及更高版本上可用,這意味著它不會(huì)進(jìn)入舊版.NET Framework或.NET Core 2.2,2.1或1.0。它清楚地表明.NET已經(jīng)死了,.NET Core就是未來。
? ? ? ?如果您計(jì)劃將.NET應(yīng)用程序移植到.NETCore中,則必須分析項(xiàng)目中使用的API以查看兼容的內(nèi)容。.NET Portability Analyzer是一個(gè)有助于分析和確定應(yīng)用程序在.NET平臺(tái)上的靈活性的工具。
? ? ? 作為.NET開發(fā)人員,我對(duì).NET的未來及其發(fā)展方向感到興奮。我不再需要為SPA框架學(xué)習(xí)JavaScript,因?yàn)锽lazor會(huì)這樣做。?我不再需要學(xué)習(xí)Python用于機(jī)器學(xué)習(xí),因?yàn)镸L.NET會(huì)這樣做。我不再需要學(xué)習(xí)Android或Swift,因?yàn)閄amarin會(huì)這樣做。?如果您了解C#,那么現(xiàn)在您可以開發(fā)一個(gè)可以從IoT到Cloud運(yùn)行的應(yīng)用程序。?但是,這種變化將影響許多擁有基于WCF和Web窗體的產(chǎn)品/框架的企業(yè)客戶。
