2023-05-19 11:00 PM 0 2,109
.NET Core 開始內建 System.Text.Json,強調效能快、省記憶體,計劃逐步取代 Json.NET。從 .NET Core 3 一路發展,System.Text.Json 加入 JsonObject、JsonArray 支援 DOM 巡覽及 JSON 文件編修,功能及順手度慢慢追上...
2023-05-14 01:22 PM 2 4,853
前陣子怒讀一波演算法入門書,而排序是每本演算法書永不缺席的章節:Bubble Sort、Selection Sort、Insertion Sort、Heap Sort、Merge Sort、Quick Sort... 多不勝數(維基百科整理的更多)。看完這一堆排序演算法不免好奇:那 .NET 的 A...
2023-05-11 10:36 PM 0 2,167
前天說到提醒上班打卡的小程式,有讀者提到:下班關機時也很需要打卡提醒! (不過該個案為按完關機鈕,立刻關上螢幕瀟灑轉身離開... 灑脫至此,所有防呆機制望塵莫及。) 關機或登出時提示尚有未儲存修改,允許使用者取消關機或登出回桌面存檔的做法很常見,像是 Word、Notepad,連小畫家都有,儼然已成...
2023-05-01 09:00 AM 2 4,844
陸續看過 .NET ThreadPool 執行緒數量增減模式,也見識了 async/await 提高 Thread 使用率的神奇效果,將焦點放在 ASP.NET 網站,實際測試 async/await 是否能提高 ASP.NET 效能?ThreadPool.SetMinThreads() 是否能幫助...
2023-04-29 08:12 AM 1 8,536
在深入 .NET ThreadPool 執行緒數量管理文章中,為了讓程式範例能跟 ThreadPool 緊密關聯,也避免失焦,我採用 ThreadPool.QueueUserWorkItem() 示範將作業拋到 ThreadPool 執行。這篇文章則將場景拉到時間拉到現代,看看 .NET Frame...
2023-04-26 11:45 PM 7 8,998
前陣子有支模擬面試 YouTube 影片引發討論,不少讀者認為,連基本 BFS 演算法跟 Big O 都不熟,在真實世界的程式面試必死無疑。 雖然在資訊業打滾了幾十年,我因為不是本科系,在學校沒學過資料結構跟演算法這些東西(這對資訊本科生屬肌肉記憶等級吧),沒正式學過 BFS/DFS,學習及寫程式...
2023-04-25 09:18 PM 1 7,393
.NET 有個效能調校技巧是透過 ThreadPool.SetMinThreads() 設定 ThreadPool 的最小工作 Thread 數,這個做法為什麼能改善效能?何時有效?這篇文章會用實驗來理解與驗證。 當程式需要多工執行大量工作,除了自己弄 Queue 建執行緒,更簡便的方法使用 Thr...
2023-04-20 10:23 PM 0 2,227
在某些特殊情境下我們會想將 .NET dll/exe 反組譯成 CIL,或許是想研究 .NET 編譯行為,或許是要魔改無原始碼程式搞暴力破解。總之,.NET Framework 時代有 IL 反組譯及組譯工具 - ildasm.exe、ilasm.exe,安裝 Visual Studio 後開個 D...
2023-04-16 11:26 PM 0 1,567
昨天介紹了 POSIX 參數慣例,它是主流 CLI 工具一致遵守的參數語法規則,以 git 或 dotnet 為例,指令工具要能指定動作命令,選項名稱支援 --long-option-name 或單一字元 -o 兩種表示法,選項可接參數值 (--verbosity n)或可加可不加,參數選項可自由調...
2023-04-01 07:32 AM 0 4,770
這篇主要寫給自己未來參考,整理一份 RSA 公私鑰加解密及數位簽章的 .NET 程式範例,滿足以下應用場景: 同時考量 .NET Framework 與 .NET Core/.NET 6+、Windows、Linux 等不同 .NET 版本及作業系統平台 老 .NET Framework 專案續用...
2023-02-23 09:51 PM 2 3,855
【警告】本文要介紹的技巧很有趣,在某些情境可以巧妙解決刁鑽問題,令人拍案叫絕。 但對開發來說這類手法如同雙面刃,帶有嚴重副作用,常導致程式邏輯不易理解且難以維護。想像一下,接手程式的人追了三天三夜,百思不得其解,最後才發現有人他 X 的偷改某個 System.* 方法的傳回值,下一秒就算沒有抄起棒球...
2023-02-18 10:44 PM 0 1,945
上回提到我想用 Playwright for .NET 也可以用來開發網頁操作自動化機器人,但部署到客戶端可能會是問題。Playwright 原本被設計用於 End-To-End 測試,多在開發測試環境或 Build 主機上執行,程式庫下載安裝不用太講究 User Friendly。我想把它放到客戶...
2023-02-17 10:24 PM 3 3,564
Google Analytics (GA) 是分析網站流量的好工具,對於行銷專業人士是火力強大的重兵器,能用來解讀客群背景與來源、觀察訪問行為及路徑、分析行銷活動效果,其中包含一堆行銷專業術語:轉換率、跳出率、區隔... 是搞網路行銷的重要依據。坦白說,以上這些我一個也不懂,除了心血來潮查查大家查哪...
2023-02-12 11:42 AM 4 22,299
之前在用 C# 呼叫 Chrome 批次產生網頁快照的簡便做法 讀者 Rong 留言提到 Playwright。最近計劃寫一些機器人程式將複雜網頁操作自動化,機緣成熟,這回就不用 PuppeteerSharp 了,想試試很多人推的 Playwright。 Playwright 是微軟 2019 推出...
2023-02-11 11:04 AM 2 5,653
Debounce (去抖動)是前端開發時很常用的技巧,經典應用是整合 AJAX 的欄位輸入自動完成。原始設計是每敲一個字元查一次,當使用者連續輸入 d a r k t 便會發出 "d"、"da"、"dar"、"dark"...
2023-02-10 10:33 PM 0 2,993
某批次作業使用 SSH.NET 元件走 SFTP 上傳檔案,實測上傳多台 SFTP 伺服器中有一台失敗,其訊息為「An existing connection was forcibly closed by the remote host / 遠端主機已強制關閉一個現存的連線」: 該主機與成功上傳主...