原创 一個.NET內置依賴注入的小型強化版

前言 .NET生態中有許多依賴注入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core默認使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信

原创 利用 ASP.NET Core 開發單機應用

前言 現在是分佈式微服務開發的時代,除了小工具和遊戲之類剛需本地運行的程序已經很少見到純單機應用。現在流行的Web應用由於物理隔離天然形成了分佈式架構,核心業務由服務器運行,邊緣業務由客戶端運行。對於消費終端應用,爲了應付龐大的流量,服務端

原创 使用Blazor WASM實現可取消的多文件帶校驗併發分片上傳

前言 上傳大文件時,原始HTTP文件上傳功能可能會影響使用體驗,此時使用分片上傳功能可以有效避免原始上傳的弊端。由於分片上傳不是HTTP標準的一部分,所以只能自行開發相互配合的服務端和客戶端。文件分片上傳在許多情況時都擁有很多好處,除非已知

原创 寫書寫到一半,強迫症發作跑去給HotChocolate修bug

前言 這是寫作《C#與.NET6 開發從入門到實踐》時的小故事,作爲本書正式上市的宣傳,在此分享給大家。 正文 .NET目前有兩個比較成熟的GraphQL框架,其中一個是HotChocolate,在使用對比後認爲這個使用更方便,因此將其作爲

原创 ASP.NET Core中如何限制響應發送速率(不是調用頻率)

前言 ASP.NET Core中有很多RateLimit組件,.NET 7甚至推出了官方版本。不過這些組件的主要目標是限制客戶端訪問服務的頻率,在HTTP服務器崩潰前主動拒絕部分請求。如果請求沒有被拒絕服務會盡可能調用資源儘快處理。 現在有

原创 《C#與.NET6 開發從入門到實踐》預售,作者親自來打廣告了!

《C#與.NET6 開發從入門到實踐》正式出版,歡迎廣大網友前來圍觀!! 遙想我的上一篇文章,已經過去將近3年,期間斷更的主要原因就是忙於書稿編寫,也擔心博客和書稿可能出現一些意外衝突。現在,書已經正式出版,我又開始更新博客了。 這是我第

原创 C# 數獨求解算法

前言 數獨是一種有趣的智力遊戲,但是部分高難度數獨在求解過程中經常出現大量單元格有多個候選數字可以填入,不得不嘗試填寫某個數字然後繼續推導的方法。不幸的是這種方法經常出現填到一半才發現有單元格無數可填,說明之前就有單元格填錯了把後面的路堵死

原创 EntityFramework Core 2.x/3.x (ef core) 在遷移中自動生成數據庫表和列說明

前言 在項目開發中有沒有用過拼音首字母做列名或者接手這樣的項目? 看見xmspsqb(項目審批申請表)這種表名時是否有一種無法抑制的想肛了取名的老兄的衝動? 更坑爹的是這種數據庫沒有文檔(或者文檔老舊不堪早已無用)也沒有數據庫內部說明,是不

原创 Asp.Net Core Identity 隱私數據保護

前言        Asp.Net Core Identity 是 Asp.Net Core 的重要組成部分,他爲 Asp.Net Core 甚至其他 .Net Core 應用程序提供了一個簡單易用且易於擴展的基礎用戶管理系統框架。它包含了

原创 Blazor WebAssembly 候選版遷移手記

前言        之前我寫過一篇關於 Blazor WebAssembly 的文章瀏覽器中的 .Net Core —— Blazor WebAssembly 初體驗,如今已經更新到 RC-1,與預覽版有着較大的差異,爲此補充這篇文章。 正

原创 爲 .net 生態貢獻力量——製作並上傳 nuget 包(內有獨家彩蛋)

前言        nuget 是 .net 的常用包管理器,目前已經內置到 Visual Studio 2012 以後的版本。大多數 .net 包都託管在 nuget.org,包括 .net core 框架基礎包,得益於 .net cor

原创 動態構造任意複雜的 Linq Where 表達式

前言        Linq 是 C# 中一個非常好用的集合處理庫,用好了能幫我們簡化大量又臭又長的嵌套循環,使處理邏輯清晰可見。EF 查詢主要也是依賴 Linq。但是 Linq 相對 sql 也存在一些缺點,最主要的就是動態構造查詢的難度

原创 Windows GDI 窗口與 Direct3D 屏幕截圖

前言        Windows 上,屏幕截圖一般是調用 win32 api 完成的,如果 C# 想實現截圖功能,就需要封裝相關 api。在 Windows 上,主要圖形接口有 GDI 和 DirectX。GDI 接口比較靈活,可以截取指

原创 Asp.Net Core 混合全球化與本地化支持

前言        最近的新型冠狀病毒流行讓很多人主動在家隔離,希望疫情能快點消退。武漢加油,中國必勝!        Asp.Net Core 提供了內置的網站國際化(全球化與本地化)支持,微軟還內置了基於 resx 資源字符串的國際化服

原创 C# 數獨求解算法。

前言        數獨是一種有趣的智力遊戲,但是部分高難度數獨在求解過程中經常出現大量單元格有多個候選數字可以填入,不得不嘗試填寫某個數字然後繼續推導的方法。不幸的是這種方法經常出現填到一半才發現有單元格無數可填,說明之前就有單元格填錯了