閑話 .NET(5):.NET Core 有什么優勢?

image

前言

.NET Core 并不是 .NET FrameWork 的升級版,它是一個為滿足新一代的軟件設計要求而從頭重新開發的開發框架和平臺,所以它沒有 .NET FrameWork 的歷史包袱,相對于 .NET FrameWork,它具備很多優勢。

.NET Core 有哪些優勢?

優勢一

.NET Core 采用模塊化開發。

.NET Core 核心只包含很少的文件,所有其他模塊都需要單獨安裝。開發的程序用到什么模塊,就安裝什么模塊,這樣各個模塊都可以單獨升級。

不同的程序可以選擇適合自己版本的組件,不用受系統上安裝的其他程序的影響。

比如,A程序可以用一個模塊的1.5版本,而B程序可以用這個模塊的1.8版本,它們不會互相干擾。

優勢二

.NET Core 支持獨立部署(Standalone Deployment)。

所謂獨立部署,就是指將一個應用程序或軟件包打包成一個獨立的、自包含的單元,可以在沒有額外依賴項的情況下在目標環境中運行。

所以也就是說,可以把 .NET Core 運行時環境和開發的程序打包到一起部署。

這樣就不需要在服務器上安裝 .NET Core 運行環境,只要把程序復制到服務器上,程序就能運行,這對容器化、無服務器(Serverless)等非常友好。

優勢三

.NET Core 開發出來的程序性能更高。

相比 .NET FrameWork,.NET Core 的性能真是提高太多了,比如 EF(Entity Framework),EF 最受弊病的就是性能問題,在 .NET Core 時代,EF Core 比 EF 6.0 整整提高了 40 多倍。

因為 .NET Core 的所有管道都是可以插拔的,開發人員可以決定程序需要哪些管道及它們的執行順序,因此用 .NET Core 開發出來的程序啟動更快,內存占用更少,性能更高。

優勢四

ASP.NET Core 終于不再依賴 IIS。

這里用于 “終于” 一詞,因為一直以來,IIS 的復雜性、安全性和性能都備受爭議,但 ASP.NET 卻只能運行在 IIS 服務器里,很多開發人員非常反感這一點,甚至有些開發人員因為這一點,而放棄使用 ASP.NET。

現在,在 .NET Core 時代,我們有了更多更好的選擇,因為 ASP.NET Core 內置了簡單且高效的 Web 服務器 —— Kestrel。

Kestrel 被嵌入 ASP.NET Core 程序中運行,整個 ASP.NET Core 程序其實就是一個控制臺程序。

Kestrel 可被配置上安全、HTTPS、限流、壓縮、緩存等功能,從而成為直接面向終端用戶的 Web 服務器,也可以將其配置成輕量級的 Web 服務器,而安全、HTTPS、限流、壓縮、緩存等功能則由部署在它前面的 IIS、Nginx 等反向代理服務器完成。

優勢五

如今,高可用、高性能和高并發這三個方面受到了業界前所未有的重視,可以說,如今的軟件設計思想就是圍繞著這三個方面不斷地創新發展,集群、分布式、微服務、DDD(領域驅動開發)、最終一致性、容器化部署、依賴注入……等等概念受到前所未有的討論和應用。

.NET Core 有一個關鍵詞就是 “基于云” 開發。

所謂的 “基于云” 開發,就是指程序可以運行在云服務平臺上,并且可以和云服務平臺的其他產品進行集成。

云服務平臺的大部分技術都是開放的,而不是綁定某個具體語言的,因此主流的編程語言都能用于 “基于云” 的開發,.NET Core 也一樣,所以 .NET Core 更符合如今的軟件設計思想,EF Core 更是被譽為領域驅動開發應用場景的最佳實踐。

優勢六

現在要講的第六個優勢就是 跨平臺

跨平臺有很多優勢,具體可參考前文我們的分析,支持跨平臺的 .NET Core,有著更廣闊的應用場景和可能性。

結語

綜上所述,.NET Core 可以開發能運行在容器環境中的微服務,以便于開發能應對高可用、高性能和高并發的系統。

