什么是.NET開發(fā)?做一個(gè).NET開發(fā)程序員(.net 開發(fā))
1.總體原則
技術(shù)的先進(jìn)性與適用性相統(tǒng)一;
技術(shù)的效益與代價(jià)相統(tǒng)一;
技術(shù)的特定目標(biāo)與社會(huì)效益相統(tǒng)一;
技術(shù)結(jié)構(gòu)合理化原則;
技術(shù)開源情況;
技術(shù)的生態(tài)圈。
.NET到底什么什么
在過去的日子中大家提到 .NET 通常是指 .NET Framework 這么一個(gè)框架。但是隨著.NET技術(shù)的發(fā)展,時(shí)至今日,廣義的 .NET指包含 “.NET Framework”,“.NET Core”,“Mono”在內(nèi),是基于.NET技術(shù)的整個(gè)產(chǎn)品系列。
.NET Core Roadmap
.NET的特點(diǎn)以及為什么選擇它
.NET特點(diǎn)如下:
跨平臺(tái)
您可以創(chuàng)建在Windows,Linux和MacOS上運(yùn)行的.NET Core應(yīng)用程序。
統(tǒng)一
利用統(tǒng)一的.NET標(biāo)準(zhǔn)庫(kù)(.NET Standard),使用相同的代碼定位所有平臺(tái),并使用相同的語言和工具重用您的技能。
輕量級(jí)
沒有影響部署和模塊化開發(fā)模型,您只需要依賴于您所需的最少組件包。
現(xiàn)代
多語言支持C#,VB,F(xiàn)#和現(xiàn)代結(jié)構(gòu),如泛型,語言集成查詢(LINQ),異步支持等等。
開源
運(yùn)行庫(kù),庫(kù),編譯器,語言和工具都是GitHub上的開源代碼,接受代碼貢獻(xiàn),測(cè)試和完全支持。
免費(fèi)
.NET可以在任何平臺(tái)上簡(jiǎn)單部署(跨平臺(tái))
.NET Core借鑒了.NET Framework的最佳實(shí)踐,并將軟件工程的最新進(jìn)展結(jié)合在一起。這些是.NET Core的一些顯著特征。
使用.NET Core,您可以使用.NET標(biāo)準(zhǔn)庫(kù)編寫應(yīng)用程序或庫(kù)。
然后它可以在許多平臺(tái)上共享。
代碼執(zhí)行效率
測(cè)試一(Windows 服務(wù)器,單位:ms)
執(zhí)行次數(shù) | .NET Core 2.2.103 (無預(yù)熱) | Java 11.0.2(無預(yù)熱) |
第一次 | 4485 | 12924 |
第二次 | 4131 | 10158 |
第三次 | 3930 | 9801 |
第四次 | 3942 | 12679 |
第五次 | 3902 | 12218 |
取時(shí)間最短 | 3902ms | 9801ms |
測(cè)試二(Linux內(nèi)核操作系統(tǒng),單位:ms)
執(zhí)行次數(shù) | .NET Core 2.2.105(無預(yù)熱) | Java 12(無預(yù)熱) |
第一次 | 7124 | 13779 |
第二次 | 6996 | 13704 |
第三次 | 7043 | 13769 |
第四次 | 7092 | 13441 |
第五次 | 7038 | 13626 |
取時(shí)間最短 | 6996ms | 13441ms |
測(cè)試三(Linux內(nèi)核操作系統(tǒng),單位:ms)
執(zhí)行次數(shù) | .NET Core 3.0.100-pre6(有預(yù)熱) | Java 12.0.1(有預(yù)熱) |
第一次 | 6533 | 9174 |
第二次 | 6606 | 8541 |
第三次 | 6538 | 8928 |
第四次 | 6539 | 8981 |
第五次 | 6670 | 9121 |
取時(shí)間最短 | 6533ms | 8541ms |
結(jié)論:
① 在 Windows 平臺(tái)上,雙方均沒有預(yù)熱的情況下,.NET Core 2.2.103 的性能差不多是 Java 11.0.2 的 3 倍
② 在 Linux 平臺(tái)上,雙方均沒有預(yù)熱的情況下,.NET Core 2.2.105 的性能差不多是 Java 12 的 2 倍。
③ 在 Linux 平臺(tái)上,雙方均預(yù)熱的情況下,.NET Core 3.0 (preview 6) 的性能差不多是 Java 12.0.1 的 1.5 倍。
技術(shù)資料
.NET 擁有活躍的生態(tài)圈和簡(jiǎn)單、易學(xué)習(xí)的相關(guān)資料(大量中文資料可供參考)。
IDE(開發(fā)工具,宇宙最強(qiáng)IDE)
.NET開發(fā)IDE調(diào)試、測(cè)試、代碼編輯更簡(jiǎn)單、智能化,三端通吃,窗體桌面產(chǎn)品開發(fā)更強(qiáng)大,全球第一IDE,一鍵式選擇性安裝、官方文檔支持較好。
生態(tài)圈
.NET擁有活躍的生態(tài)圈,越來越多用戶加入了生態(tài)圈,2020增長(zhǎng)率發(fā)布如下:
NuGet(開源包管理工具)
舉例:假設(shè)現(xiàn)在開發(fā)一套系統(tǒng),其中前端框架我們選擇Bootstrap,由于選擇Bootstrap作為前端框架,因此,在項(xiàng)目中,我們需要引入Bootstrap相關(guān)文件,大致會(huì)執(zhí)行如下操作。
步驟一:下載BootStrap文件
輸入BootStrap官網(wǎng)域名,進(jìn)入官網(wǎng)
步驟二:選擇合適的版本,下載BootStrap包
步驟三:將包引入到項(xiàng)目中
關(guān)于將BootStrap包引入到Project中,過程似乎比較麻煩,更可怕的是,當(dāng)在項(xiàng)目中的BootStrap包需要更新時(shí),需要做重復(fù)的工作,這是非常繁瑣的,關(guān)鍵還容易出錯(cuò)。
使用包管理工具很好的解決了上訴問題。
項(xiàng)目管理方面
.NET CORE Docker實(shí)現(xiàn)自動(dòng)化部署,保證測(cè)試、開發(fā)、生產(chǎn)環(huán)境都是統(tǒng)一標(biāo)準(zhǔn),避免程序BUG無法重現(xiàn);日常維護(hù)也會(huì)更簡(jiǎn)單。
開源情況
.Net Core 開源后取得了更加快速的發(fā)展,每月新增開發(fā)者45萬,在 GitHub 上的月度增長(zhǎng)達(dá)到15%。目前有來自超過5,300家企業(yè)的2.6萬開發(fā)者在為 .NET Core 做貢獻(xiàn),.NET 基金會(huì)管理著超過60個(gè)項(xiàng)目。
.NET Core 為開發(fā)者提供了跨平臺(tái)、云原生應(yīng)用的理想開發(fā)平臺(tái),特別是已發(fā)布的 .NET Core 3,能夠全面支持從網(wǎng)頁到云端、桌面、物聯(lián)網(wǎng)、人工智能的全方位的跨平臺(tái)部署。
開源協(xié)議
在開源軟件中經(jīng)??吹礁鞣N協(xié)議說明,GPL、BSD、MIT、Mozilla、Apache和LGPL。
在我國(guó)使用最廣泛的JDK,甲骨文宣布,“2019年1月之后”,如果沒有商業(yè)許可,Java SE 8公開更新將無法用于“商業(yè),商業(yè)或生產(chǎn)用途”。組織現(xiàn)在需要對(duì)運(yùn)行Java SE 8的所有軟件進(jìn)行評(píng)估,并開始計(jì)算明年他們正在尋找的潛在賬單。
需要注意的是 JDK != Oracle JDK
Java Development Kit(JDK)是SUN公司針對(duì)Java開發(fā)人員發(fā)布的免費(fèi)軟件開發(fā)工具包(SDK,Software development kit)。目前遵守GPL協(xié)議的OpenJDK的發(fā)布,并且免費(fèi)使用。
OpenJDK 所使用的GPL協(xié)議和.NET Core所使用最寬松的MIT和Apache 2開源協(xié)議比起來,.NET更加友好(本協(xié)議允許任何人任何組織和企業(yè)任意處置,包括使用,復(fù)制,修改,合并,發(fā)表,分發(fā),再授權(quán),或者銷售)。