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

The Will Will Web

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

如何將現有 .NET Core 專案加入相對應的 xUnit 單元測試專案

在 Visual Studio 2017 開發工具裡,建立單元測試專案有好幾種方法,其中一種是將現有專案增加一個相對應的單元測試專案。在傳統 .NET Framework 專案中,很輕易的就可以建立完成,只要在任一類別上按下滑鼠右鍵,選擇「建立單元測試」即可。但在 .NET Core 專案中就沒那麼方便了,因為這個功能一直沒被實現。本篇文章將分享如何依據現有專案的程式碼,產生相對應的單元測試專案,一步一步帶大家了解建立單元測試專案的過程。

... 繼續閱讀 ...

如何自訂 ASP.NET Core Web API 的錯誤回應訊息

我看過有無數企業在設計 Web API 的時候,會將所有可能的回應訊息,無論成功或失敗,全部一律回應 HTTP 狀態碼 200 (OK)。但這樣的設計完全違反 RESTful 架構精神,我們應該盡可能透過狀態碼表明回應的狀態才對。明明是一份不 OK 的訊息,硬要回應 OK 真的很怪。我就來透過這篇文章,告訴你為什麼大家會這樣設計,以及怎樣設計才正確。

... 繼續閱讀 ...

發行 Angular Schematics 程式產生器與設定 .npmignore 的注意事項

昨天寫了一個小工具,可以自動將現有 Angular CLI 建立的專案,轉換成有 Hot Module Replacement (HMR) 功能的版本,只要簡單一個命令 ng add hmr-enabled 就可以搞定,非常方便。不過我在發布專案到 npm registry 的過程中,卻意外遺漏了幾個重要的檔案,原來是有檔案被 .npmignore 給忽略掉了,到了今天傍晚才修復。我們就立刻來看看這個錯誤是怎樣發生的!

... 繼續閱讀 ...

離線安裝完整 Angular 開發環境的標準作業流程 (大型企業適用)

這兩個月經常在新竹科學園區進行 Angular 企業內訓,有越來越多的企業意識到 Angular 帶來的高價值(High Value)與低總體成本(Low TCO)。不過,在高度資安的防護下,我經常需要協助學員「離線安裝」完整的 Angular 開發環境,而且必須在「無管理員身分」的權限下進行安裝。雖然我已經寫了不少相關文章,但環境設定上還是沒甚麼效率。今天這篇文章,我特地整理詳細的設定步驟,幫助大家更順利的設立 Angular 開發環境。

... 繼續閱讀 ...

Angular 結合 nginx 反向代理的 Docker 容器化封裝技巧

在微服務架構下,部署 Angular 應用程式與後端 Web API 應該切割成兩個不同的微服務。但具體的實現方式,通常會透過容器化技術來達成,實作上相對容易許多。像我們公司的特定專案,就是透過 Kubernetes 叢集化技術來實現這個目的。這篇文章,我將分享如何將 Angular 這類 SPA 框架,如何透過 nginx 反向代理與 Docker 容器化技術,徹底做到微服務化。將前後端分離的結果,可以幫助我們簡化 CI/CD 流程,同時降低系統之間的耦合性。

... 繼續閱讀 ...

如何使用 .NET Core 2.1 內建的 dev-certs 命令管理開發環境的自簽憑證

從 .NET Core 2.1 開始,.NET Core SDK 就內建了 SSL 憑證管理工具 (dotnet dev-certs),透過 dotnet new 建立的 ASP.NET Core 專案範本,Kestrel Web Server 也會預設啟用含有 HTTPS 的加密網站連結。以往我們在開發環境設立一張「有效的 SSL 憑證」還挺麻煩的,我之前還寫過好幾篇文章分享。今天我就來介紹 .NET Core SDK 2.1 內建的標準作法。

... 繼續閱讀 ...

前端工程研究:如何在企業內部使用「完全離線」的方式安裝 npm 套件

許多企業在設法導入前端工程的過程中,最大的進入障礙竟然是「無法使用 npm 安裝套件」。因為真的有很多企業在嚴格執行資訊安全政策的情況下,所有開發者都無法從公司內部環境連到 npm 網站下載套件。這篇文章,我將分享幾個小技巧,幫助企業開發人員可以在內部實現簡易的 npm 離線快取。

... 繼續閱讀 ...

我的 Windows Subsystem for Linux (WSL) 終極開發人員配置 - 2018 版

我的個人電腦安裝了許多開發套件與工具,今天這篇文章我想來分享我這台的 Windows Subsystem for Linux (WSL) 環境設定,個人認為我已經把我的 WSL 調整的還不錯了,不管是跑 Node.js, Angular CLI, Docker CLI, Kubernetes CLI (kubectl), VIM 等等,都非常順,執行速度也不差,有興趣的人,可以繼續看下去。

... 繼續閱讀 ...

如何透過 Git Credential 管理透過 HTTP 通訊協定存取儲存庫的帳號密碼

一般在使用 Git 存取遠端儲存庫時,大部分的人都使用 SSH 或 HTTP(S) 通訊協定。如果使用 SSH 協定,你可以設定金鑰認證,如此一來不但不用每次都輸入密碼,連線過程還可以全程加密。但是若用 HTTP(S) 的話,就沒那麼方便了,預設每次都需要輸入帳號密碼進行驗證。更有甚者,如果 Git 平台設定了多因素驗證/兩階段驗證,那就更難記憶密碼。還好 Git 內建提供了認證儲存機制 (Credential Storage),可以幫你暫存常用的帳號密碼,輕鬆幫你做到自動帳號密碼輸入。本篇文章教你認識有哪些認證管理工具,還有如何管理這些帳號密碼。

... 繼續閱讀 ...

關於 Windows 重大 CredSSP 更新導致遠端桌面連線無法連接的解決辦法

最近微軟 2018 三月的資安公告釋出了數個安全性更新,也隨著最近的 Windows Update 一同發佈,同時也解決了一個 高安全性風險CVE-2018-0886 弱點。這個弱點會讓你在透過 CredSSP 進行身分驗證的時候遭遇攻擊,可讓駭客執行任意程式碼,影響範圍遍及 Microsoft Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8.1 and RT 8.1, Windows Server 2012 and R2, Windows 10 Gold, 1511, 1607, 1703, and 1709 Windows Server 2016 and Windows Server, version 1709 等版本。首當其衝的就是 遠端桌面連線 (RDP) 正好就會用到 CredSSP 來進行認證,所以在座的各位都是高危險群啊!本篇文章將說明如何解決這個問題!

... 繼續閱讀 ...