另外,雖然 .NET Core 是從頭開發的,但更多是對底層的調整,在語法層面上,.NET Core 基本上保持跟 .NET Framework 的一致性,開發人員在 .NET Framework 中學到的絕大部分技術都可以遷移到 .NET Core 中,不會浪費在 “.NET Framework 時代” 的技術投資,這對于數以百萬的 .NET Framework 開發人員而言,也算是一大優勢吧。

當然,.NET Core 優勢遠遠不止于此,本文只是拋磚引玉,如果您知道更多的優勢,歡迎留言討論。

我是老楊,一個奮斗在一線的資深研發老鳥,讓我們一起聊聊技術,聊聊人生。

都看到這了,求個點贊、關注、在看三連唄,感謝支持。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15455.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15455.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15455.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

智算中心帶寬漫談 -- 開篇

隱秘的角落 帶寬對高性能計算是一個永恒的話題,本質上,帶寬即數據交換的速率,單位時間的傳輸數據越多,帶寬就越高,但對高性能計算來說,對高帶寬的渴求永無止境,好比宏觀現實世界中的車道&#…

QT實現線程的四種方式(QThread、QRunnable和QThreadPool、QObject、QtConcurrent)

在當今高性能計算需求日益增長的背景下,多線程編程已成為提升應用性能的重要手段。Qt框架,作為一個功能全面、跨平臺的C++應用程序開發工具包,為我們提供了多種多線程實現方案。本文將介紹QThread類在Qt多線程編程中的應用,以及如何通過QRunnable和QThreadPool、QObject的m…

C# GDI+ 繪制文字不同的操作系統渲染文字大小不同

一、C# GDI 繪制文字不同的操作系統渲染文字大小不同 原因:使用Font 字體的時候,沒有指定字體渲染的單位。 不同系統的默認字體單位會不同。 二、解決方案: 在指定字體的時候,指定字體大小,同時也要設置字體的單位 …

sqlserver 創建表,列及表,列描述

-- 創建表 CREATE TABLE Employees (EmployeeID INT PRIMARY KEY,EmployeeName NVARCHAR(100),EmployeeEmail NVARCHAR(100) );-- 為表添加描述 EXEC sp_addextendedproperty name NMS_Description, value N員工信息表, level0type NSchema, level0name dbo, level1type N…

springboot整合kkFileView部署,前端使用

前言: 官方文檔:https://kkfileview.keking.cn/zh-cn/docs/production.html docker方式或加入星球獲取發行包直接獲取啟動,無需以下步驟: 拉取鏡像# 網絡環境方便訪問docker中央倉庫 docker pull keking/kkfileview:4.1.0# 網…

pytest框架的代碼如何用vscode進行debug

