日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

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

 板橋胡同37號 2019-09-29

加個“星標”,每日 7:15,好文必達!

作者丨Sam Redmond

譯者丨無明

策劃丨小智

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

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

Windows 許可

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

Docker/Kubernetes 兼容性問題


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

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

 云計算 AWS 

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

Visual Studio

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

走出 Windows 的藩籬


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

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

微軟沒有對 C# 進行過多修改

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

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

Visual Studio 并不是必需的

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

.NET 遺留代碼

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

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

結(jié)束語

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


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多