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