Category: .net

同事分享地雷一枚。先踩到 ODP.NET OracleDataReader 數字型別對映陷阱,未指定 decimal 交由 ODP.NET 自由決定,某個 NUMBER(10, 2) 欄位被轉成 double,生出 1519222.6099999999 這種浮點數字,之後再陷入數字到底是 .6099...

昨天 PO 了金魚都能懂的 .NET 6 開源程式 EXE 製作法,有好些讀者貼心提醒我可以用 Github Action 自動編譯成 EXE,方便完全不懂程式的朋友直接下載。坦白說,一開始有閃過自動編譯的想法,但很快我就決定把握這個科普 .NET 與程式碼是怎麼變成程式的機會! (話說,九年...

昨天在 Windows 11 啟動獨立 IE 應用程式展示的復刻版 ClassicIE,有讀者敲碗希望能提供 EXE 下載。 這一年來我陸續寫了一些 .NET 6 小工具,清一色都是用 Github 分享原始碼,沒想過直接提供 EXE。主要原因是 EXE 檔不透明,永遠要面對可能窩藏病毒木馬的質疑,...

當代量產型製造業幾乎都是採用生產線作業,以汽車為例,會分成焊接、烤潻、組裝、測試等站,各站依處理時間調整人力與設備數量,以求站與站之間能無縫接軌,將閒置及等待時間降到最低,達到最大產能。而我們開發系統時,若遇到包含多個步驟的大量批次作業,每個步驟具有一定複雜度、涉及資源不一,此時就可借用生產線概念,...

身為性急又沒耐心的現代王藍田,我習慣為日常作業寫小工具放在桌面,需要時點兩下,避免被瑣事影響心情。簡單作業會用 PowerShell 寫,邏雜複雜的則會開個 Console Application 專案用 C# 開發。 .NET 6 推出的 Top-Level Statements 神奇地簡化 Pr...

我很愛用程式產生器節省無謂手工,其中有個經典應用是用程式產生器將服務元件轉成 WebAPI/MVC Controller + 客戶端呼叫程式庫,原理不難,程式產生器參照 C# DLL,用 Reflection 找出方法及所需參數,再從 XML Documentation 註解檔(.xml)取出對應說...

昨天分享 .NET 4.5.2 專案參照 4.6.1 專案,只有警告訊息但編譯會出錯的茶包,靠將 A 專案升為 4.6.1+ 解決,但愈想愈不對... 若低版本 .NET 參照高版本註定無法運作,為什麼被歸為警告而非錯誤?而 .NET 4.X 採「就地更新」(In-Place Update)政策,在...

某古老專案建置時,.nuget\nuget.exe 出現以下錯誤訊息: 用戶端與伺服器無法溝通,因為它們沒有公用的演算法。 The client and server cannot communicate, because they do not possess a common algorith...

.NET Core 程式寫久了,用命令列參數控制程式執行已是日常,像發佈 .NET 6 程式時便少不了 --no-self-contained、-c Release、-r win-x64 等參數,而啟動 ASP.NET Core 時,使用 --urls 指定 HTTP Port 更是必備技巧。 .N...

發現從 .NET 6 開始支援 System.Text.Json DOM 巡覽及編修,小小興奮了一下,打算逐步用 System.Text.Json 取代 Json.NET,不料隨即踩到雷。 有段用 JSON 傳送 Dictionary<string, object> 的程式,原本靠 Js...