All posts by will | The Will Will Web

The Will Will Web

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

如何使用 .NET CLI 快速產生 ASP․NET Core 的 Controllers 與 Views 程式碼

我們在 Visual Studio 2019 開發 ASP․NET Core 的時候,都可以透過 [加入] / [控制器] 的方式,很便利的快速產生 Controllers 與 Views 程式碼,如果已經有現成的 Models 模型類別存在,還能快速的完成 CRUD 等實作。可惜在 Visual Studio Code 裡面,似乎就沒有相對應的工具可用,這對使用 macOS 或 Linux 的開發者來說,就顯得有點不太方便。不過,微軟官方其實有提供一套 dotnet-aspnet-codegenerator .NET CLI 全域工具,所做的事情跟 Visual Studio 2019 在做的事情完全一樣,本篇文章就來說說這套工具的用法,以及常見的地雷與注意事項。

... 繼續閱讀 ...

如何強制關閉 Azure Web Apps 內建支援的 PHP 執行環境

前幾天有個朋友告知部署在 Azure Web App 的網站被駭客入侵,可能被植入木馬後門之類的程式,我上去查看之後發現,果然被寫入了一個編碼過的 PHP 程式,確認為後門程式。明明是一台只有跑 ASP.NET 的網站,隨便被植入一個 PHP 檔案,竟然也能被執行。而且還沒有關閉的管道,連 Azure Portal 都無法設定關閉。本篇文章將分享強制關閉 PHP 的方法,如果有人也將網站跑在 Azure Web App 網站上,建議花點時間設定一下。

... 繼續閱讀 ...

從館長求救事件談甲方心態:為何甲方總是找不到好的乙方

這幾天因為館長的 "欸~" 直播在資訊軟體圈鬧得沸沸揚揚。由於館長是台灣知名網紅(KOL),架設電商網站所迎來的高流量是完全可以預期的,但他們外包製作的網站上線後撐不住區區數萬人流量,網站時常斷線停擺,工程款項持續追加,導致館長發飆,在直播中求助廣大網友幫助,希望能提供他們一些建議。這篇文章我不打算從「技術」的角度提供「效能調校」的建議,畢竟我並沒有參與網站建置,技術建議不能亂給。反之,我想從「為何甲方總是找不到好的乙方」這個角度著手,剖析問題發生的原因與解決方案。

... 繼續閱讀 ...

如何讓 cURL 可以連接自簽憑證提供的 TLS/SSL 加密連線網站

當我在 Linux 環境下開發或測試 ASP.NET Core 應用程式時,經常會需要用 curl 命令快速測試或取得網站內容,這時如果你連上 https:// 加密連線網址,就會立刻遇到 curl: (60) SSL certificate problem: unable to get local issuer certificate 的問題,關於這個問題我打算用這篇文章徹底搞定它。

... 繼續閱讀 ...

使用 WSL 2 與 Docker Desktop 架設 Kubernetes 多節點叢集環境 (KinD)

在學習 Kubernetes 的時候,單一節點的 Kubernetes 測試環境已經可以讓你理解許多物件的建立與操作,對於「應用程式的開發人員」來說已經足夠。由於 Kubernetes 提供不同層級的「抽象」,照理說在不特別理解 Kubernetes 配置的情況下,應用程式都應該能正常運行才對。但如果想測試一些只有多台節點才能測試的功能,就需要相對完整的叢集才能測試了。本篇文章將分享 KinD (Kubernetes in Docker) 這套工具,可以幫助你在幾秒內成功架設擁有多節點的 Kubernetes 叢集環境。

... 繼續閱讀 ...

如何在 EF Core 3.1 的模型驗證方法中注入 ServiceCollection 中的服務

由於 .NET Core 大量的使用 DI 技術,所有註冊到 DI 容器(ServiceCollection)的服務,幾乎都可以用「注入」的方式取得物件。只不過有些類別不容易用建構式注入的方式取得服務,這篇文章將分享如何在 EF Core 3.1 的模型驗證方法中注入 ServiceCollection 裡的任何服務。

... 繼續閱讀 ...

如何在 EF Core 3.1 的 Code First 進行資料庫移轉時指定資料庫定序

最近在我的台灣 .NET 技術愛好者俱樂部臉書社團有人問到如何在 EF Core 3.1 的 Code First 進行資料庫移轉時指定資料庫定序 (Database Collation)。我自己也嘗試了一下搜尋,網路上確實都找不到相關資料,但我覺得「理論上」應該很容易辦到,因此自己實驗了一下,也研究出方法,這篇文章將分享我的實際作法。

... 繼續閱讀 ...

使用 Docker 執行 SQL Server on Linux 容器之常用工具與命令

最近因為正在進行【ASP․NET Core 3 開發實戰:從入門到進階】課程,上課的學員中使用 macOS 來學習 .NET Core 的人越來越多,當練習到 ASP․NET Core 搭配 Entity Framework Core 的時候,因為會用到 SQL Server 進行練習,所以本篇文章將分享如何利用 Docker 執行 SQL Server on Linux 容器,並分享幾個常用的工具命令與使用範例。

... 繼續閱讀 ...

如何在 Windows 平台打造完美的 Go 開發環境 (WSL 2)

自從 Windows 升級到 Windows 10 Version 2004 之後,因為可以採用效能大幅提昇的 WSL 2 執行環境,像是 .NET Core, GoDocker 都會全部跑在 WSL 2 的 Linux 下。今天這篇文章,我將介紹如何在 Windows 平台打造完美的 Go 開發環境,不但可以讓你享受 Linux 平台執行時無比的順暢,更能享受 Windows 平台絕佳的 VSCode 開發體驗。

... 繼續閱讀 ...

使用 WSL 2 打造優質的多重 Linux 開發環境

由於微軟這次推出 WSL 2 全新架構,可以讓你將 Linux 完整的跑在一個羽量級的 Hyper-V 虛擬機器中,不但可以用有完整的 Linux 核心、完整的 system call 相容性、啟動時花費更少的記憶體,也大幅提昇了檔案 I/O 存取的效能與網路管理的便利性。這篇文章將帶你一步一步認識 WSL 2,並且打造出優質的多重 Linux 開發環境。

... 繼續閱讀 ...

當 .NET Core 執行在 Linux 或 Docker 容器中如何優雅的結束

當我們將 .NET Core 跑在 Linux 或 Docker 容器中,我們不但希望程式可以穩定的執行,當程式需要結束的時候,更應該考慮如何「優雅的結束」(Graceful Shutdown)。這部分資訊很難在 docs.microsoft.com 或 GitHub 原始碼專案中找到,本篇文章將分享 .NET Core 如何捕捉作業系統送出的 TERM 訊號,在關閉程式前可以妥善處理程式結束前該做的準備。

... 繼續閱讀 ...