原创 淺談Dotnet的數據定位和匹配

Dotnet裏,數據定位和匹配的相關編程現在變得很舒服。   最近項目緊,還要不停出差。 所以,寫個短點的、最近經常用到的內容:數據定位和匹配。   數據定位 假設我們有這樣一個數組: var array = new int[] { 1

原创 Dotnet洋蔥架構實踐

一個很清晰的架構實踐,同時刨刨MySQL的坑。   一、洋蔥架構簡介 洋蔥架構出來的其實有一點年頭了。大約在2017年下半年,就有相關的說法了。不過,大量的文章在於理論性的討論,而我們今天會用一個項目來完成這個架構。   洋蔥架構,有時

原创 聊聊Dotnet的垃圾回收

最近在做一個項目,用到了大量的非託管技術,所以垃圾回收變得很重要。   在說垃圾回收之前,先說說兩個概念: 託管代碼,是由CLR管理的代碼 非託管代碼,是由操作系統直接執行的代碼 在早期C++的時候,內存分配和釋放都是由我們手動處理

原创 Dotnet中Span, Memory和ReadOnlySequence之淺見

過年啦,寫個短點的。同時,提前給大家拜個年。   總有小夥伴們跑過來討論關於Span和Memory的使用,眼瞅是最近關於Span的文章有點多,看飛了。 今天寫這個,就是往回拉一拉。 寫之前,先聲明一下。這些內容是我自己使用的一些經驗,並

原创 一文說通Dotnet的委託

簡單的概念,也需要經常看看。   一、前言 先簡單說說Delegate的由來。最早在C/C++中,有一個概念叫函數指針。其實就是一個內存指針,指向一個函數。調用函數時,只要調用函數指針就可以了,至於函數本身的實現,可以放在其它地方,也可

原创 開發進階:Dotnet Core多路徑異步終止

今天用一個簡單例子說說異步的多路徑終止。我儘可能寫得容易理解吧,但今天的內容需要有一定的編程能力。   今天這個話題,來自於最近對gRPC的一些技術研究。 話題本身跟gRPC沒有太大關係。應用中,我用到了全雙工數據管道這樣一個相對複雜的

原创 深入淺出Dotnet Core的項目結構變化

有時候,越是基礎的東西,越是有人不明白。   前幾天Review一個項目的代碼,發現非常基礎的內容,也會有人理解出錯。 今天,就着這個點,寫一下Dotnet Core的主要類型的項目結構,以及之間的轉換和演化。 一、最基礎的應用Cons

原创 一文說通C#中的異步迭代器

今天來寫寫C#中的異步迭代器 - 機制、概念和一些好用的特性   迭代器的概念 迭代器的概念在C#中出現的比較早,很多人可能已經比較熟悉了。 通常迭代器會用在一些特定的場景中。 舉個例子:有一個foreach循環: foreach (v

原创 Dotnet Core多版本API共存的優雅實現

API升級,新舊版本的API共存,怎麼管理呢?   一、前言 最近,單位APP做了升級,同步的,API也做了升級。 升級過程中,出現了一點問題:API升級後,舊API也需要保留,因爲有舊的APP還在使用中。 那麼,API端如何作到多個版

原创 Dotnet Core下的Channel, 你用了嗎?

今天給大家分享一個微軟官方的好東西:Channel。   前言 今天給大家分享一個微軟官方的生產者/消費者方案的特性解決:Channel。 Channel在System.Threading.Channels命名空間下,Core 2.1

原创 關於C# Span的一些實踐

Span這個東西出來很久了,居然因爲5.0又火起來了。   相關知識 在大多數情況下,C#開發時,我們只使用託管內存。而實際上,C#爲我們提供了三種類型的內存: 堆棧內存 - 最快速的內存,能夠做到極快的分配和釋放。堆棧內存使用時,

原创 部署Dotnet Core應用到Kubernetes(二)

前一篇文章,概念性地介紹了K8s的一些基礎組件,如Pod、部署和服務。這篇文章,我打算寫寫如何使用YAML清單定義和配置這些資源。   實際上,在K8s集羣中創建對象有幾種方式 - 命令,或聲明。兩種方式區別不大。 不過實際應用中,一

原创 部署Dotnet Core應用到Kubernetes(一)

最近閒了點,寫個大活:部署Dotnet應用到K8s。   寫在前邊的話 一直想完成這個主題。但這個主題實在太大了,各種拖延症的小宇宙不時爆發一下,結果就拖到了現在。   這個主題,會是一個系列。在這個系列中,我會討論將應用部署到K8s

原创 ASP.NET Core託管運行Quartz.NET作業調度詳解

Quartz.NET這麼NB的作業調度系統,不會還行?   今天介紹一下Quartz.NET的託管運行,官網傳送門。 一、前言 Quartz.NET,按官網上的說法,是一款功能齊全的任務調度系統,從小型應用到大型企業級系統都能適用。在

原创 Dotnet Core使用特定的SDK&Runtime版本

Dotnet Core的SDK版本總在升級,怎麼使用一個特定的版本呢?   假期過完了,心情還在。今天寫個短的。 一、前言 寫這個是因爲昨天刷微軟官方文檔,發現global.json在 SDK 3.0 後,更新了一些內容。文檔提到了這