Dapr (Distributed Application Runtime) 是一個分散式應用程式的引擎(Runtime),他幫助開發者能在微服務架構下建構事件驅動(event-driven)、高彈性(resilient)的分散式應用程式。他可以幫助你在打造微服務架構的同時,又能徹底簡化應用程式開發的複雜度,大幅降低服務與服務之間的耦合性,真的是非常漂亮!這篇文章我將分享如何透過一個簡單的例子(hello-kubernetes),讓大家瞭解 Dapr 的運作原理。
... 繼續閱讀 ...
許多有在玩 Angular 前端框架的人都知道,目前的 Angular 官網的正體中文版(https://angular.tw)都是由我負責維護。該網站我目前架設於 Azure App Service 上,我原本想用 Azure 上目前免費的 App Service 受控憑證,可惜他並不支援「裸網域」(naked domains),因此我就必須要改申請免費的 Let's Encrypt 網站伺服器憑證。
... 繼續閱讀 ...
在最近的幾個 Entity Framework Core 版本,對於 Logging (紀錄) 的撰寫方式一直在改變,大致上可區分成 EF Core 2.1
, EF Core 3.0+
與 EF Core 5.0
三種版本,這意味著你從網路上找到的資訊,很有可能是舊的,但很多人無法區別其差異,因為舊的寫法到了 EF Core 5.0 依然可以用,只是會被標示棄用而已。你應該也可以想像得到,越新的 EF Core 版本,寫法就會更簡單的,這篇文章我就來說說幾種不同的紀錄方法。
... 繼續閱讀 ...
我們會將 .NET Generic Host 用在 ASP.NET Core 或 Worker Service (背景服務) 這類需要運行在長時間執行的應用程式中。不過,若只是僅執行一次的這種單純的 Console 主控台應用程式適合用 .NET Generic Host 來建立應用程式架構嗎?是的,當然適合,而且還有很多附加的好處。
... 繼續閱讀 ...
前陣子 Office 365 管理介面建議我將「通訊群組」(Distribution List) (DL) 全面升級為「群組」(Group),但我在升級完成後,我現有的 PowerShell 命令就失效了,因為 Cmdlet 命令不一樣了,這篇文章來說說其差異之處。
... 繼續閱讀 ...
最近迷上 C# 原始碼產生器 (Source Generators) 這門相當新穎的技術,跟以往常用的 T4 (Text Template Transformation Toolkit) 產生器技術不太一樣,這個 Source Generators 是屬於 Roslyn 編譯器的技術之一,讓你在專案建置的過程中,可以對正在編譯的 C# 原始碼進行增補,動態加入「額外」的原始碼,最後再編譯在一起,非常神奇又實用的技術,讓人非常有想像空間! 👍
... 繼續閱讀 ...
今天在示範 MSBuild 如何設定 MvcBuildViews
屬性時,發現只要有 *.edmx
存在於專案中,建置的時候就會導致出現 Could not load type 'System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider' 的問題,這個問題想從 Visual Studio 2019 裡面很難看出個端倪,必須改用 MSBuild 才能看出脈絡。今天這篇文章,我將分享這個問題的細部分析,並提供解決方案。
... 繼續閱讀 ...
最近因為有客戶的 Infra 環境採用 OKD (The Community Distribution of Kubernetes that powers Red Hat OpenShift) 平台,為了能夠在我公司建立一套跟客戶一樣的環境,所以就自行架設了一套來用,大約花了兩天時間研究,雖然建置的過程不太順利,但發現越玩越熟就越覺得好用。還好我已經有 Kubernetes 的底子在,研究 OKD 其實觸類旁通,雖然有卡關,但還好都有解決。本篇文章就分享我的 OKD 3.11 建置過程與心得!
... 繼續閱讀 ...
Azure Container Registry (ACR) 是 Azure 雲端平台非常重要的基礎建設,不但可以用來儲存 Docker Images,也可以用來儲存 Helm Charts 在上面。除此之外,企業所需的身份認證授權功能也相當完整,但只要扯到認證授權,事情就會複雜許多。這篇文章我將深入探討 ACR 各種不同的認證授權方法,幫助企業導入 ACR 使用。
... 繼續閱讀 ...
昨天試用了一下 GitHub Codespaces 這套完全線上使用的整合開發環境,這套基於 Visual Studio Code 的雲端版本功能相當完整,所有在地端 Visual Studio Code 的設定,都可以全自動同步上去,所有擴充套件也都可以用。但唯一的不便之處,就是 Chrome 預設的 Ctrl-W
(關閉目前頁籤) 快速鍵,會自動覆蓋掉 Visual Studio Code 常用的 Ctrl-W
(關閉目前檔案),可是這個快速鍵又這麼常用,所以一不小心就會關閉線上編輯器。因此,我研究出兩種方法有效避免頁籤被關閉!
... 繼續閱讀 ...
昨天在 Kubernetes Summit 2020 主持了一場實戰工作坊,幫助大家體驗 Istio 強大的 Service Mesh 能力。今天在家抽空玩了一下原先由微軟主導的 Open Service Mesh (OSM),這套最近貢獻給 CNCF (雲端原生運算基金會),正式成為 CNCF 沙盒專案的成員之一,十分有發展潛力。本篇文章就帶大家試試這套 SMI 服務網格介面 (Service Mesh Interface) 實作。
... 繼續閱讀 ...
因為我現在每次 git commit 都會進行 GPG 簽章,第一次 commit 時會跳出一個視窗輸入 OpenPGP 的密鑰的密碼,接著會自動將 gpg-agent
程式跑在背景,在一定時間內就不用再次輸入密碼。不過 gpg-agent
預設快取時間只有 600
秒 (十分鐘),但我一天內不會每 10 分鐘 Commit 一次,這個快取功能形同虛設,完全沒用!這篇文章將分享如何調整預設值,讓你在一天內都不用再次輸入 GPG 密碼。
... 繼續閱讀 ...
我最近經常在 WSL 2 環境下開發,這樣不但可以大幅減少電腦的各種複雜配置與相依問題,有時候執行速度甚至比 Windows 還快。但我其中一台電腦這幾天卻出現了個詭異問題,想要執行 code .
卻會出現 run-detectors: unable to find an interpreter for /mnt/c/Program Files/Microsoft VS Code/Code.exe 的錯誤訊息,無法成功啟動 VSCode 執行,找了好一會兒才解決。
... 繼續閱讀 ...