深入了解 .NET Core 2.1

.NET Core 是跨平台的,高性能的,具有開放源代碼的,模塊化,並且完全免費的應用程序框架,旨在通過.NET技術棧來構建向後兼容的,功能豐富的應用程序。自發佈以來,.NET Core逐漸成為了許多開發人員的首選。

一、.NET Core 2.1的新特性

1、使用 HttpClientHandler 跟蹤

在 .NET Core 2.1 之前,我們必須使用CustomDelegatingHandler通道傳遞一些傳輸信息。 使用HttpClientHandler 跟蹤功能可以提供更好的性能,以及更加方便的配置。

HttpClientHandler可以跟蹤每個請求的狀態,幫助您了解每個請求的進展,並追蹤每個請求的超時和重試次數。


var result = new Dictionary<string, string>;
using (var client = new HttpClient(new HttpClientHandler { UseCookies = true }))
{
    // Do some work with the client.
    response = await client.GetAsync("http://example.com");
    result.Add(response.RequestMessage.Method.ToString(), response.StatusCode.ToString());
}

2、ASP.NET Core 2.1 改進

.NET Core 2.1 更加穩定,並且本身也進行了一些調整與升級,特別是對於 ASP.NET Core,這似乎是一個振奮人心的消息。 ASP.NET Core 2.1 使用了一堆新的特性和改進。

例如,ASP.NET Core 2.1 對於控制器和標識範圍的構建作了優化,並優化了工作流,使其更加緊湊,更少繁瑣。 此外,ASP.NET Core 2.1還使用了SignalR進行WebSockets開發。

3、SignalR 更新

SignalR 是 ASP.NET 中十分重要的一個組件,可以創建實時應用程序, 這意味着ASP.NET Core 2.1其在 SignalR 的更新也十分重要。

SignalR 現在可以處理 WebSockets 協議,這是一種更加快速的協議,可處理雙向通信。此外,最新版本的SignalR還具有協議協商功能,使得您可以選擇的協議,包括長輪詢和Server-Sent Event。

二、性能與並發性的改進

1、更好的硬件支持

使用 .NET Core 2.1 可以利用現代 CPU 和硬件性能的優勢,這在許多大型系統中非常重要。 .NET Core 2.1 支持 Enhanced Mode,這可以讓 Windows 上的程序獲得更好的性能,並且在 Linux 下也支持 AVX2、SSE2 和 ARM64。

2、基於 Span 的異步和同步 IO API

新的基於 Span 的異步和同步 IO API, 可以媲美 異步Java IO和 Go 語言IO。.NET Core 2.1 異步 IO API可以非常方便地支持 HTTP 和 TCP 服務器。

3、Kestrel 更新

Kestrel 是 ASP.NET Core 中的 Web 服務器,也是存在一些負載均衡代理後面的主要服務器。 在 .NET Core 2.1 中,Kestrel 可以處理比之前更高的負載,並且對於大多數 Web 應用程序,都可以獲得更好的性能。

三、.NET Core 2.1 的可重現構建

1、默認開啟強Hash值檢查

首先,.NET Core 2.1 默認啟用強哈希的檢查。這是一個很大的改進,它可以在開發人員構建應用程序時檢測到已知的安全漏洞,並預防應用程序在運行時受到攻擊。

2、離線模式下的 .NET Core SDK

隨着發佈新版本的 .NET Core SDK,序列化器應該進行更新。很多開發人員擔心在更新應用程序時遇到序列化器的問題。.NET Core 2.1引入了一種離線模式,可以讓開發人員在系統離線時繼續使用SDK。

3、開發與部署的優化

在 .NET Core 2.1 中,可以利用”門禁”,以便開發人員更好地調試應用程序。 現在,開發人員可以更好地確定有問題的代碼行,以及哪些參數超出了範圍。 同時,在部署方面,.NET Core 2.1 大大簡化了程序的部署,並提高了程序的健壯性。

四、Docker 化怒放

1、使用 Docker 來加速構建

.NET Core 和帶 Docker 支持的應用程序理想地相配。對於那些熟悉Docker的開發人員,.NET Core 2.1 允許在 Docker Hub 中找到 .NET Core Docker 鏡像,您可以在您的本地環境中進行 Docker 化和構建,同時也可以大大加速應用程序的構建和部署。

2、Docker 增強

在 .NET Core 2.1 中,如果您的應用程序使用基礎鏡像,則可以減小應用程序的體積,增加應用程序的速度。.NET Core 2.1 還改善了與容器化環境集成的方法,如 Docker,容器化應用程序的部署正在變得越來越普及。

五、結語

在本文中,我們深入了解了 .NET Core 2.1 背後的力量和最新的改進,並發現了它可以做的事情比我們以前所知道的要多得多。希望這篇文章能夠讓您對 .NET Core 有更深入的理解, 並且為您添加了一些有益的信息。

原創文章,作者:GAKO,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/134498.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GAKO的頭像GAKO
上一篇 2024-10-04 00:06
下一篇 2024-10-04 00:06

相關推薦

  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • 深入解析Vue3 defineExpose

    Vue 3在開發過程中引入了新的API `defineExpose`。在以前的版本中,我們經常使用 `$attrs` 和` $listeners` 實現父組件與子組件之間的通信,但…

    編程 2025-04-25
  • 深入理解byte轉int

    一、位元組與比特 在討論byte轉int之前,我們需要了解位元組和比特的概念。位元組是計算機存儲單位的一種,通常表示8個比特(bit),即1位元組=8比特。比特是計算機中最小的數據單位,是…

    編程 2025-04-25
  • 深入理解Flutter StreamBuilder

    一、什麼是Flutter StreamBuilder? Flutter StreamBuilder是Flutter框架中的一個內置小部件,它可以監測數據流(Stream)中數據的變…

    編程 2025-04-25
  • 深入探討OpenCV版本

    OpenCV是一個用於計算機視覺應用程序的開源庫。它是由英特爾公司創建的,現已由Willow Garage管理。OpenCV旨在提供一個易於使用的計算機視覺和機器學習基礎架構,以實…

    編程 2025-04-25
  • 深入了解scala-maven-plugin

    一、簡介 Scala-maven-plugin 是一個創造和管理 Scala 項目的maven插件,它可以自動生成基本項目結構、依賴配置、Scala文件等。使用它可以使我們專註於代…

    編程 2025-04-25
  • 深入了解LaTeX的腳註(latexfootnote)

    一、基本介紹 LaTeX作為一種排版軟件,具有各種各樣的功能,其中腳註(footnote)是一個十分重要的功能之一。在LaTeX中,腳註是用命令latexfootnote來實現的。…

    編程 2025-04-25
  • 深入探討馮諾依曼原理

    一、原理概述 馮諾依曼原理,又稱「存儲程序控制原理」,是指計算機的程序和數據都存儲在同一個存儲器中,並且通過一個統一的總線來傳輸數據。這個原理的提出,是計算機科學發展中的重大進展,…

    編程 2025-04-25
  • 深入理解Python字符串r

    一、r字符串的基本概念 r字符串(raw字符串)是指在Python中,以字母r為前綴的字符串。r字符串中的反斜杠(\)不會被轉義,而是被當作普通字符處理,這使得r字符串可以非常方便…

    編程 2025-04-25
  • 深入了解Python包

    一、包的概念 Python中一個程序就是一個模塊,而一個模塊可以引入另一個模塊,這樣就形成了包。包就是有多個模塊組成的一個大模塊,也可以看做是一個文件夾。包可以有效地組織代碼和數據…

    編程 2025-04-25

發表回復

登錄後才能評論