作者 | Huzaifa Khan
譯者 | 朱先忠
策劃 | 信遠(yuǎn)
當(dāng)今世界上大量程序員都選擇基于.NET框架開(kāi)發(fā)應(yīng)用程序。但是,作為一名合格的程序員您還應(yīng)該深入了解這個(gè)框架的一些優(yōu)點(diǎn)和缺點(diǎn)。
如今,.NET開(kāi)發(fā)框架受到了全世界程序員的廣泛歡迎,它被數(shù)百萬(wàn)開(kāi)發(fā)人員用來(lái)創(chuàng)建各種類(lèi)型的應(yīng)用程序。其原因也非常明確,.NET提供了大量功能,可以幫助開(kāi)發(fā)人員依據(jù)給定的需求來(lái)開(kāi)發(fā)任何類(lèi)型的軟件產(chǎn)品。此外,該平臺(tái)在過(guò)去幾年中有了巨大進(jìn)步,為開(kāi)發(fā)人員創(chuàng)建跨平臺(tái)應(yīng)用程序提供了更多便利。這進(jìn)一步提高了.NET框架的流行度,也鼓勵(lì)了更多的開(kāi)發(fā)人員加入這個(gè)龐大的開(kāi)發(fā)生態(tài)系統(tǒng)。
特別是最近引入的.NET 6,進(jìn)一步加強(qiáng)了該平臺(tái)的開(kāi)發(fā)基礎(chǔ)設(shè)施。可以說(shuō),它現(xiàn)在比以往任何時(shí)候都更加豐富;允許開(kāi)發(fā)人員為云端、物聯(lián)網(wǎng)、桌面和移動(dòng)設(shè)備創(chuàng)建高級(jí)應(yīng)用程序。
當(dāng)然,您也可以將其稱(chēng)為完美的統(tǒng)一平臺(tái),因?yàn)樵谶@里您可以根據(jù)需求獲得大量的開(kāi)發(fā)支持。而您所需要做的只是精通.NET開(kāi)發(fā)所需要的技術(shù),如Xamarin、ASP.NET核心等。當(dāng)然,在提供了大量豐富的特征外,.NET框架也存在一些限制。這些也正是它的缺點(diǎn),需要微軟立即關(guān)注。在本文中,我們將討論.NET框架存在的典型性的優(yōu)點(diǎn)和缺點(diǎn),以幫助您更好地了解該平臺(tái)。
下面,讓我們先來(lái)了解一下.NET的核心模型,因?yàn)樵撃P湍軌驇椭私馄湔w開(kāi)發(fā)的生態(tài)系統(tǒng)。
.NET開(kāi)發(fā)平臺(tái)的核心模型
許多初學(xué)者并不知道.NET開(kāi)發(fā)技術(shù)被劃分為四種不同類(lèi)型的層,這些層中包含的模型分別對(duì)應(yīng)于:.NET框架、.NET核心、Xamarin和通用Windows平臺(tái)(UWP)。它們的組合實(shí)現(xiàn)了提供完整的.NET開(kāi)發(fā)環(huán)境,人們可以利用這些組件來(lái)創(chuàng)建各種應(yīng)用程序。
從歷史發(fā)展來(lái)看,.NET框架基本上是2002年開(kāi)始引入的開(kāi)發(fā)平臺(tái)的第一個(gè)實(shí)現(xiàn)。當(dāng)時(shí),它基于三種主要的應(yīng)用程序模型,即ASP.NET窗體、WPF和Windows窗體。
該平臺(tái)的第二個(gè)版本是.NET核心部分。它是.NET框架的高級(jí)和重建形式,允許開(kāi)發(fā)人員在Linux和MacOS上使用該平臺(tái)。這樣一來(lái),增強(qiáng)了舊版本僅為Windows平臺(tái)開(kāi)發(fā)應(yīng)用程序的能力——也能夠?yàn)槠渌僮飨到y(tǒng)平臺(tái)提供開(kāi)發(fā)支持。
.NET的第三個(gè)實(shí)現(xiàn)版本是Xamarin,它為創(chuàng)建跨平臺(tái)移動(dòng)應(yīng)用程序提供了非常有效的開(kāi)發(fā)基礎(chǔ)設(shè)施。第四個(gè)也是最重要的.NET層稱(chēng)為通用Windows平臺(tái)(Universal Windows Platform,簡(jiǎn)稱(chēng)“UWP”)。它為開(kāi)發(fā)能夠在所有Windows設(shè)備上運(yùn)行的應(yīng)用程序提供了強(qiáng)大的統(tǒng)一基礎(chǔ)設(shè)施。這包括PC、平板電腦、XBox、Surface Hub等不同平臺(tái)。
.NET開(kāi)發(fā)框架的優(yōu)勢(shì)
.NET開(kāi)發(fā)框架的流行說(shuō)明了它在開(kāi)發(fā)領(lǐng)域的重要性。以下是使用.NET開(kāi)發(fā)平臺(tái)體現(xiàn)出來(lái)的一些核心優(yōu)勢(shì)。
面向?qū)ο蟮能浖_(kāi)發(fā)模型
.NET的最大優(yōu)點(diǎn)是,它允許您使用面向?qū)ο缶幊蹋∣OP)的概念編寫(xiě)應(yīng)用程序。這是開(kāi)發(fā)人員用來(lái)創(chuàng)建不同類(lèi)型應(yīng)用程序的核心軟件編程模型。.NET框架在處理面向?qū)ο缶幊碳捌渚幋a策略方面非常出色。通過(guò)將代碼分解為小的模塊,有助于使代碼更易于理解。
借助于.NET框架,您可以使用模塊化結(jié)構(gòu),從而以一種十分重要的方式定義對(duì)象的行為。此外,該框架還確保了代碼的可重用性,這樣一來(lái)在編寫(xiě)其他相似類(lèi)型的函數(shù)時(shí)會(huì)節(jié)省不少寶貴的時(shí)間。
快速簡(jiǎn)單的緩存系統(tǒng)
緩存是一種允許將有用數(shù)據(jù)存儲(chǔ)在特定存儲(chǔ)器中的技術(shù)。與傳統(tǒng)的響應(yīng)時(shí)間相比,這樣做的目的是為了更快速地檢索數(shù)據(jù)。.NET框架提供了一個(gè)高級(jí)緩存系統(tǒng),允許開(kāi)發(fā)人員優(yōu)化進(jìn)程調(diào)用的速度。此緩存系統(tǒng)非常健壯且易于使用,使開(kāi)發(fā)人員能夠簡(jiǎn)化應(yīng)用程序中不同類(lèi)型的數(shù)據(jù)檢索。
內(nèi)置的對(duì)象緩存類(lèi)還有助于開(kāi)發(fā)人員根據(jù)其需求自定義緩存調(diào)用。這不僅有助于優(yōu)化性能,而且有助于不同的基于客戶(hù)端和服務(wù)器的.NET應(yīng)用程序的可伸縮性。?
廣泛的庫(kù)支持?
.NET還支持在一個(gè)地方訪問(wèn)數(shù)千個(gè)庫(kù)和第三方組件。隨著.NET標(biāo)準(zhǔn)在2016年的引入,開(kāi)發(fā)人員現(xiàn)在可以輕松找到基于.NET框架、.NET核心和Xamarin的大量的庫(kù)。這些庫(kù)可用于執(zhí)行軟件應(yīng)用程序中所需的不同類(lèi)型的功能,這包括圖形渲染、代碼格式化、數(shù)據(jù)庫(kù)交互等。
.NET開(kāi)發(fā)框架的缺點(diǎn)
盡管.NET能夠提供數(shù)百種特殊的開(kāi)發(fā)功能,但是在一些關(guān)鍵領(lǐng)域仍缺乏相應(yīng)的支持。在接下來(lái)的內(nèi)容中,讓我們僅討論這其中的部分欠缺。
許可成本
盡管.NET框架提供了大量開(kāi)發(fā)應(yīng)用程序的選項(xiàng),但這并非沒(méi)有高昂的代價(jià)。在.NET上構(gòu)建軟件應(yīng)用程序并不便宜,因?yàn)槟枰?gòu)買(mǎi)開(kāi)發(fā)過(guò)程中所需的一些工具。在這方面,Visual Studio所需的許可成本無(wú)疑是一個(gè)很好的例子。它的企業(yè)版提供了一些額外的開(kāi)發(fā)功能,這就是為什么它在市場(chǎng)上以昂貴的價(jià)格提供的原因。因此,如果您的項(xiàng)目開(kāi)發(fā)預(yù)算很小,那么您肯定很難訪問(wèn)頂級(jí)的.NET開(kāi)發(fā)工具。
向.NET核心的挑戰(zhàn)性過(guò)渡?
盡管.NET核心是微軟為提升平臺(tái)的特征而推出的一款優(yōu)秀產(chǎn)品,但它在從舊框架過(guò)渡時(shí)也帶來(lái)了一些困難。我們也在其他平臺(tái)上看到了差不多同樣類(lèi)型的問(wèn)題,我們確實(shí)理解這需要一些時(shí)間才能得到妥善解決。也就是說(shuō),那些構(gòu)建在.NET框架上的業(yè)務(wù)應(yīng)用程序需要一個(gè)艱苦的過(guò)程來(lái)完成向.NET核心的轉(zhuǎn)換。這當(dāng)然需要一些時(shí)間,也需要開(kāi)發(fā)人員的專(zhuān)業(yè)技能才能順利地過(guò)渡到新環(huán)境中。?
供應(yīng)商鎖定
.NET框架是由微軟公司開(kāi)發(fā)的,這就是為什么它擁有該平臺(tái)上的所有權(quán)限。這意味著,使用.NET創(chuàng)建應(yīng)用程序的開(kāi)發(fā)人員對(duì)框架策略的控制較少。如果微軟在平臺(tái)上推出任何變更或更新,那么用戶(hù)將不得不承擔(dān)其對(duì)其軟件產(chǎn)品的影響。這一事實(shí)經(jīng)常受到開(kāi)發(fā)人員的批評(píng),因?yàn)樗麄兿M耆伤麄冏约簛?lái)控制自己的應(yīng)用程序。
總結(jié)
在本文中,我們討論了.NET框架的不同類(lèi)型的優(yōu)缺點(diǎn)。但是,該框架至少在目前,無(wú)疑依舊是開(kāi)發(fā)軟件應(yīng)用程序的最佳平臺(tái)之一。從網(wǎng)站到移動(dòng)應(yīng)用程序,該框架現(xiàn)在已經(jīng)非常先進(jìn),可以開(kāi)發(fā)各種軟件產(chǎn)品。然而,它也有一些限制,這些限制希望微軟能夠盡快拿出解決方案。在本文中也列舉了不少這方面的問(wèn)題,以便您能夠更好地理解它們。
原文鏈接:https://dzone.com/articles/understanding-the-good-and-the-bad-of-net-developm
譯者介紹
朱先忠,51CTO社區(qū)編輯,51CTO專(zhuān)家博客、講師,濰坊一所高校計(jì)算機(jī)教師,自由編程界老兵一枚。