體驗 Cloudflare CDN 與 HTTPS 傻瓜設定
上回分享 HTTPS Nginx Docker 之懶人安裝法,許多讀者大推 Cloudflare 的免費 CDN 服務,網站開 HTTP 就好,由 Cloudflare Reverse Proxy 負責啟用 TLS 憑證對瀏覽器走 HTTPS,無腦搞定。 走這條路的先決條件是你有註冊專屬網域名稱(不... Read More
View Article為 Nginx 提供友善管理介面與自動化 HTTPS - Nginx Proxy Manager
試了上回分享 HTTPS Nginx Docker 懶人安裝法時許多讀者大推的方便選擇 - Nginx Proxy Manager。 Nginx Proxy Manager 用 tabler 樣版 幫 Nginx 做了一個漂亮的網頁管理介面,對初學者來說,網頁操作比編輯 .conf 檔好上手。Ngi... Read More
View Article自動化 HTTPS 網站伺服器 - Caddy Server
這應該是這波 Reverse Proxy 評估的最後一篇,打鐵趁熱,把本次蒐集到的情資一次檢視完。 一樣是分享 HTTPS Nginx Docker 懶人安裝法時有讀者推薦,不沾手實現 HTTPS 的方便選擇 - Caddy Server。 閒扯淡:Caddy 這個命名真的不優,Google 查「C... Read More
View Article連圓形綠燈跟箭頭綠燈都搞不清楚,因為當年考駕照沒考?
昨天看到董大偉老師耗資 1800 元進行人體實驗,驗證「綠燈能不能左轉?圓形或箭頭是關鍵」。(延伸閱讀:圓形綠燈到底可不可以左轉?) (看在老師踩雷分享的份上,大家可訂閱或抖內以表支持) 不意外地,討論這個議題一定會冒出兩種聲音: 連這個都不知道,駕照是雞腿換的? 我記得駕照沒有考這個呀! 基於... Read More
View Article.NET 範例 - 好用的萬用字元彈性規則檔案搜尋程式庫
檔案同步工具需要以黑名單方式排除特定路徑及檔案型別,這回我想要高級一點,學習 .gitignore 或 .csproj 的 Include 屬性,支援 Include="Images\**\*jpgs\*.*" 這種萬用字元彈性路徑樣式。(** 代表零到多層子目錄) 經過研究,這... Read More
View ArticleASP.NET Core 練習 - 用 Middleware 為 Minimal API 加上 API Key 檢查
我很常寫小服務協助手工作業自動化,這類簡單 Web API 許多程式碼不過一百多行,連寫帶測半天就能寫完,沒啥必要切介面拆模組裝 Swagger 走 OpenAPI,網站框架也愈精簡愈好。因此 .NET Framework 時代我酷愛 NancyFX,而 ASP.NET Core 6.0 推出的 M... Read More
View ArticleASP.NET Core 由程式指定 IConiguration 設定值進行測試
假設我在 ASP.NET Core 有個服務 CopyService,建構式接收 IConfiguration 從中讀取設定值,appsettings.json 格式如下: { "Logging": { "LogLevel": { ... Read More
View ArticleASP.NET Core Minimal API 整合測試
這篇聊聊 ASP.NET Core 的整合測試。 假設我寫了一個沒啥營養的展示用 Minimal API,其中宣告 GuidService 類別並用 DI 註冊成 Singleton (延伸閱讀:不可不知的 ASP.NET Core 依賴注入),MapGet("/guid") 時... Read More
View Article2022 跑步雜記
馬拉松生涯邁入第十一年,這兩年被疫情攪和到一團亂,賽事延了又延,再不然直接取消。而去年三級警戒之後,明明跑量大減,我的左膝卻莫名中了一箭,六分速慢跑個十五公里沒問題,若拼遠貪快膝窩就會腫,宣告我的跑步巔峰已過,全馬 PB 就留在 2019 的 3:54:20 吧! 也因此,今年以來我對跑步的熱情已大... Read More
View ArticleLINQ ForEach() 與 async / await
犯了 async/await 低級錯誤,鬼打牆近半小時,PO 文留念。 .NET 4.5/C# 5.0 開始引進 Asynchronous Function 概念及 async/await 保留字,非同步化函式漸漸成為 .NET 的主流寫法,以取代 WebClient/HttpWebRequest ... Read More
View Article停用 Edge/Chrome 自動填入表單功能
同事報案,某表單有個連絡電話欄位,Edge/Chrome 的自動填表功能會提示上回填的電話號碼,但使用者選擇帶入上次填寫電話,瀏覽器卻帶把另一個代理人欄位一起改成上次填寫的姓名,使用者沒注意到,上傳了錯誤的內容。 我知道瀏覽器有自動填表的功能,最常遇到是在填馬拉松報名資料時侯,但沒細究過,這次看來得... Read More
View ArticleHttpClient BaseAddress 的正確用法
HttpClient 有個 BaseAddress 屬性,若設定妥當,GetAsync() 或 PostAsync() 時可只傳相對路徑,用起來蠻方便的。 但最近我踩到一個雷,當 BaseAddress 只有主機名稱不包含路徑(例如:http://www.host.net),HttpClient 對... Read More
View ArticleASP.NET Core 依環境載入不同 appsetting.json 設定
.NET 網站專案建立時會附帶兩個 appsettings 檔:appsettings.json 及 appsettings.Development.json。 ASP.NET Core 執行時會由 appsettings.json 讀取設定,開發測試階段還會載入 appsettings.Devel... Read More
View Article重新認識 C# [8] - C# 7 的其他小確幸 (筆記完結)
【本系列是我的 C# in Depth 第四版讀書筆記,背景故事在這裡】 (2022 年初訂下的目標,趁著最後三天,還是把它完成吧~) 區域方法 - 在方法裡可以寫方法。 static void Main() { int x = 10; PrintAndIncrementX(); ... Read More
View Article我的 2022 技術盤點
轉眼就要邁入 2023 了,年紀愈大感覺時間過得愈快,記得才剛過完年沒多久,怎麼一年又要過完了。(依據科學家研究,可能原因包含多巴胺減少、同時間長度佔總人生的比例變小、因見識增長及養成習慣,生活中新體驗變少... 等等) 身為一名還沒放棄學習新技術的老兵,在最後一天盤點這一年的學習軌跡及重要事件,為... Read More
View ArticleAzure 監視器警示串接 Slack API 建立雲端資源警報器
前幾天保哥分享了一則鬼故事 - 因為沒有正確啟動 MFA (多因素認證),Azure 登入帳號被駭客入侵,對方偷建了上百台虛擬機器(VM),幸好觸及消費限制帳號被停用才控制損失。但事件在隔天收到停用通知才爆發,身為常疑神疑鬼的被害妄想體質(例如:沒事會寫工具查查誰在偷連我的 Windows、自製 W... Read More
View ArticleWindows Docker Image 相關問題:invalid tar header
換了新工作機,跑 Docker Desktop 是件輕鬆愉快的小事。於是我把部署到 Linux 主機的操作步驟改成:在 Windows Build Docker 容器,匯出 Image 並壓縮成 tar.gz / tgz,scp 上傳後用 docker load 或 import 載入,但有時會失敗... Read More
View Article在 EF Core Model 定義 GUID 非叢集 Primary Key
我個人偏愛用 GUID 當 Primary Key,但為避免索引破碎引發效能災難,我慣用的解法是另設自動跳號欄位當叢集索引(Clustered Index)。(延伸閱讀:GUID Primary Key 資料庫避雷守則) 因此,一個理想的 CREATE TABLE 範例會像這樣: CREATE TA... Read More
View ArticleLINQ 進階練習 - 動態組裝 Expression 產生 WHERE 條件
上回研究過 ExpressionTree,這回再用它玩些有趣應用。 在 EF Core Model 要宣告複合索引,Fluent API 做法是在 OnModelCreating() 宣告 modelBuilder.Entity<Person>().HasIndex(p => ne... Read More
View ArticleSQL 索引欄位是否該包含 OR 比對項目?
我們都知道,為 WHERE 條件用到的欄位建立索引可改善查詢效能,假設有 SQL 查詢如下,如果要為它建立索引,請問索引 Key 應包含哪些欄位? SELECT LastName,FirstName,Address,City,State,Zip,Phone FROM Employee WHERE (... Read More
View Article