免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
回頭草也挺好:嘗試了GO之后,我決定回歸.NET Core和C#

加個(gè)“星標(biāo)”,每日 7:15,好文必達(dá)!

作者丨Sam Redmond

譯者丨無明

策劃丨小智

我的編程之路是從《青少年 Visual Basic 游戲編程》這本書開始的,那時(shí)我還年輕。從那以后,我的整個(gè)職業(yè)生涯幾乎都在使用.NET,有 99% 的時(shí)間使用的是 C#,而不是 Visual Basic。我一直在想,C# 的好日子什么時(shí)候會(huì)到來。有那么一段時(shí)間,它看起來離我們?cè)絹碓浇?。在這篇文章中,我想聊聊.NET,以及為什么我認(rèn)為它可能會(huì)回歸。不過,這仍然有一些障礙需要克服,而最大的障礙就是它與 Windows 的緊密聯(lián)系。
.NET Core 要解決的問題

直到 2017 年,.NET 開發(fā)都還只能在 Windows 上進(jìn)行,并且只能部署到 Windows 環(huán)境中。這是.NET 最大的缺陷。這個(gè)問題至今仍然困擾著.NET,原因如下:

Windows 許可

開發(fā).NET 代碼不需要什么特別的東西,但如果要將它部署到生產(chǎn)環(huán)境,就需要 Windows 服務(wù)器。開發(fā)人員還需要為操作系統(tǒng)和相關(guān)授權(quán)支付費(fèi)用。我在 2015 年購買了 Windows Server 2012,一個(gè)許可就花了 660 美元。如果你是一家公司,不會(huì)只購買一個(gè)許可這么簡(jiǎn)單。雖說這樣的成本可能還算不上很高,但要知道,Ubuntu 服務(wù)器的成本為零,而且更輕量,速度更快。

Docker/Kubernetes 兼容性問題


2013 年 12 月,Docker 發(fā)布了。不到兩年,也就是 2015 年 7 月,谷歌發(fā)布了基于 Docker 的 Kubernetes。我不想再詳細(xì)介紹 Docker 或 Kubernetes 了,需要知道的是,Docker 為代碼提供了一個(gè)特定的容器。它是一個(gè)構(gòu)建在 Linux 內(nèi)核之上的輕量級(jí)虛擬環(huán)境,只運(yùn)行用戶提供的代碼。Docker 的美妙之處在于,同樣的代碼在所有機(jī)器上具有相同的行為,解決了“在我的機(jī)器上沒問題,到了生產(chǎn)環(huán)境就有問題”這一由來已久的問題。唯一的缺點(diǎn)是,如果有大量的容器,管理和擴(kuò)展就變得很困難。

Kubernetes 為容器編制問題提供了解決方案。有了這項(xiàng)技術(shù),啟動(dòng)和管理容器就變得很容易。但因?yàn)?Docker 只使用輕量級(jí) Linux 內(nèi)核,所以兼容性只是針對(duì) Linux 而言的,.NET 開發(fā)人員無法使用這項(xiàng)令人難以置信的技術(shù)。

 云計(jì)算 AWS 

在 2006 年發(fā)布了第一個(gè)公有云,從基本的產(chǎn)品開始:Elastic Compute Cloud(EC2)和 Simple Storage Service(S3)。自那時(shí)起,亞馬遜、微軟、谷歌、IBM 以及其他一些公司都在爭(zhēng)先恐后地推出自己的云服務(wù)。Docker、Kubernetes 和 Linux 為大量的云產(chǎn)品提供了支撐,這也導(dǎo)致.NET 開發(fā)人員無法使用這些(但并非所有)云產(chǎn)品,也有很多云供應(yīng)商提供了便利的 Windows 服務(wù)器虛擬機(jī),但仍然需要支付許可費(fèi)用,而且不能使用 Docker 或 Kubernetes。

Visual Studio

需要事先聲明的是,以下是我基于個(gè)人在 Windows 上使用 Visual Studio 的經(jīng)驗(yàn)而得出的觀點(diǎn)。可以說,它是最強(qiáng)大的 IDE 之一,但它也有一些嚴(yán)重的缺點(diǎn)。首先,它占用的空間太大。Visual Studio 會(huì)占用 2 到 5GB 的磁盤空間,這對(duì)于一款 IDE 來說有點(diǎn)過分了。它還會(huì)占用很大的資源,如果只是為了寫點(diǎn)代碼而打開它,會(huì)覺得很費(fèi)勁。記得之前有個(gè)項(xiàng)目,我甚至都可以在 Visual Studio 打開之前去吃頓午飯回來(順便說一下,我的機(jī)器是新的,有 32GB 內(nèi)存)。

