原创 Dotnet Core IHttpClientFactory深度研究

今天,我們深度研究一下IHttpClientFactory。   一、前言 最早,我們是在Dotnet Framework中接觸到HttpClient。 HttpClient給我們提供了與HTTP交互的基本方式。但這個HttpClie

原创 ASP.NET Core 3.x啓動時運行異步任務(二)

這一篇是接着前一篇在寫的。如果沒有看過前一篇文章,建議先去看一下前一篇,這兒是傳送門   一、前言 前一篇文章,我們從應用啓動時異步運行任務開始,說到了必要性,也說到了幾種解決方法,及各自的優缺點。最後,還提出了一個比較合理的解決方法

原创 ASP.NET Core 3.x啓動時運行異步任務(一)

這是一個大的題目,需要用幾篇文章來說清楚。這是第一篇。   一、前言 在我們的項目中,有時候我們需要在應用程序啓動前執行一些一次性的邏輯。比方說:驗證配置的正確性、填充緩存、或者運行數據庫清理/遷移等。 如何合理、有效、優雅地完成這個

原创 ASP.NET Core 3.x控制IHostedService啓動順序淺探

想寫好中間件,這是基礎。   一、前言 今天這個內容,基於於ASP.NET Core 3.x。 從3.x開始,ASP.NET Core使用了通用主機模式。它將WebHostBuilder放到了通用的IHost之上,這樣可以確保Kest

原创 Dotnet Core異常處理的優雅實踐

異常處理,也可以做得很優雅。   一、前言 異常處理的重要性,老司機都清楚。   這篇文章,我們來理一下Dotnet Core異常處理的幾種方式。 Try Catch方式 Exception Filter方式 內建的異常處理中間件

原创 C#實踐設計模式原則SOLID

理論跟實踐的關係,說遠不遠,說近不近。能不能把理論用到實踐上,還真不好說。   通常講到設計模式,一個最通用的原則是SOLID: S - Single Responsibility Principle,單一責任原則 O - Open

原创 Dotnet Core Public API的安全實踐

公開API的安全,其實更重要。   一、API的安全 作爲一個Dotnet Core的老司機,寫API時,能兼顧到API的安全,這是一種優雅。   通常,我們會用認證來保證API的安全,無敵的Authorize能解決我們很多的問題。

原创 一文說通C#中的異步編程補遺

前文寫了關於C#中的異步編程。後臺有無數人在討論,很多人把異步和多線程混了。 文章在這兒:一文說通C#中的異步編程 所以,本文從體系的角度,再寫一下這個異步編程。   一、C#中的異步編程演變 1. 異步編程模型 這是C#中早期的異步

原创 一文說通C#中的異步編程

天天寫,不一定就明白。 又及,前兩天看了一個關於同步方法中調用異步方法的文章,裏面有些概念不太正確,所以整理了這個文章。   一、同步和異步。 先說同步。 同步概念大家都很熟悉。在異步概念出來之前,我們的代碼都是按同步的方式寫的。簡單

原创 你真的清楚DateTime in C#嗎?

DateTime,就是一個世界的大融合。   日期和時間,在我們開發中非常重要。DateTime在C#中,專門用來表達和處理日期和時間。 本文算是多年使用DateTime的一個總結,包括DateTime對象的整體應用,以及如何處理不同

原创 一文說通Blazor for Server-Side的項目結構

用C#代替Javascript來做Web應用,是有多爽?   今天聊聊 Blazor。 Blazor 是一個 Web UI 框架。這個框架允許開發者使用 C# 來創建可運行於瀏覽器的具有完全交互 UI 的 Web 應用。 可以理解爲,

原创 一文說通MongoDB via Python操作

Python並不僅僅是一個做Machine Learning的語言。   說到Python,一般都會感覺它關聯着ML,如果不是做ML開發,就會覺得離自己很遠。而實際上,作爲一門語言,Python在應用中跟別的語言沒什麼區別,甚至在某些

原创 MongoDB via Dotnet Core數據映射詳解

用好數據映射,MongoDB via Dotnet Core開發變會成一件超級快樂的事。   一、前言 MongoDB這幾年已經成爲NoSQL的頭部數據庫。 由於MongoDB free schema的特性,使得它在互聯網應用方面優於

原创 Dotnet core基於ML.net的銷售數據預測實踐

ML.net已經進到了1.5版本。作爲Microsoft官方的機器學習模型,你不打算用用?   一、前言 ML.net可以讓我們很容易地在各種應用場景中將機器學習加入到應用程序中。這是這個框架很重要的一點。 通過ML.net,我們可以

原创 一文說通Dotnet Core的後臺任務

這是一文說通系列的第二篇,裏面有些內容會用到第一篇中間件的部分概念。如果需要,可以參看第一篇:一文說通Dotnet Core的中間件   一、前言 後臺任務在一些特殊的應用場合,有相當的需求。 比方,我們需要實現一個定時任務、或週期性