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