以下是我翻譯的一篇國外博客濒析,原文鏈接在文章末尾....
............................................................................................................................................
“為什么你還想用ASP.NET,難道你還活在90年代嗎惨寿?”這正是我的一位老同事在幾年前我們即將開始的項目中我提出考慮使用ASP.NET時所說的話庵芭。當時我很大程度上認同他的看法,微軟已經開發(fā)了偉大的開發(fā)語言,偉大的web框架以及圍繞它的偉大的工具艺玲,但是人們依然不太滿意。我們最終 沒有使用ASP.NET的原因是其語言和框架的封閉性鞠抑。使用ASP.NET意味著我們需要為我們的服務器支付windows服務許可證饭聚,或者為了讓我們的應用程序能夠部署在Linux上,就必須去填像Mono這樣無數的“坑”搁拙。但是從那以后很多事情發(fā)生了變化秒梳,微軟真的加快了游戲的的步伐,把ASP.NET從被迫使用的東西(因為你的雇主在使用它)變成了最“時髦”的開發(fā)者都想要用的東西箕速。
五年前當我第一次學習C#時酪碘,我認為它是有史以來最好的編程語言,但我當時的興奮之情并沒有持續(xù)多久盐茎,因為我開始發(fā)現(xiàn)他們的產品有太多的缺點兴垦。當ASP.NET CORE第一次公開發(fā)布的時候我就開始使用了。而當微軟宣布它是跨平臺的時候字柠,我對ASP.NET CORE和C#的興趣再次增長探越。可以看出窑业,對于開發(fā)人員來說扶关,微軟當時的問題并不是因為技術能力,性能或者其他一些指標数冬,問題是它非常封閉节槐,你不得不專門為微軟技術付費像Windows server 和IIS去部署你的應用程序,這意味著它運行服務要比其他技術棧高很多拐纱,甚至Java-C#最大的競爭對手铜异。盡管這點支出對于一個大企業(yè)相比于每年的收入根本不算什么,但對于一個初創(chuàng)企業(yè)或一個想要開發(fā)自己程序的程序員來說是非常重要的秸架。另一個微軟糟糕的地方是揍庄,他們的技術太陳舊,而且有很多舊的东抹,廢棄的和不一致的API蚂子,讓整個體系看起來臃腫不堪。
根據微軟對于.NET Core缭黔,ASP.NET Core以及新版本的C#的介紹食茎,微軟真的改變了游戲規(guī)則。C#已經是行業(yè)中的頂級語言之一馏谨,但是微軟的這個新方向確實決定了它的地位别渔,幫助其被大量采用。假如你對.NET完全不知,.NET CORE是微軟幾年前發(fā)布的新框架,它修復了之前所有的缺點哎媚。它跨平臺喇伯,高性能,精益拨与,而且最重要的是還開源稻据。以前沒有人想過微軟能發(fā)布在windows之外的平臺上運行的東西,更別提讓整個開發(fā)平臺運行在Linux和Apple OS上了买喧。
微軟使用的組件術語可能有點令人困惑捻悯,所以讓我先簡單地解釋一下:
C#:
這是微軟開發(fā)的通用編程語言的名稱,是被ECMA批準的岗喉,最新的版本是7.0,但是你可以在微軟的官方網站C#模塊找到所有歷史版本炸庞。
.NET FrameWork:
這是一個通用的應用程序框架钱床,主要使用C#編寫,它可以用于創(chuàng)建任何東西埠居,從桌面應用程序到移動應用程序到web應用程序查牌,但它只支持微軟的Windows和Windows Mobile平臺。
.NET Core Framework
這是.NET的新版本滥壕,它是跨平臺的纸颜,可以在大對數主流平臺上使用,盡管這是下一代的.NET框架绎橘,微軟仍然保留著舊的框架胁孙。
.NET Standard
這是通用核心API名稱,是微軟提供通過.net framework和.NET CORE統(tǒng)一食物称鳞,使庫在不同的.NET系統(tǒng)中互相兼容涮较。
ASP.NET Core
這是一個構建在.NET核心框架之上的web應用程序框架,是ASP的繼承者。
回歸正題冈止,讓我們看看讓我喜歡.NET CORE和C#的新技術:
性能
另一個使用.NET CORE的重大原因是其性能的提升狂票,當談到流行的通用編程語言的性能時,微軟再次處于領先地位熙暴。在開發(fā)社區(qū)中闺属,性能是一個敏感的話題,因為技術棧和工具只能在應用程序獲得性能優(yōu)化周霉,其余的都交給開發(fā)人員來實現(xiàn)掂器。但是開發(fā)棧能夠做的是鼓勵并強執(zhí)行的實施最好的性能實踐,并且優(yōu)化常見的使用場景俱箱,以便在更大范圍內實現(xiàn)性能最優(yōu)化唉匾,這正是微軟在做的。
C#本身就是一門令人驚嘆的語言,它擁有許多內置的特性可以讓您更好的調整應用程序的性能巍膘,但是.NET CORE團隊一直在努力優(yōu)化在API中構建的大量特性厂财,以獲得最佳性能。即使是ASP.NET CORE的早期版本峡懈,它的性能在echEmpower Benchmarks也有了很高的評價璃饱。有很多公司利用.NET Core優(yōu)化了其性能,比如Raygun肪康,它實現(xiàn)了效率的最大化荚恶。微軟最近發(fā)布了最新的有巨大性能改進的.NET CORE 2.1.自從新框架發(fā)布以來,開發(fā)團隊一直在推動性能優(yōu)化的更新磷支。
多功能性
我再次選擇微軟的最大原因是其多功能性谒撼,現(xiàn)在它是開源并且跨平臺的,我?guī)缀蹩梢杂靡粋€技術棧構建所有東西雾狈。你可以用UWP構建桌面應用程序廓潜,用Xamarin(現(xiàn)在是微軟的一部分)構建移動應用程序,用ASP.NET CORE構建web應用程序善榛,用SignalR構建實時應用程序等等辩蛋。奇怪,如果你是一個游戲開發(fā)者移盆,你可以用unity悼院,盡管這不是微軟的。我的遵旨是用對的工具做對的事咒循,通過這種方式据途,我仍然可以使用我最熟悉并且熱愛的語言,工具和API叙甸。最棒的是這一切都是免費的昨凡。
工具??
我從來沒有想過我會這么說,因為在早期的版本中有bug蚁署,但是目前工具是.net生態(tài)系統(tǒng)最好的東西之一.您可以在多個平臺中進行多種方式的開發(fā)便脊。如果您喜歡使用IDE,那么Microsoft的主要IDE?Visual Studio是首屈一指的光戈。對于那些喜歡對他們的工具進行更多控制哪痰,并且不需要IDE提供的幫助的人來說,有Visual Studio Code久妆,這是他們的代碼編輯器和命令行工具晌杰,允許您構建、測試和開發(fā)應用程序筷弦,而不需要IDE上的大量代碼肋演。VS Code也有大量的第三方擴展抑诸,可以幫助您有更好的開發(fā)體驗。
Mac上也有Visual Studio爹殊,它與Windows版本不同蜕乡,但仍然是一個完整的軟件包,允許您在Mac OS上開發(fā)微軟的新棧梗夸。如果你在Linux上层玲,或者只是想要一個不同于微軟提供的IDE 播玖,Jetbrains(Android Studio背后的公司)已經發(fā)布了一個名為Rider的IDE象颖,它很棒檐什,是我在Mac上開發(fā)的主要工具赵讯。Rider在三大主流平臺都是可用的,微軟的Intellisense自動完成系統(tǒng)是我在任何主要的開發(fā)棧中發(fā)現(xiàn)的最好的傻谁,加上Jetbrains ReSharper 葫慎,沒有比這更高效的了岗钩。我的主要開發(fā)機器是一臺MacBook胞谈,我喜歡用Jetbrains Rider或VSCode工作尘盼。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Visual Studio For Mac
長期以來,微軟一直在他們的團隊中投入時間和技術努力呜魄,這意味著他們擁有穩(wěn)定的開發(fā)團隊悔叽、經驗豐富莱衩、知識豐富的工程團隊以及多年積累的信任爵嗅。新的.NET CORE打開了一個更大的市場,同時展示了一個大公司能做什么并且實現(xiàn)快速的轉型笨蚁。在現(xiàn)任首席執(zhí)行官薩蒂亞?納德拉(Satya Nadella)獲得任命后睹晒,他開始推動公司的技術和開發(fā)工作,導致了所有這些重大變化括细,這是有道理的伪很,因為他也是技術出身。c#和.net Core可能是微軟長期以來在開發(fā)領域所發(fā)生的最好的事情奋单,我很高興他們正在做他們應該做的事情锉试。
原文鏈接:https://kaushalsubedi.com/blog/2018/04/24/how-microsoft-made-me-love-net-core-and-c-again/