八月 2021 | The Will Will Web

The Will Will Web

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

設定 Angular 專案使用 ESLint 進行更嚴格的程式碼撰寫風格檢查

早期 Angular CLI 建立的專案都有內建 TSLintcodelyzer,但從 Angular CLI v11 開始建議大家開始轉移到 Angular ESLint,直到 Angular CLI v12 直接拔除所有 Linter 設定。本篇文章我將介紹如何從現有 TSLint 的 Angular 專案升級到改用 Angular ESLint 進行撰寫風格檢查,以及從完全沒有 ESLint 的 Angular 專案如何加入 ESLint 的完整流程。

... 繼續閱讀 ...

使用 MSBuild 建置方案檔(sln)與建置專案檔(csproj)的陷阱與注意事項

我一年大概都會幫幾家企業導入 Azure DevOps Server 平台,最近幫客戶導入的過程遇到了一個難題。一個方案檔中有 9 個專案,其中有 4 個 .NET Framework 4.7.2 類別庫專案、1 個 .NET Framework 4.7.2 的 ASP.NET Web Forms 專案、2 個 .NET Core 2.1 類別庫專案、1 個 .NET Standard 2.0 專案、2 個 .NET Core 2.1 類別庫專案、1 個 .NET Core 2.1 的 ASP.NET Core 專案。很少看到一個案子用這麼混搭的技術,而這個案子要做 CI/CD 確實也遇到了問題。這篇文章我將說明問題與解決方法!

... 繼續閱讀 ...

設定 Angular 專案使用 husky 簡化 Git hooks 設定並用 Prettier 統一風格

我們在團隊中開發 Angular 應用程式,經常需要同步每個成員的程式碼格式,與其訂定 Coding Style (代碼風格),倒不如直接用工具強制所有成員用一致的風格進行程式碼排版。本篇文章我將示範用 husky 搭配 prettier 來設定 Git 的 pre-commit hook,讓每個人在 git commit 之前就自動將變更的程式碼進行排版。

... 繼續閱讀 ...

使用新版 AzCopy v10 的注意事項與使用教學

最近在使用 AzCopy 的時候,發現怎麼跟以前差這麼多,這才發現原來最近出現了大改版,命令列的參數都跟以往不一樣了。這個新版改變蠻大的,我覺得對一個用過舊版的人來說,改用新版的第一印象真的不太好,研究的過程中發現了許多地雷,也發現許多優點,所以覺得有必要撰文分享一下心得。

... 繼續閱讀 ...

如何將 Adaptive Cards Designer 設計好的範本訊息傳送到 Teams 頻道中

微軟有個 Adaptive Cards 語言,他可以讓你可以在不同的應用程式之間使用 JSON 宣告出一個跟平台框架無關的 UI 介面,所以針對一些輕量的 UI 介面,例如 Microsoft Teams, Bot Framework, Windows Timeline, Outlook Actionable Messages 之類的介面,就非常適合用 Adaptive Cards 來宣告 UI 介面。這篇文章我打算介紹 Adaptive Cards 如何用在 Microsoft Teams 的頻道中。

... 繼續閱讀 ...

如何在 Spring Boot 產製專案的 API 文件並自動合併到 site 文件站台

我前陣子分享過 如何讓 Spring Boot 與 Maven 專案成功產製文件站台 文章,當時由於 Spring Boot 預設的 maven-site-plugin v3.3 版本有問題,導致無法成功產生 site 文件站台,因此我們必須明確定義 maven-site-plugin版本定義才正常。這篇文章我打算分享如何在 site 文件站台上加入 Javadoc 產生的 API 文件,更加豐富我們專案的開發文件!

... 繼續閱讀 ...

利用 SynchronizationContext 讓 ASP.NET 背景執行緒取用 HttpContext 資訊

我們在寫 ASP.NET (.NET Framework) 的時候,可能會需要利用非同步作業在背景執行一些工作,同時可能也需要偶爾取用 HttpContext 相關資訊。事實上當我們在 ASP.NET (.NET Framework) 使用 await 等待一個 Task 時,會自動紀錄當下的 SynchronizationContext,並在 Task 完成工作後,取得原始 執行緒 (Thread) 中的資訊。但是如果我們也想在 Task 中取用原本執行緒的內容 (例如 HttpContext 資訊),我們就需要學會如何自行利用 SynchronizationContext 來取用原始執行緒中的內容。今天這篇文章,我將透過一段簡易的程式碼與一個實際應用情境,說明 SynchronizationContext 的運作方式,讓你知道如何正確的使用它。

... 繼續閱讀 ...

ASP.NET Core 如何偵測用戶端已斷線並自動取消非同步方法執行

我今天在「C# 開發實戰:非同步程式開發技巧」課程中有學員提問,如何偵測用戶端已斷線並自動取消非同步方法執行。事實上 ASP.NET (.NET Framework) 與 ASP.NET Core 的實作方式相當類似,今天這篇文章我就來分享 ASP.NET Core 的實作方式,幫助你有效偵測用戶端已斷線,並自動取消非同步方法執行。

... 繼續閱讀 ...

如何讓 Spring Boot 與 Maven 專案成功產製 site 文件站台

Apache Maven 有個 site 生命週期,定義出你要建立專案文件站台所需的各種階段,並讓你透過瀏覽器查看 Java 專案的完整資訊,相當方便。不過我透過 Spring Initializr 建立的專案,預設卻無法產生網站(site),錯誤訊息也有點奇怪,逼的我還要去研究 Maven 才終於理解錯誤的原因。這篇文章我就來交代整個過程,以及解決方案。

... 繼續閱讀 ...

如何設定 Visual Studio Code 開發 Spring Boot 的時候可以讀取 .env 檔案

使用 Visual Studio Code 開發 Spring Boot 的時候,我們在 application.yml 檔案中會放入一些環境變數,每次啟動應用程式的時候都要手動設定環境變數才能正常啟動,使用上比較不方便。本篇文章我將說明如何設定 Visual Studio Code 在啟動 Spring Boot 應用程式時,可以自動載入 .env 檔案,讓應用程式啟動時可以自動載入環境變數,增加開發的方便性。

... 繼續閱讀 ...