2019-07-25 08:58 PM 3 7,074
今天踩了個低級錯誤的雷,分享一下。 網頁上有個欄位輸入預期執行日期時間,後端檢核時需比對不得早於現在時間,前端傳入的 JSON 已轉為 UTC,例如在 7/25 選明天(7/26), 會得到 "2019-07-25T16:00:00Z",用 JsonConvert.Deseria...
2019-07-23 09:30 PM 18 18,170
看到一場 NDC 演講(Norwegian Developers Conference,NDC 是 歐洲最大的 .NET / Agile 開發者研討會),獲益不少,筆記分享之。 影片:https://www.youtube.com/watch?v=J0mcYVxJEl0 投影片:https://w...
2019-07-22 06:42 AM 0 3,576
最近的 Coding4Fun 專案是練習用 Razor Pages 寫英文單字測驗網站,其中有個情境是每次測驗時可選擇涵蓋難度等級、是否只顯示打星號的單字、是否略過已記住的單字,最後產生一組單字清單當成題庫。 為了方便能用相同字庫重新測驗一次比較成績,系統要保留完整單字清單及每題選擇題選項確保測驗基...
2019-07-21 08:35 AM 0 8,813
今天來介紹一則私房小技巧,能讓 C# 的複雜型別屬性與資料庫欄位無縫接軌,抱著「花盆種出葱請朋友來家裡吃飯品嚐」的心情分享給大家。 舉個實例說明應用情境。假設我有個 C# 資料型別長這樣,其中包含一些非基礎型別(Primitive Type)屬性,像是自訂列舉、int[] 及自訂物件陣列(Medal...
2019-07-18 09:02 PM 4 11,263
Managed ODP.NET 讓 .NET 程式擺脫對 Oracle Client 的依賴, 對常被 11.2 或是 12.1?32 或 64 bit 等版本鬼問題糾纏過的人就知道這點有多好, 故除非專案有不得已的限制,Managed ODP.NET 成為我寫 Oracle 相關 .NET 程式的...
2019-06-22 11:22 AM 0 6,122
再遇到加裝 Oracle Client 其他版本後 ODP.NET 壞掉的案例,已不是第一次發生,但沒能歸納出明確規則,故留個記錄。 問題主機是 Windows Server 2016,原本已經裝好 Oracle Client 11.2 及 12.1 的 32 位元版本。但因為上面有 SQL Ser...
2019-05-23 06:42 AM 7 6,468
過去寫過不少 .NET 版本導向的文章,主要處理 ODP.NET 版本相容累積的經驗: (題外話:學會 Managed ODP.NET 後前途有光明一點,但許多老專案仍以 ODP.NET 為主,三不五時要處理版本茶包) 組件繫結重新導向功能的實地觀察--以ODP.NET為例 【茶包射手日記】ASP...
2019-04-02 08:18 PM 0 5,718
野外求生系列又來了,今天要示範「如何在沒有開發工具(Visual Studio、VSCode、MSBuild、LINQPad...)的環境生出 Console Application .exe 整合既有 DLL 程式庫做測試?」 情境是這樣的,主機上有某支 .NET 程式出錯,我們嚴重懷疑是某段 O...
2019-03-13 10:00 PM 14 30,112
很早之前看過一篇關於 HttpClient 生命週期的討論,當時沒什麼感覺,這陣子研究 NSwag,注意到 NSwag 產生的客戶端程式庫,HttpClient 預設被當作建構式參數,由外界傳入生命週期自理。 但一方面它又提供參數允許採用每次呼叫自動建立的可拋做法,並可選擇是否使用完畢要不要 Dis...
2019-03-07 09:11 PM 1 8,704
網友發問:「 LINQ 可以對物件陣列進行 Pivot 轉換嗎?」 Sure, Of Course, Why Not? 對 Pivot 印象模糊的同學可先溫習這篇:Using PIVOT In SQL 2005,而本文也直接用該文的 Log 統計當例子。 假設原始資料長這樣: LogTime St...
2019-03-05 10:09 PM 10 25,292
LINQ 誕生超過十年(2007 隨 .NET 3.5 一起問市),我平日寫 .NET 程式早已「無 LINQ 不歡」,上癮程度甚至接近「無 LINQ 吾寧死」 (LINQ or Die),但我知道有不少朋友在開發時,會參考前人程式或依循習慣(或現有程式庫),繼續沿用 DataTable,for 迴...
2019-03-02 08:20 PM 0 7,099
ClosedXML 是我用程式操作 Excel 時的奧林匹克指定程式庫(參考:令人驚豔的Excel程式庫 - ClosedXML),在 .xls 格式退休後,在 .NET 中要讀寫操作 Excel 檔案,非它莫屬,尤其結合 LINQ 用來更是得心應手。最近學到一點小眉角,筆記備忘。 假設我有個 Ex...
2019-03-01 08:54 PM 1 4,052
Coding4Fun 過程產生一個統計 FB 按讚數的小需求,手上有一份 URL 清單,我想統計各網頁臉書分享區塊的按讚數。(即下圖中的 239) 之前我用過一個笨方法,用 WebClient 抓該區塊的 IFrame 網址抓回 HTML 再從中解析,這回試試更有效率的正統做法。 Facebook...
2019-01-14 11:17 PM 0 16,051
組件繫結重新導向是處理 .NET 組件版本衝突的捷徑, 將特定版號範圍重新導向統一版本,以化解部分程式要用 A.dll 1.1 版,某些要用 A.dll 1.2 的版本衝突。 版本衝突問題在實務上並不算罕見,過去的處理經驗還不少,一併整理在此提供參考: 組件繫結重新導向功能的實地觀察--以ODP....
2018-12-23 12:04 PM 0 4,051
.NET 效能測試首次執行偏慢現象解析一文得到老讀者 Lane Kuo 的迴響,補充一篇好文:.NET Just in Time Compilation and Warming up Your System by Abhinaba Basu,一掃我對 .NET JIT 編譯的迷思。 .NET 的 d...
2018-12-22 10:17 AM 2 3,391
上回研究 Stopwatch 測量微秒精確度有個小插曲,第一次執行 MD5、SHA1 運算總會特別慢,慢了五倍有餘,先跑 MD5 慢的是 MD5,先跑 SHA1 慢的就是 SHA1,之後的數字才正常。 這個現象挺有趣,初次起始慢讓我們優先想到的原因多半與笨重資源有關,例如:建立網路連線、開啟檔案、配...