記載著 Will 在網路世界的學習心得與技術分享 | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

使用 .NET CLI 快速建立 Web API 用戶端函式庫的方法

在 Visual Studio 2019 裡面使用含有 OpenAPI 規格的 Web API 已經是十分便利,只要規格寫的好,Web API 用戶端函式庫只要一秒鐘就可以產生。但其實這些好用的功能背後都是靠 MSBuild 與 NSwag 做到,今天花了一整天把所有技術細節釐清,釐清之後對這整套作法是如此的豁然開朗,感覺很棒。這篇文章我就來寫寫今日的研究心得!

... 繼續閱讀 ...

如何透過 PowerShell 快速建立 Windows 內建 VPN 連線並自動記憶密碼連線

有鑑於近日台灣 COVID-19 疫情 相當嚴峻,政府也在前幾日宣布全台疫情警戒升第三級,我們公司也在 2021/5/17 開始全員在家上班,以致於使用 VPN 的同仁暴增,進而也遇到許多連線問題。本篇文章我要來分享幾個快速建立 VPN 的 PowerShell 命令,幫助大家在不瞭解 VPN 背景知識的情況下,也能快速且正確的設定好 VPN 連線。

... 繼續閱讀 ...

使用 OpenSSL 與 cURL 檢查網站伺服器支援哪幾種 Cipher Suites

當我們從用戶端透過 TLS 協定連接伺服器時,用戶端會準備一組 Cipher Suites 清單給伺服器端,伺服器端必須選用一個強度最高的 Cipher 加密演算法回應,之後才會進行金鑰交換,並開始使用加密連線,確保網路安全。本篇文章將分享如何透過 OpenSSL 查詢有哪些 Cipher Suites 可用,並示範如何透過 cURL 指定特定 Cipher 進行連線與檢查伺服器是否支援特定 Cipher Suite 加密演算法清單。

... 繼續閱讀 ...

如何使用 Certbot 建立免費的 TLS/SSL 網域憑證並自動產生 PFX 憑證

我之前有寫過一篇 如何使用 Certbot 命令列工具建立免費的 TLS/SSL 頂層網域憑證 文章,當時的情境是我的域名是 頂層網域 (naked domains)(Top-Level Domain)(TLD),必須用「手動」方式申請。今天這篇文章,我要示範如何「全自動」申請與更新憑證,並自動產生 Kestrel 所需的 *.pfx (PKCS#12) 憑證。

... 繼續閱讀 ...

Jenkins on Windows 心得分享 (07):如何手動更新 Jenkins 伺服器所有外掛

當你已經安裝一大堆 Jenkins Plugins,想要全部自動更新,但是又連不到 Jenkins 指向的 Mirror Sites 的話,想必就只能手動更新了。本篇文章延續 Jenkins on Windows 心得分享 (06):如何指定 Mirror 鏡像網站下載外掛 的內容,特別補充如何手動更新 Jenkins 伺服器所有外掛(Plugins)。

... 繼續閱讀 ...

Jenkins on Windows 心得分享 (06):如何指定 Mirror 鏡像網站下載外掛

我們之前有個 Jenkins CI/CD 的導入顧問案,由於客戶是政府部門,客戶端的防火牆已經設定了無法連接到任何中國大陸的 IP 或 URL,但是 Jenkins 的更新伺服器預設會判定來自台灣的 IP 全部導向到清华大学Jenkins Mirror 伺服器,因此當你要安裝或更新 Plugins 外掛的時候,一定會連線失敗。也因為這樣,客戶那邊的 Jenkins Plugins 都將無法自動更新!不僅如此,安裝新的 Plugins 時通常也需要一併安裝相依外掛,因此各種困難接踵而來。這篇文章我將說明我們是如何解決這個難題的!

... 繼續閱讀 ...

Jenkins on Windows 心得分享 (05):如何將介面顯示語言設定為英文(en)

早期版本的 Jenkins 由於多國語系的設定完全依賴瀏覽器的語言設定自動判斷,為了要強制將介面調整為 English (英文) 還需要特別安裝 Chrome 擴充套件才能做到。不過新版的 Jenkins 已經不用這麼麻煩了,你只要加裝 Locale 外掛,就可以指定顯示語言。本篇文章也順便講解使用 Docker 建置 Jenkins 的完整過程。

... 繼續閱讀 ...

快速體驗建構在 Dapr 架構下的微服務應用程式並部署到 Kubernetes 叢集

Dapr (Distributed Application Runtime) 是一個分散式應用程式的引擎(Runtime),他幫助開發者能在微服務架構下建構事件驅動(event-driven)、高彈性(resilient)的分散式應用程式。他可以幫助你在打造微服務架構的同時,又能徹底簡化應用程式開發的複雜度,大幅降低服務與服務之間的耦合性,真的是非常漂亮!這篇文章我將分享如何透過一個簡單的例子(hello-kubernetes),讓大家瞭解 Dapr 的運作原理。

... 繼續閱讀 ...

如何使用 Certbot 命令列工具建立免費的 TLS/SSL 頂層網域憑證

許多有在玩 Angular 前端框架的人都知道,目前的 Angular 官網的正體中文版(https://angular.tw)都是由我負責維護。該網站我目前架設於 Azure App Service 上,我原本想用 Azure 上目前免費的 App Service 受控憑證,可惜他並不支援「裸網域」(naked domains),因此我就必須要改申請免費的 Let's Encrypt 網站伺服器憑證。

... 繼續閱讀 ...

ASP.NET Core 如何紀錄 Entity Framework Core 5.0 自動產生的 SQL 命令

在最近的幾個 Entity Framework Core 版本,對於 Logging (紀錄) 的撰寫方式一直在改變,大致上可區分成 EF Core 2.1, EF Core 3.0+EF Core 5.0 三種版本,這意味著你從網路上找到的資訊,很有可能是舊的,但很多人無法區別其差異,因為舊的寫法到了 EF Core 5.0 依然可以用,只是會被標示棄用而已。你應該也可以想像得到,越新的 EF Core 版本,寫法就會更簡單的,這篇文章我就來說說幾種不同的紀錄方法。

... 繼續閱讀 ...

新手上路 C# 原始碼產生器 (Source Generators)

最近迷上 C# 原始碼產生器 (Source Generators) 這門相當新穎的技術,跟以往常用的 T4 (Text Template Transformation Toolkit) 產生器技術不太一樣,這個 Source Generators 是屬於 Roslyn 編譯器的技術之一,讓你在專案建置的過程中,可以對正在編譯的 C# 原始碼進行增補,動態加入「額外」的原始碼,最後再編譯在一起,非常神奇又實用的技術,讓人非常有想像空間! 👍

... 繼續閱讀 ...