{"version": "0.2.0","configurations": [{"name": "Python: Run My Module", // 配置名稱,將在調試配置下拉列表中顯示"type": "debugpy", // 調試類型,這里是Python"requ…

二元關系表示

一、二元關系的定義和表示 什么是二元關系?對集合A和B,A\timesB的任意子集R為A到B的一個二元關系。當AB時,A\timesA的任一子集R稱為A上的一個二元關系。在不引起誤解的情況下,二元關系可簡稱關系。 若|A|m,|B|n,則A到…

常用字體映射字典

表格形式 英文字體名稱中文字體名稱SimSun宋體SimHei黑體KaiTi楷體FangSong仿宋YouYuan幼圓LiSu隸書NSimSun新宋體SimSun-ExtB宋體-ExtBFangSong_GB2312仿宋_GB2312KaiTi_GB2312楷體_GB2312Microsoft YaHei微軟雅黑Microsoft JhengHei微軟正黑體STXihei華文細黑STKaiti華文楷體…

手機版AI寫作軟件哪個好用?5款AI寫作軟件分享

在這個快節湊的時代,人們對于高效、便捷的創作方式很是追求。尤其是在人工智能技術發展迅速的今天,AI寫作軟件的出現,讓很多自媒體創作者都會想到在手機上面進內容創作,這樣不僅能提高工作效率,而且工作的自由度會更高…

自動化運維(AIOps): 現代IT管理的革命

在數字化時代,企業的 IT 系統變得愈加復雜。從云計算到大數據,從物聯網到人工智能,技術的飛速發展使得企業面臨前所未有的挑戰。這種復雜性不僅體現在數據量和數據流的增加上,還包括高成本和高錯誤率的運維需求。在此背景下&#…

基于51單片機的盆栽自動澆花系統

一.硬件方案 工作原理是濕度傳感器將采集到的數據直接傳送到ADC0832的IN端作為輸入的模擬信號。選用濕度傳感器和AD轉換,電路內部包含有濕度采集、AD轉換、單片機譯碼顯示等功能。單片機需要采集數據時,發出指令啟動A/D轉換器工作,ADC0832根…

Hive 變量定義與引用

文章目錄 1.背景2.Hive 變量命名空間查看變量設置變量引用變量 參考文獻 1.背景 在書寫 Hive SQL 時,有時需要將重復出現的值從 SQL 分離出來,以變量的方式表示和引用。 設置變量和引用變量可以帶來以下幾個好處: 簡化查詢語句:…

Android 實現豎排文本(垂直方向顯示)

Android 實現豎排文本-垂直方向顯示 前言效果圖代碼實現方式一 Custom View1. 自定義視圖 VerticalTextView2. 在xml布局文件中使用3. 設置文本內容 方式二 使用 TextView 的 rotation屬性方式三 使用帶有跨距文本的TextView1. 自定義視圖 VerticalTextView2. 在xml布局文件中使…

AI學習指南數學工具篇-凸優化基礎知識凸函數

AI學習指南數學工具篇-凸優化基礎知識凸函數 引言 在凸優化過程中,凸函數是一個非常重要的概念,它在機器學習、深度學習和優化算法中都有廣泛的應用。凸函數具有很多獨特的性質,能夠幫助我們更好地理解優化問題并且設計高效的優化算法。本文…

【Golang】Golang獲取Gin框架PostForm上傳的文件

文章目錄 前言一、函數解釋二、代碼實現三、總結 前言 在Web開發中,文件上傳是一項常見的功能。例如,用戶可能需要上傳頭像、文檔或其他類型的文件。在Go語言的Gin框架中,我們可以很方便地處理文件上傳。在這篇博客中,我將解釋如…

怎樣理解 Vue 的單項數據流

Vue 的單項數據流是一個核心概念,它指的是在 Vue 組件中,數據的流動方向是單向的,從父組件流向子組件。以下是關于 Vue 單項數據流的詳細理解: 數據流的方向: Vue 中的數據流動是單向的,即數據只能從父組件…

中國交通信息科技集團有限公司(中交信科)java開發工程師-機試題目/頌大技術面試總結/理工數傳 軟件開發一面二面面試總結/武漢智能視覺信息技術有限公司/高級

武漢智能視覺信息技術有限公司/高級 如果解決jvm內存溢出如果解決億級別的數據導出,有沒有其他的方案可以解決呢索引的原理工作中用了哪些索引提高了多少的速度線程池的創建方法--解釋new ThreadPool的其他參數以及四大拒絕策略分布式使用用到了哪些模式xxl-job的原…

pillow學習4

ImageChops 模塊 在 Pillow 庫的內置模塊 ImageChops 中包含了多個用于實現圖片合成的函數。這些合成 功能是通過計算通道中像素值的方式來實現的。其主要用于制作特效、合成圖片等操作。 常用的內置函數如下所示: (1)相加函數 add()&#xf…

【Windows系統】解決Intel 6代CPU安裝win7系統過程中無法操作鍵盤鼠標的問題

問題 微軟表示,從 2016 年 7 月 17 日起,新的 Intel、AMD 和Qualcomm 處理器將僅支持 Windows 10,不再支持 Windows 7 和 8.1。因此,Intel 6代以后的CPU因為沒有USB驅動無法完成win7系統的安裝。 下文核心思想是通過老毛桃PE系統…

云界洞見:移動云服務開啟技術創新與問題解決的新篇章

一、什么是移動云 移動云以“央企保障、安全智慧、算網一體、屬地服務”為品牌支撐,聚焦智能算力建設,打造一朵智能、智慧、安全可信可控的云,提供更優質的算力服務,引領云計算產業發展。 那么下面博主帶領大家了解移動云的優勢所…