走出 Windows 的藩籬


之前提到過,.NET Core 2.0 在 2017 年 8 月發(fā)布了,引入了對(duì).NET 的跨平臺(tái)支持?,F(xiàn)在你可以把.NET 開發(fā)帶到 Linux 和 Mac 上了。微軟甚至還發(fā)布了 Mac 版的 Visual Studio。實(shí)際上,相比 Windows 版本,我更喜歡使用 Mac 版的 Visual Studio!微軟還發(fā)布了一個(gè)非常好的 CLI,可以在任何平臺(tái)上創(chuàng)建和管理.NET 項(xiàng)目。

我不得不為微軟邁出的跨平臺(tái)這一步點(diǎn)個(gè)贊?,F(xiàn)在,你可以自由使用之前無法使用的東西,很多開發(fā)團(tuán)隊(duì)正在享受這份福祉。如果你像我一樣由于之前提到的那些問題而離開了.NET,我強(qiáng)烈建議你再回頭嘗試一下.NET Core 2.0。

微軟沒有對(duì) C# 進(jìn)行過多修改

微軟做了一件了不起的工作,他們沒有改變 C# 語言的任何東西,所以不需要再去學(xué)習(xí)什么特別的東西,只需要安裝 dotnet CLI 和運(yùn)行時(shí)就可以。安裝起來很快,然后就可以用同樣的方式編寫熟悉的 C# 代碼了。不過,如果有一個(gè)標(biāo)準(zhǔn)版的項(xiàng)目,就需要做一些轉(zhuǎn)換,但轉(zhuǎn)換起來也很容易。

如果你剛開始學(xué)習(xí)編程語言,C# 可能是適合的。即使你最開始接觸的是.NET Core,要轉(zhuǎn)到.NET Standard 也很容易。

Visual Studio 并不是必需的

雖然我很喜歡 Mac 版的 Visual Studio,但它并不是必需的。你也可以使用其他常用的 IDE(比如 Visual Studio Code 或 Atom)。它們有很多語言插件,可以享受很多很酷的功能,比如代碼自動(dòng)完成和智能感知。但這些 IDE 都不能真正取代 Visual Studio,正如我之前說過的,它太強(qiáng)大了。不過,好在我們沒有完全被綁定到 Visual Studio,這點(diǎn)很好。

.NET 遺留代碼

.NET Core 2.0 雖然很好,但它畢竟也才兩歲。我曾經(jīng)在很多公司工作過,他們基于.NET Standard 構(gòu)建了大量的應(yīng)用程序,但直到現(xiàn)在都沒有時(shí)間和預(yù)算將它們遷移過來。一般來說,大多數(shù)開發(fā).NET 應(yīng)用程序的公司都被微軟的訂閱服務(wù)綁得死死的,他們現(xiàn)在才開始著手處理遺留代碼。

我覺得.NET 的過去帶有某種程度的恥辱,很多公司因?yàn)檫@個(gè)問題而沒有采用這項(xiàng)技術(shù)。我是眾多離開.NET 轉(zhuǎn)向 Go 語言、Python 和 NodeJS/TypeScript 的人當(dāng)中的一個(gè),我之前真的不認(rèn)為自己會(huì)再過頭來,但事實(shí)是,現(xiàn)在我回來了。

結(jié)束語

不管是開發(fā)新手,還是經(jīng)驗(yàn)豐富的開發(fā)人員,如果想要學(xué)習(xí)一門新語言,我認(rèn)為可以考慮一下.NET 和 C#。如果想要構(gòu)建一個(gè)大型復(fù)雜的 Web 應(yīng)用程序,.NET MVC 會(huì)讓一切都變得非常容易。新的 CLI 工具使用起來非常簡(jiǎn)單——整合代碼,創(chuàng)建樣板代碼,確保所有東西都能夠正確地連接在一起。它還能夠非常好地與你正在使用的前端框架集成。如果想要構(gòu)建一個(gè)跨平臺(tái)的原生桌面或移動(dòng)應(yīng)用程序,.NET 再好不過了。如果只想構(gòu)建一個(gè) API 或微服務(wù),這也很容易。Visual Studio 甚至還提供了一些工具,可以用來自動(dòng)將應(yīng)用程序部署到云端。


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Visual Studio2019及.NET CORE3.0的安裝教程
【翻譯】.NET Core3.1發(fā)布
.NET 使用 .NET Core 跨平臺(tái)運(yùn)行
C# 和 .NET Core 的關(guān)系
.NET成年了,然后呢?
.Net Core 學(xué)習(xí)筆記(一)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服