淺談 ASP.NET Core Tag Helper (標籤協助程式)
學習新的開發寫法要投入時間,離開習慣的事物令人不安,因此轉移新版本或新平台過程總存在著無形阻力。此時常需要靠新版的某個迷人特性,才能讓你產生動力咬牙跨越圍籬。 像是 Interpolated Strings 字串插值,便是讓我積極改用 C# 6.0 的關鍵。至於 ASP.NET Core,MVC V... Read More
View Article【笨問題】CSS 超長文字斷行
部落格被 Google Search Console 糾正部分排版不適合行動裝置閱讀。 檢視問題頁面研判是文章出現過長英文字串超出邊框,造成文章區塊變窄造成。導致問題的文字通常是 Namespace 加型別名稱,URL、檔案路徑等,共同特色是長度長且其中不包含空白或標點符號: 解決這類問題,腦海中... Read More
View ArticleMSSQL Trigger 偵測欄位修改
在 MSSQL 上寫 Trigger,我想減少非必要的資料庫動作,故計劃在執行 Trigger 邏輯前進行過濾,鎖定特定欄位有異動才執行。原本想從 INSERTED、DELETED 資料表取出資料比對,不料目標欄位型別是超級古老的 NTEXT (SQL2005 起已被 NVARCHAR(MAX) 取... Read More
View Article在 VS2019 檢視 ASP.NET Core 開放原始碼
好奇心起,想了解 ASP.NET Core 內部運作原理。ASP.NET Core 是開源專案,原始碼大大方方放在 Github 給你看,要取得不費吹灰之力。不過我被 Visual Studio 寵壞了,少了 F12 一鍵跳到函式定義以及 Ctrl-K、R 列出所有有呼叫來源這些功能就活不下去(OS... Read More
View ArticleAPS.NET MVC 小技巧 - 切換 cshtml 是否套用 Layout
分享最近學到的小技巧,在 ASP.NET MVC Action 透過 return View() 或 return PartialView() 控制是否要顯示 Layout 部分。 直接使用 VS2019 預設的 ASP.NET Core MVC 專案範本當範例,它的 Index.cshtml 長這... Read More
View ArticleASP.NET Core ViewComponent 練習
ViewComponent 是 ASP.NET Core 新加入的網頁元件架構,類似前端框架都會支援的自訂網頁元素,Vue.js、Angular、React都有,允許在 HTML 用 <my-component-name></my-component-name> 這類標籤直接... Read More
View Article【茶包射手日記】SQL 用 IP 可連,用主機名稱不通
記錄昨天踩到的地雷。在進行資料庫移轉作業,有幾台網站主機採用機器別名連線 MSSQL,做法是在 C:\Windows\System32\drivers\etc\hosts 加入一筆 IP 與機器名稱映(例如下圖的 NewSQL),設定連線字串時寫成 Data Source=NewSQL 不寫 IP。... Read More
View Article【水電工日記】熨斗電源線接觸不良
跟了我二十多年的電熨斗(當兵時買的,幸好有它,不然軍服沒熨好都不用放假惹)這陣子怪怪的,電源線要轉到某個角度才通電,原本覺得只是接觸不良喬一下就好。但前陣子時發現熨斗尾端電線喬角度偶爾會閃爍火花,才驚覺非同小可。 觀察冒火花處的電源線有多條橫向裂痕,猜想裡面多芯線可能部分有斷,導致彎折時由接觸摩擦產... Read More
View Article【茶包射手日記】ODBC Driver 17 for SQL Server 無法讀取 NVARCHAR(MAX)
再踩 SQL 資料庫地雷一枚。 配合停用 TLS 1.0,把一些老舊程式用的 ODBC 版本升級到 ODBC 17 (參考:ODBC 與 OLEDB 之 SQL Server TLS 1.2 支援問題),遇到詭異現象:升級後有個 SELECT ColKey, ColContent FROM ... ... Read More
View Article【茶包射手日記】ASP.NET 隨機發生 Session 物件遺失錯誤
同事報案,某台 ASP.NET 網站有幾個網頁會隨機性冒出錯誤,共同特徵都是 Session 物件遺失造成。 在事件檢視器出現大量 Event 5074 WAS 訊息,時間點與出錯時間吻合,初步推斷 AppPool 被回收導致 Session 物件遺失是隨機出錯原因: A worker proce... Read More
View ArticleASP.NET Core 練習 - 依賴注入 DI
先前 ViewComponent 範例程式為求單純避免失焦,有幾段程式寫法不符合 ASP.NET Core 規範留下小尾巴,現在再來收拾它。 幾個明顯問題包含: 在 ASP.NET Core 中使用服務(如:SimpleWeatherService)應採用依賴注入 (Dependency Inje... Read More
View ArticleVisual Studio 簽入 Git 遺漏檔案
工作上的小插曲。用 Visual Studio 2019 開發 ASP.NET NVC 專案,簽入 TFS Git 後同事抓回去發現漏了 /Views/Debug 下的幾個 cshtml。 聽到檔案路徑我很快就想到原因,是 .gitignore: 為避免編譯後的結果混入版控範圍,微軟提供的 Vis... Read More
View Article用 PowerShell 寫個瀏覽檔案上傳 WebAPI 小工具
遇到一個需求,某個上傳 CSV 的 WebAPI 想改成讓使用者選擇檔案上傳,由於是暫時性 Workaround,不想為此多寫上傳檔案網頁。 呼叫 WebAPI 上傳檔案對程式人員是小事一椿,知道檔名路俓下個指令用 curl 或 PowerShell 就搞定,但對一般電腦使用者來說多少有點難度。 雖... Read More
View ArticleASP.NET Core 練習 - 使用 appSetting
接續前一篇的程式改良。 ASP.NET Core 已不是用 web.config,但仍有 appSetting,網站可調參數是放在 appSettings.json,專案範本預設內容如下: appSettings.json 裡的設定值可透過 IConfiguration 讀取,依據 ASP.NET... Read More
View ArticlePDF 取文字解析與 RegularExpression 練習
工作上的小需求,監控系統定期發送 PDF 報表,回報像下面的主機監控數據。 覺得每天重複收信開 PDF 檔用肉眼檢查很蠢,但監控系統不在轄區沒法要求其他格式,怎麼辦? 幸好,我們可是會寫程式的人呢,不怕不怕。 先寫一隻小程式檢查 Outlook 收件匣依主旨特徵挑出監控系統報表,從中取出 PDF ... Read More
View Article使用 PowerShell 查詢 .NET 程式平台目標 (Platform Target)
要查詢 .NET 組件的平台目標 (Platform Target,AnyCPU、x32 或 x64),我過去都是用 .NET Framework SDK 的 CoreFlags.exe。但實務上有些不方便,第一是 .NET Framework SDK 安裝目錄通常不包含在 PATH 環境變數,直接... Read More
View ArticleASP.NET Core 練習 - 非同步化
繼續練習寫 ASP.NET Core 的正確姿勢。 除了在 ASP.NET Core 無所不在的 DI,另一個跨進 .NET Core 要習慣的轉變是 - async/await 非同步化! 延伸閱讀: ASP.NET async 基本心法 .NET 已逐漸走向非同步化。以 ViewComponen... Read More
View Article2019 台北馬拉松
一年一度的台北馬,由於固定於 12 月舉辦,常被跑友當成驗收一年練習成果的期末考。雖然不愛大拜拜型賽事,但認真跑了一年期末缺考成何體統,自然不能缺席。 維持月跑量 200K 將近一年,前一場板橋馬挑戰破四失敗,但學到一些經驗:要事先預習路線、注意 GPS 誤差、配速下限是 5:41 需全程緊盯。台北... Read More
View Article筆記:ASP.NET Core 2.2 升級 3.1 經驗一則
.NET Core 3.1 LTS (Long Term Support) 已在 2019/12/3 正式釋出,依我的觀點 LTS 是作為企業解決方案選項的重要條件,.NET Core 3.1 LTS 的問市意味在工作上可以放心大膽用下去囉。(補充:.NET Core 3.1 的下一版將會更名為 .... Read More
View Article小技巧 - 使用 Chrome 檢查網站憑證問題
網友提到 Chrome 出現網站憑證無效(ERR_CERT_AUTHORITY_INVALID)訊息。 用 Chrome 查詢憑證資訊的方法之前零散提過,在這篇做個小整理。 當 Chrome 發現 HTTPS 網站憑證有問題,預設行為是阻止你檢視網站內容,將不會進入網頁而是出現下面的白畫面。若你確信... Read More
View Article