All posts tagged '.net core' | 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 在做的事情完全一樣,本篇文章就來說說這套工具的用法,以及常見的地雷與注意事項。

... 繼續閱讀 ...

如何在 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)。我自己也嘗試了一下搜尋,網路上確實都找不到相關資料,但我覺得「理論上」應該很容易辦到,因此自己實驗了一下,也研究出方法,這篇文章將分享我的實際作法。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

如何快速建立 Oracle Database Server 12c R2 資料庫容器並建立使用者

最近越來越多 ASP.NET Core 企業內訓需求,有客戶提到希望能在上課的時候展示 Entity Framework Core 與 Oracle 資料庫的整合能力,我第一時間就想到要在本機安裝 Oracle 資料庫容器起來,快速建立可開發測試的環境。不過,雖然建立 Oracle 資料庫容器相當簡單方便,但不太熟悉 Oracle 資料庫特性的我,卻連第一步「建立使用者」都沒辦法成功,錯誤訊息也相當難以理解,花了一些時間才找到解決之道。

... 繼續閱讀 ...

如何在 VSCode 設定完整的 .NET Core 建置、發行與部署工作

現在越來越多專案改用 .NET Core 進行開發,而且大部分都部署在 Linux 平台,不過開發環境一直都是在 Windows 平台之上,要怎樣有效率的整合本地端的開發與建置工作,甚至於設定可以輕鬆將發行檔案到遠端的部署流程,都是一關關的考驗。本篇文章我打算分享我這邊 VSCode 的設定方式,看我如何將常見的命令自動化。

... 繼續閱讀 ...

如何將 SCD 部署的 .NET Core 應用程式封裝單一可執行檔 (Warp)

我們知道 .NET Core 應用程式有兩種部署方式,一種叫 FDD (框架相依的部署),另一種叫 SCD (自封式部署)。當使用 SCD 部署的時候,可以直接指定平台(RID)進行封裝,不過缺點是檔案數量檔案大小都非常驚人,唯一的好處就是目的電腦不用安裝 .NET Core Runtime 就能執行程式。本篇文章我將介紹一套用 Rust 程式語言寫成的 Warp 工具,幫助你將檔案封裝成單一執行檔。

... 繼續閱讀 ...

如何在 .NET Core 主控台專案中使用 DI (相依注入) 並取得 ILogger 服務

速度快錯了嗎!疑?這篇文章的起頭好怪。因為今天在寫 .NET Core 程式的時候,一份很簡單的程式碼,卻怎樣都無法正確執行,嘗試了各種寫法還是鬼打牆,寫到有點懷疑人生。今天我就順便把 .NET Core 中設定 DI 與使用 ILogger 物件的過程詳細交代一遍,請看官務必看到最後喔!

... 繼續閱讀 ...

如何在 Visual Studio 2017 對 .NET Core 專案啟用分析器功能

在 Visual Studio 2017 裡面,有個好用的「分析器」功能,可以幫助開發人員寫好程式。他的作法是在背景執行一連串的程式碼分析,透過一組規則集 (RuleSet) 對專案中的程式碼進行剖析與檢查,如果有發現任何問題,就會在「錯誤清單」中呈現資訊、警告或錯誤,並且提供部分規則的自動修復功能。不過,在 Visual Studio 2017 對 .NET Core 專案的支援度並沒有太多文件著墨,我花了好多時間才研究出背後的差異之處。我打算透過本篇文章分享如何在 Visual Studio 2017 啟用與設定 .NET Core 專案的程式碼分析器功能。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

如何使用 .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 內建的標準作法。

... 繼續閱讀 ...

如何在多個 .NET Core SDK 版本之間進行切換 (global.json)

由於同一台電腦可以安裝多個版本的 .NET Core SDK,每個版本的 SDK 都會包含完整的工具組、執行環境、組件庫與編譯器等等,所以蠻多人詢問過我這個問題:「當安裝了許多不同版本的 .NET Core SDK 之後,要如何才能使用舊版 dotnet 命令,執行 dotnet newdotnet build 之類的命令。」這部分其實並不困難,只要設定 global.json 即可。

... 繼續閱讀 ...