通過 zsh + zim + powerlevel10k 讓 Windows Terminal + WSL2 的指令碼具有自動補完功能

當我們安裝好 WSL/WSL2 之後,就可以在 Windows 上使用 Linux 的命令,請參考 Windows 與 Linux 的互通性 | Microsoft Docs,但卻沒有像 Powsershell 那樣的 InstelliSense / Completaion,搜尋了一下發現別的生態已經有非常完整的方案了,最後我選擇 zsh + zim + powerlevel10k,它們除了讓我們的 CLI 畫面變得更漂亮,還有以下功能 (我只知道這樣XD)

  • 自動補完,按 Tab or 方向鍵就自動填上完整指令。
  • 指令執行時間。
  • 輸入部分指令,呈現之前輸入過的指令
...繼續閱讀 »

通過 LINE Notify 發送訊息

LINE 服務有一個 LINE Notify 帳號,這是一個 LINEBot 機器人,專門用來發送訊息的帳號,只要你曾經有訂閱任何一個 LINE Notify 通知服務,它就能發訊息給你;或是把 LINE Notify 帳號加入群組也可以。LINE Notify 可以讓開發人員免費的發送訊息 + 表情或是圖片給用戶,在需要即時的通知用戶的場景下,是一個相當實惠的解決方案;尤其在台灣 LINE 等於是一個基礎建設,人手都有帳號,用 LINE 整合訊息通知應該是比較方便的。

...繼續閱讀 »

通過 Microsoft.Extensions.DependencyInjection,多個實作如何註冊相同的介面

當有一個介面(抽象),有多個實作(細節),在 Autofac 和 Unity 預設都有相關的解決方案,可以注入到屬性、方法、建構函數,這都需要使用特殊的 Attribute 來描述參數,比如 Autofac 的 [KeyFilter]、Unity 的 [Dependency],這將會讓你的物件變得不單純,必須要特殊的用法才會工作,接下來我會分享實作的方式,要怎麼選就看你了

...繼續閱讀 »

[EF Core][SQLite]如何使用 EF Core DbContext 以 Microsoft.EntityFrameworkCore.Sqlite 為例

.NET Core 1.0 開始為了跨平台重新改寫了 SQLite,名為 Microsoft.Data.Sqlite,刪除了過時的 DataTable 和 DataAdapter 相關的 DataSet  API,這已經和之前的 System.Data.SQLite 不一樣,但團隊還是盡量讓它們兩者的 API 變化降到最低。這裡有官方的比較說明文件 與System.Data.SQLite的比較-Microsoft.Data.Sqlite | 微軟文檔

...繼續閱讀 »

[EF Core 5][UnitTest]在 EF Core 使用 In-Memory 降低建立測試替身的成本

當我們要針對商業邏輯測試時,可能需要隔離 EFCore DbContext,搭配 Mock Framework 可以快速地建立測試替身假的 DbContext,自從 EF Core 的 In-Memory 出現之後,建立 DbContext 測試替身這件事,就變得輕鬆許多了

測試使用 EF Core 的程式碼 - EF Core | Microsoft Docs

...繼續閱讀 »