【茶包射手日記】ASP.NET網站bindingRedirect無效
故事從某個Windows 2003上的ASP.NET 3.5網站搬到Windows 2012 R2說起,移至新主機後蹦出以下訊息:Could not load file or assembly 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of...
View ArticleXLS轉XLSX研究
要在C#讀寫Excel檔,直接呼叫Excel.exe是最直覺功能最齊全的做法,但Excel屬桌面互動程式,透過Web或排程等背景程序執行常有問題要克服,同時,只為單純讀取資料招喚龐大笨重的Excel程式有殺雞用牛刀之嫌,第三方元件是更理想的方式。過去用過多套Excel處理程式庫:NPOI、EPPlus、OpenXML SDK、ClosedXML,一路下來,ClosedXML支援不少Excel...
View Article如何使用Visual Studio Code偵錯Node.js?
小木頭去上電腦課,一回家,想當然爾程式魔人老爸立即展開偵訊:學什麼語言?用什麼開發工具?做了什麼練習?小子對程式細節一知半解兼忘性破表,回答得語焉不詳:用一個S開頭可以編文字的軟體寫程式,開一個黑黑的視窗跑程式看結果… XD...
View Article實作Equals()與==、!=運算子注意事項一則
在C#自訂物件型別,基於Referece Type特性,只有兩個變數指向同一物件,==或Equals()才會傳回true(如果對Reference Type跟Value Type間的差異感到模糊,可以來個小測驗自虐釐清一番),而這常不待我們的期待。以股票代號物件為例,假設有個Ticker物件,將股票代號分為Symbol(ex: 2330)與Market(ex:...
View ArticleJson.NET反序列化之建構式議題
分享處理JSON反序列化轉回物件的建構式相關問題。就拿早先文章提到的Ticker類別當例子:publicclass Ticker{readonlystring symbol;readonlystring market;publicstring Symbol { get { return symbol; } }publicstring Market { get { return market; }...
View Article修改csproj動態切換編譯程序-以DocFx為例
針對一些共用工具程式庫,我習慣在專案加入docfx.msbuild,每次編譯就同步產出API文件,讓文件永遠與最新版程式同步,十分方便。不過開發久了便覺得每次編譯都重新產生文件會拖累效率,不是個好主意。以手邊的一個程式庫專案為例,沒加上DocFx前大約一秒內就能編譯完成,DocFx文件製作較耗時,動輒要耗用5-6秒,編譯時間整整拖長五倍以上,對性急如火人生苦短的中年程序員來說,彷彿感受到寶貴的職業生...
View Article分散式交易問題排除經驗再一則與MSDTC快速ASPX測試法
以為自己MSDTC的處理經驗已夠豐富,不料今天又有新的心得,筆記之。某台新裝測試主機,多支涉及分散式交易程式冒出「The transaction manager has disabled its support for remote/network transactions.」錯誤,老問題一枚,推測是忘了啟用Network DTC...
View ArticleASP.NET MVC整合RichText編輯器範例與注意事項
最近的ASP.NET MVC專案用到了RichText編輯器,允許使用者編輯包含不同字型、大小、粗細、顏色的格式化文字,其中有些需注意細節,整理筆記備忘。網頁版RichText編譯器的選擇不少,本文以KendoEditor為例,結果則以PostBack方式回傳。即使換用其他編輯器或改以AJAX回傳,ASP.NET...
View Article使用Visual Studio編譯及偵錯.NET Core專案
年老力衰,熱血只能花在刀口上,在技術領域嚐鮮當先鋒少不了要走冤枉路,有時更會先鋒變先烈,老年人歲月寶貴,嗯湯呀嗯湯,也因此,從不覺得自己會這麼早接觸.NET Core專案… 萬萬沒想到,今天糊里糊塗地上梁山一遊,解除了「使用Visual Studio編譯與偵錯.NET Core專案」的成就。遇上棘手的Dapper問題,想要追進原始碼一探究竟。從Github下載了Dapper專案,用Visual...
View ArticleGarmin強度分鐘怎麼算?我的人體實驗報告
某天晨跑到一半,我的Fenix 3彈出目標達成放煙火動畫,項目圖示是帶三條線的馬錶,印象在「我的一天」Widget看過它,跑完切到我的一天找到圖示顯示數字62,但還是不知道這數字是什麼意思?回家再看,數字已跳到67…好奇它的意義,用「fenix3 我的一天 錶 圖示」關鍵字爬文,在彼岸論壇找到一篇帖子,同樣的疑問,附了照片但無人回答。哈,原來不只我不知道呀~ XD...
View ArticleHacking樂無窮:修正Dapper+ODP.NET無法寫入Unicode問題
歷經一段時間摸索歷練,確立「新増修改用EF/ORM,查詢一律用Dapper」的最高指導原則,Dapper的簡潔、效能與彈性無可挑剔,一切看似完美,直到我膝蓋中了一箭…無意間發現,使用Dapper+ODP.NET無法寫入Unicode字元跟Oracle...
View Article利用LINQ GroupBy快速分組歸類
分享最近學到的LINQ小技巧一則。有時我們會需求將資料物件分組擺放,方便後續查詢處理,例如:將散亂的銷售資料依客戶分群,同一客戶的所有資料變成一個List<T>。過去面對這種問題,我慣用的做法先定義一個Dictionary<string, List<T>>,使用 foreach...
View Article神祕的ASP.NET bin\roslyn目錄
同事由TFS取回ASP.NET MVC專案,編譯後執行出現以下錯誤:[DirectoryNotFoundException: 找不到路徑 'D:\TFS\src\web\MyForm\bin\roslyn\csc.exe' 的一部分。] System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +353...
View Article筆記:使用Google帳號登入ASP.NET MVC網站
新版ASP.NET改採OWIN架構,Middleware概念讓Request/Response處理流程變得模組化,允許抽換自由組裝,身分驗證也變得極富彈性,IIS時代ASP.NET只有匿名、Basic、Windows幾種選擇,改用OWIN後,整合Google、Facebook、Twitter、Microsoft Account…...
View Article筆記:使用Facebook帳號登入ASP.NET MVC網站
前篇文章介紹過ASP.NET MVC 5內建Google、FB、Twitter、Microsoft Account外部帳號登入支援,只需設定API Key及API Secret即可啟用,十分方便。上回整完Google帳號,繼續處理Facebook登入。一回生二回熟,第一步當然是到Facebook開發者網站申請API...
View Article你的密碼被偷了嗎?
兩天前收到Dropbox的通知信,說我從2012年起就沒有變更過密碼,為了安全起見,下次登入時系統會提示進行更新。信件與網頁強調這單純是預防性措施,帳戶並沒有被不當存取的跡象(實際登入Dropbox網站檢視存取記錄,的確也都正常),原因是Dropbox發現有一組舊的使用者登入資料...
View Article【茶包射手日記】網站在IIS下無法讀取LocalDB
小問題一則。為了測試Google登入整合,我將ASP.NET網站上傳Azure。經本機IIS Express測試無誤的網站,一掛到IIS下執行卻出現錯誤,在事件檢視器有以下訊息:Unexpected error occurred while trying to access the LocalDB instance registry configuration. See the Windows...
View Article再談T-SQL複合字串鍵值比對-借用PARSENAME()
以下是我實際遇到的情境,複合鍵在某些資料表拆成兩個或三個欄位,但在某些資料表則用"."或"-"串接存成單一欄位。(不要問我為什麼搞出這種不一致的設計,誰沒有過去?)如以下的例子,在JStock資料表的Market及Symbol欄位,在JReport則使用一個FullSymbol欄位,存成"Symbol.Market"。問題來了,如果這兩個Table要JOIN怎麼辦?過去用過一種鳥方法:...
View Article惱人的Managed ODP.NET ConfigSection問題
自從學會Managed ODP.NET,它馬上成為我的奧林匹克指定資料庫元件。不用額外安裝Oracle Client,管它x86還是x64,只要在主機設好TNSNAMES.ORA(我慣用的做法是用%TNS_ADMIN%環境參數提供路徑,一台主機只要設一次,部署到不同主機時不需改config),用NuGet下載安裝好一切搞定,十分方便。比起傳統ODP.NET常常糾結於x84與x64與Oracle...
View Article