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