原创 小心使用 Task.Run 續篇

關於前兩天發佈的文章:爲什麼要小心使用 Task.Run,對文中演示的示例到底會不會導致內存泄露,給很多人帶來了疑惑。這點我必須向大家道歉,是我對導致內存泄漏的原因沒描述和解釋清楚,也沒用實際的示例證實,是我的錯。 但是,文中示例演示的 T

原创 爲什麼要小心使用 Task.Run

昨天在博客園有園友問了我一個問題,是這樣的: 先是半個月前 @碧水青荷 童鞋的一句話“大家都說不要隨便 Task.Run(()=>{}) 這樣寫”,當時沒有想太多,這句話並沒有引起我注意,只顧着回答他“不想在代碼中加 async/awai

原创 Visual Studio 調試技巧之即時窗口的妙用

在 Visual Studio 中有一個窗口叫 Immediate 窗口,中文版本應該叫即時窗口。默認會在你啓動調試時在 VS 編輯器中彈出來。你也可以通過 Debug | Windows | Immediate 或者使用快捷鍵 Ctrl+

原创 審計系統的一劑良方——事件溯源

大多數系統在數據庫存的都是系統的狀態數據,比如一個用戶表可能會存用戶的姓名、頭像、個性簽名等信息。只存狀態數據的傳統模式會有什麼問題呢? 問題起源 假設你公司做了一個系統,並正式上線了。經過一週的推廣,老闆問你要一些用戶的行爲數據。老闆想知

原创 [C#.NET 拾遺補漏]13:動態構建LINQ查詢表達式

最近工作中遇到一個這樣的需求:在某個列表查詢功能中,可以選擇某個數字列(如商品單價、當天銷售額、當月銷售額等),再選擇 小於或等於 和 大於或等於 ,再填寫一個待比較的數值,對數據進行查詢過濾。 如果只有一兩個這樣的數字列,那麼使用 Ent

原创 再聊 Blazor,它是否值得你花時間學習

之前寫了一篇文章《快速瞭解 ASP.NET Core Blazor》,大家關心最多的問題是,我該不該花時間去學習 Blazor。今天聊聊這個話題,並表達一下我個人的看法。 在此之前,我還是想不厭其煩的介紹一個 Blazor。 Blazor

原创 使用 .NET 5 體驗大數據和機器學習

翻譯:精緻碼農-王亮 原文:http://dwz.win/XnM .NET 5 旨在提供統一的運行時和框架,使其在各平臺都有統一的運行時行爲和開發體驗。微軟發佈了與 .NET 協作的大數據(.NET for Spark)和機器學習(ML

原创 [C#.NET 拾遺補漏]12:死鎖和活鎖的發生及避免

多線程編程時,如果涉及同時讀寫共享數據,就要格外小心。如果共享數據是獨佔資源,則要對共享數據的讀寫進行排它訪問,最簡單的方式就是加鎖。鎖也不能隨便用,否則可能會造成死鎖和活鎖。本文將通過示例詳細講解死鎖和活鎖是如何發生的​,以及如何避免它們

原创 如約而至,.NET 5.0 正式發佈

作者:Richard 翻譯:精緻碼農-王亮 原文:http://dwz.win/WFz 說明:文章太長,後面關於 C# 9 語言新特性及平臺新特性的部分沒有翻譯,這部分基本都是代碼示例,請直接閱讀原文。關於 C# 9 新特性的介紹也可以閱

原创 [C#.NET 拾遺補漏]11:面試必備線程基礎知識點

線程的知識太多,知識點有深有淺,往深的研究會涉及操作系統、CPU、內存,往淺了說就是一些語法。沒有一定的知識積累,很難把線程的知識寫得全面,當然我也沒有這個能力。所以想到一個點寫一個點,儘量總結一些有用的知識點。線程是個大話題,這個系列可能

原创 使用 C# 9.0 新語法提升 if 語句美感

C# 語言一貫秉承簡潔優美的宗旨,每次升級都會帶來一些語法糖,讓我們可以使代碼變得更簡潔。本文分享兩個使用 C# 9.0 提升 if 語句美感的技巧示例。 使用屬性模式代替 IsNullOrEmpty 在任何你使用 IsNullOrEmpt

原创 Win10 Terminal + WSL 2 安裝配置指南,精緻開發體驗

自從 Windows Terminal 正式發佈後就再沒有用過 Windows 系統自帶的終端了。主要是 Terminal 簡潔且靈活,更重要的是支持特殊字體,通過一些簡單的配置可以使得終端看起來更舒適養眼。 自從 Win 10 有了 L

原创 [C#.NET 拾遺補漏]10:理解 volatile 關鍵字

要理解 C# 中的 volatile 關鍵字,就要先知道編譯器背後的一個基本優化原理。比如對於下面這段代碼: public class Example { public int x; public void DoWork()

原创 .NET 5.0 RC2 發佈,正式版即將在 11 月 .NET Conf 大會上發佈

原文:http://dwz.win/ThX 作者:Richard 翻譯:精緻碼農-王亮 說明:本譯文捨棄了少許我實在不知道如何翻譯但又不是很重要的語句。 今天(10月13日)我們發佈了 .NET 5.0 候選版本 2(RC2),它是 1

原创 .NET Standard 來日苦短去日長

作者:Richard 翻譯:精緻碼農-王亮 原文:http://dwz.win/Q4h 自從 .NET 5 宣貫以來,很多人都在問這對 .NET Standard 意味着什麼,它是否仍然重要。在這篇文章中,我將解釋 .NET 5 是如何