Browse by Tags

使用 FileChangeMonitor 實現檔案資料快取自動更新
有個開發老鳥專屬的「成功經驗魔咒」:遇到難題,想出一套簡單有效解法,或許有些小缺點,但造成的麻煩在可忍受範圍,於是 日後再遇到同樣狀況,一律照方煎藥,數十年如一日。 但技術會革新、元件會改進,善用一些新特性,小缺點其實可以化為無形。可怕的地方在於:如果每次都能順利解決問題,就不會圖謀改進,直到有天發現洋人船堅砲利,才知自己已成滿清… 老鳥想一直寫程式又不想被時代淘汰,就得提高警覺。有個超簡單的實踐方法-對自己機車一點。當有人反應不方便時,別一句「就多一個動作會死嗎?」頂回去,改成問自己:「連這個動作都省不掉...
Posted 17 January 2017 06:57 AMJeffrey | with no comments 3,745
Filed under:
筆記-Scott Hanselman 的 2017 .NET 開發者須知
Scott Hanselman 前兩天有篇文章- What .NET Developers ought to know to start in 2017 ,我的工作(甚至生活)跟 .NET 息息相關,重量級人物的觀點自然不容錯過,整理筆記如下: 前言 Scott 之前整理過類似的 .NET 須知,結果被大家拿來當作面試時折磨新人的刑具… 清單很長,但並不是每則都必須搞懂弄通,應視自己所需以及學習習慣取捨,有些知道名詞即可,有些應該深入了解。 https://dot.net 是 .NET 技術資源的新入口...
Posted 16 January 2017 06:17 AMJeffrey | with no comments 3,431
Filed under:
ODP.NET 發行者原則檔經驗一則
之前處理過一個 鳥問題 ,使用 ODP.NET 12.1 連線 Oracle Server 10.2.0.4 時無法參與分散式交易,傳回「Unable to enlist in a distributed transaction /無法列於分散式交易中」錯誤。依網路討論 Server 升級到 10.2.0.5 以上可解決,當時決定將資料庫移至另一台 Oracle Server 11.2 成功脫逃,安全下莊。 半年後鳥問題捲土重來,一樣是 ODP.NET 12.1 連 Oracle 10.2.0.4...
Posted 06 January 2017 06:39 AMJeffrey | with no comments 2,215
Filed under: ,
關於 Decimal 小數尾數零
C#的實數型別有三種:float、double、decimal。其中 float、double 為浮點數,本站的老讀者們一定知道-「 算錢用浮點,遲早被人扁 」的道理,因此只要涉及金額計算,我一律改用 decimal 型別。前幾天,踩到 decimal 小數尾數零地雷一枚。 以下程式為例,大家猜猜結果為何? class Program { static void Main( string [] args) { float flt = 1.2300F; Console.WriteLine(flt);...
Posted 11 December 2016 07:24 PMJeffrey | 2 comment(s) 4,805
Filed under:
C# Interpolated Strings 字串插值
TypeScript 有個好東西, Template String ,輸出內嵌動態資料 HTML 時非常好用,例如: var userName: string = "Jeffrey" ; var iconUrl: string = "/imgs/runner.gif" ; var html = ` <div> Hello, ${userName}! <img src= "${iconUrl}" /> </div>...
Posted 22 November 2016 06:06 AMJeffrey | 3 comment(s) 3,170
Filed under:
快速查詢主機目前安裝的 .NET 版本
工作上常遇到的需求:在陌生機器上想確認已安裝的 .NET Runtime 版本,只有 4.0,還是已升到 4.5.2 甚至 4.6? MSDN 建議的官方做法是 檢查 Registry ,程式邏輯不複雜要自己寫個小工具並不困難,但每次測試得 Copy 程式檔太搞剛,於是我想到了 PowerShell! 在 Stackoverflow 找到網友分享 用 Powershell 檢查 .NET 版本的範例 : Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET...
Posted 18 November 2016 09:05 PMJeffrey | with no comments 3,710
Filed under:
與上層命名空間成員名稱重複問題:TypeScript 與 C#
同事遇到的 TypeScript 小問題一則,如下圖,Foo 與 Bar.Foo Module 裡都有個 IBlah Interface(不算良好的設計但合法,用在特定情境可簡化程式),在 Bar.Foo 內想引用更上層 Foo 的 IBlah,不管宣告型別是 IBlah 還是 Foo.IBlah,指向的都是 Bar.Foo.IBlah。 同樣的情境,在 C# 裡也會上演,在 Bar.Foo 命名空間內不管寫 Foo.IBlah 或 IBlah 指的都是Bar.Foo.IBlah: C# 可用 global...
Posted 17 November 2016 05:19 PMJeffrey | with no comments 2,478
Filed under: ,
【茶包射手日記】System.Data.OracleClient更新中文變問號
同事報案,某支在Windows 2003主機運作良好的轉檔程式,移至開發機執行更新Oracle資料庫時,中文變成問號。 比較原本執行正常的環境為Windows 2003 x86英文版 + Oracle Client 9207(真實世界永遠不乏這種與時代嚴重脫節卻維繫日常營運的中流砥柱啊),開發機則為Windows 7 x64英文版 + Oracle Client 12.1,二者存在不少差異。 寫了一段測試程式嘗試驗證問題,在我的機器(Windows 8.1 x64中文版 + Oracle Client...
Posted 15 September 2016 01:28 PMJeffrey | with no comments 1,909
Filed under: ,
惱人的Managed ODP.NET ConfigSection問題
自從學會 Managed ODP.NET ,它馬上成為我的奧林匹克指定資料庫元件。不用額外安裝Oracle Client,管它x86還是x64,只要在主機設好TNSNAMES.ORA(我慣用的做法是用%TNS_ADMIN%環境參數提供路徑,一台主機只要設一次,部署到不同主機時不需改config),用NuGet下載安裝好一切搞定,十分方便。比起傳統ODP.NET常常糾結於x84與x64與Oracle Client版號高低,Managed ODP.NET高雅先進,用過之後就回不去了。 不過,我常遇到一個小問題...
Posted 10 September 2016 05:49 AMJeffrey | with no comments 2,224
Filed under: ,
實作Equals()與==、!=運算子注意事項一則
在C#自訂物件型別,基於Referece Type特性,只有兩個變數指向同一物件,==或Equals()才會傳回true(如果對Reference Type跟Value Type間的差異感到模糊,可以來個 小測驗 自虐 釐清一番),而這常不待我們的期待。以股票代號物件為例,假設有個Ticker物件,將股票代號分為Symbol(ex: 2330)與Market(ex: TW)兩部分,另外有FullSymbol傳回2330.TW: public class Ticker { public string...
Posted 09 August 2016 11:10 PMJeffrey | 2 comment(s) 4,040
Filed under:
小技巧:在web.config加入多筆式設定
跟同事聊到如何在web.config加入多筆式設定。所謂多筆式設定,是指同性質設定可能有1到n筆並存,我常遇到的例子是偵錯用途或排除例外的對應設定,例如:將Windows登入帳號A對應成帳號B,部門C對應成部門D… 等等。這類設定,若筆數很多我通常會另外弄個Text或JSON保存,若筆數不多只有三五筆,我喜歡直接寫進config檔,比較乾淨俐落。 舉個實例,假設有個整合式驗證ASP.NET網站依登入帳號識別使用者身分,帳號manager具有管理權限。開發人員jeffrey臨時想模擬manager登入進行測試...
Posted 29 July 2016 07:23 AMJeffrey | with no comments 3,901
Filed under:
筆記:int?(Nullable<int>)運算與??運算子優先順序
同事回報某段C#程式發現Bug: int lastQty = 100; int ? soldQty = null ; int leaveQty = lastQty - soldQty ?? 0; soldQty 由其他系統傳入可能為 null,原本我的想法是遇到 soldQty==null 就視為0,此時 leaveQty 應等於 lastQty,但以上程式執行結果與預期不同,leaveQty == 0! 這枚Bug隱藏了兩項疑問: ?? 運算子(Operator)與加減乘除誰先誰後? int與null加減乘除時結果會是什麼...
Posted 14 July 2016 09:32 PMJeffrey | 2 comment(s) 5,014
Filed under:
跨平台一大步,.NET Core 1.0正式登場!
這幾天在我FB洗版的大消息,莫過於.NET Core 1.0跟ASP.NET Core 1.0(原先命名為ASP.NET 5)已正式發佈! Scott Hanselman 說 ,他加入微軟多年一直致力.NET與Open Source推廣,在15年後.NET Core 1.0推出的這一刻,終於攀上巔峰。 .NET Core讓C#走出Windows,正式登陸Mac、RedHat Enterprise Linux、Ubuntu Linux,支援C#、VB、F#,而整個.NET Core都Open Source並放在Github...
Posted 30 June 2016 07:06 AMJeffrey | 3 comment(s) 11,963
Filed under:
網頁內嵌JSON建立JS物件之日期轉換問題
題目讀來有點不知所云,用實例講解才會清楚。在ASP.NET MVC Controller端建立的物件,想在輸出View的同時轉成JavaScript端物件,最直覺的做法是將物件轉為JSON字串,再以Razor語法內嵌一段var dataItem = { "num_prop": 1234, "str_prop": "ABCD", "bool_prop": true }; JavaScript語法,直接建立JavaScript物件...
Posted 29 June 2016 12:22 AMJeffrey | with no comments 2,837
Filed under: ,
Dapper出現sql_variant is incompatible with ntext
有個古老資料庫,裡面還有NTEXT型別欄位(SQL 2005加入NVARCHAR(MAX)後,應該沒人想用TEXT/NTEXT了),用 Dapper 執行一段SQL更新NTEXT欄位,發生古怪錯誤。 指令如下: cn.Execute("UPDATE SomeTable SET NTextField = @data WHERE Id = 1", new { data = "…" }); 錯誤訊息為:sql_variant is incompatible with...
Posted 13 May 2016 08:05 AMJeffrey | with no comments 2,135
Filed under: ,
更多文章 下一頁 »

搜尋

Go

<January 2017>
SunMonTueWedThuFriSat
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication