2017-02-28 06:54 AM 0 9,052
WinDbg 追查 CPU 飆高問題一文發表後,在 FB 收到網友 Webber Han 回饋(在此感謝),提到射茶包利器 Process Explorer 也能像 WinDbg 一樣檢視 Callstack 中的 .NET 組件、函式資訊,查了一下,這是 2012 年 15.2 版就加入的功能...
2017-02-13 06:32 AM 6 31,457
講到由 IP 地址查詢所屬國家,解決方案有兩種:第一種是直接呼叫線上查詢 API(付費或免費),再不然就要下載 IP 區段資料庫自寫查詢程式。考量應用場合不一定有 Internet 連線能力,加上擔心線上 API 無法滿足 IIS Log 等超大量 IP 解析的效能要求,選擇取回資料檔自幹。(其...
2017-02-09 08:49 PM 15 34,505
來自同事的資料庫程式效能調校案例一則。 情境為一支同步來源及目的資料表的排程,先一次取回來源及目的資料表,逐一檢查資料是否已存在目的資料表,若不存在即執行Insert,若存在則執行 Update 更新欄位。因 Insert/Update 之前需進行特定轉換,故難以改寫為 Stored Proc...
2017-01-17 06:57 AM 0 10,378
有個開發老鳥專屬的「成功經驗魔咒」:遇到難題,想出一套簡單有效解法,或許有些小缺點,但造成的麻煩在可忍受範圍,於是 日後再遇到同樣狀況,一律照方煎藥,數十年如一日。 但技術會革新、元件會改進,善用一些新特性,小缺點其實可以化為無形。可怕的地方在於:如果每次都能順利解決問題,就不會圖謀改進,直到...
2017-01-16 06:17 AM 0 12,528
Scott Hanselman 前兩天有篇文章-What .NET Developers ought to know to start in 2017,我的工作(甚至生活)跟 .NET 息息相關,重量級人物的觀點自然不容錯過,整理筆記如下: 前言 Scott 之前整理過類似的 .NET 須知,結...
2017-01-06 06:39 AM 0 6,788
之前處理過一個鳥問題,使用 ODP.NET 12.1 連線 Oracle Server 10.2.0.4 時無法參與分散式交易,傳回「Unable to enlist in a distributed transaction /無法列於分散式交易中」錯誤。依網路討論 Server 升級到 10....
2016-12-11 07:24 PM 14 52,799
C#的實數型別有三種:float、double、decimal。其中 float、double 為浮點數,本站的老讀者們一定知道-「算錢用浮點,遲早被人扁」的道理,因此只要涉及金額計算,我一律改用 decimal 型別。前幾天,踩到 decimal 小數尾數零地雷一枚。 以下程式為例,大家猜猜...
2016-11-22 06:06 AM 7 17,317
TypeScript 有個好東西,Template String,輸出內嵌動態資料 HTML 時非常好用,例如: var userName: string = "Jeffrey"; var iconUrl: string = "/imgs/runner.gif"; var html = ` &l...
2016-11-18 09:05 PM 0 20,202
工作上常遇到的需求:在陌生機器上想確認已安裝的 .NET Runtime 版本,只有 4.0,還是已升到 4.5.2 甚至 4.6? MSDN 建議的官方做法是檢查 Registry,程式邏輯不複雜要自己寫個小工具並不困難,但每次測試得 Copy 程式檔太搞剛,於是我想到了 PowerShel...
2016-11-17 05:19 PM 0 5,362
同事遇到的 TypeScript 小問題一則,如下圖,Foo 與 Bar.Foo Module 裡都有個 IBlah Interface(不算良好的設計但合法,用在特定情境可簡化程式),在 Bar.Foo 內想引用更上層 Foo 的 IBlah,不管宣告型別是 IBlah 還是 Foo.IBlah...
2016-09-15 01:28 PM 0 5,558
同事報案,某支在Windows 2003主機運作良好的轉檔程式,移至開發機執行更新Oracle資料庫時,中文變成問號。 比較原本執行正常的環境為Windows 2003 x86英文版 + Oracle Client 9207(真實世界永遠不乏這種與時代嚴重脫節卻維繫日常營運的中流砥柱啊),開發...
2016-09-10 05:49 AM 3 16,184
自從學會Managed ODP.NET,它馬上成為我的奧林匹克指定資料庫元件。不用額外安裝Oracle Client,管它x86還是x64,只要在主機設好TNSNAMES.ORA(我慣用的做法是用%TNS_ADMIN%環境參數提供路徑,一台主機只要設一次,部署到不同主機時不需改config),用N...
2016-08-09 11:10 PM 2 7,941
在C#自訂物件型別,基於Referece Type特性,只有兩個變數指向同一物件,==或Equals()才會傳回true(如果對Reference Type跟Value Type間的差異感到模糊,可以來個小測驗自虐釐清一番),而這常不待我們的期待。以股票代號物件為例,假設有個Ticker物件,將...
2016-07-29 07:23 AM 0 9,654
跟同事聊到如何在web.config加入多筆式設定。所謂多筆式設定,是指同性質設定可能有1到n筆並存,我常遇到的例子是偵錯用途或排除例外的對應設定,例如:將Windows登入帳號A對應成帳號B,部門C對應成部門D… 等等。這類設定,若筆數很多我通常會另外弄個Text或JSON保存,若筆數不多只有...
2016-07-14 09:32 PM 2 9,245
同事回報某段C#程式發現Bug: int lastQty = 100; int? soldQty = null; int leaveQty = lastQty - soldQty ?? 0; soldQty 由其他系統傳入可能為 null,原本我的想法是遇到 soldQt...
2016-06-30 07:06 AM 3 22,030
這幾天在我FB洗版的大消息,莫過於.NET Core 1.0跟ASP.NET Core 1.0(原先命名為ASP.NET 5)已正式發佈! Scott Hanselman說,他加入微軟多年一直致力.NET與Open Source推廣,在15年後.NET Core 1.0推出的這一刻,終於攀上巔峰。...