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