The Will Will Web - C# 記載著 Will 在網路世界的學習心得與技術分享 https://blog.miniasp.com/ http://www.rssboard.org/rss-specification BlogEngine.NET 3.3.7.0 zh-TW https://blog.miniasp.com/opml.axd https://blog.miniasp.com/syndication.axd Will Huang The Will Will Web 24.567110 120.970500 使用 Directory.Build.props 與 Directory.Build.targets 自動化 .NET 建置作業 <p>在多專案的 .NET 團隊合作中,手動安裝工具和設定環境常常導致流程不一致,甚至影響效率。透過善用 <code>Directory.Build.props</code> 和 <code>Directory.Build.targets</code>,我們可以實現自動化的建置流程,讓每位團隊成員只需執行一次 <code>dotnet build</code>,就能完成工具安裝、husky hooks 配置,以及程式碼風格檢查,確保開發環境的一致性與便利性。這篇文章將帶你了解這兩個檔案的差異與應用,並示範如何利用它們來自動化 Husky.Net 的安裝與設定。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2025/10/26/Automating-build-operations-with-DirectoryBuildprops-and-DirectoryBuildtargets#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2025/10/26/Automating-build-operations-with-DirectoryBuildprops-and-DirectoryBuildtargets [email protected] https://blog.miniasp.com/post/2025/10/26/Automating-build-operations-with-DirectoryBuildprops-and-DirectoryBuildtargets#comment https://blog.miniasp.com/post.aspx?id=e1f90e64-b0da-475a-84fa-a9bb85cea059 週日, 26 十月 2025 11:41:00 +0000 .NET Core .NET Framework C# Directory.Build.props Directory.Build.targets dotnet build will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=e1f90e64-b0da-475a-84fa-a9bb85cea059 https://blog.miniasp.com/trackback.axd?id=e1f90e64-b0da-475a-84fa-a9bb85cea059 https://blog.miniasp.com/post/2025/10/26/Automating-build-operations-with-DirectoryBuildprops-and-DirectoryBuildtargets#comment https://blog.miniasp.com/syndication.axd?post=e1f90e64-b0da-475a-84fa-a9bb85cea059 如何在 .NET Core、.NET 5+ 與 ASP.NET Core 正確使用 Big5 編碼 <p>由於從 .NET Core 1.0 開始,就沒有自動載入 <code>BIG5</code> 編碼的 <code>Encoding</code> 資料,所以你沒辦法直接透過 <code>Encoding.GetEncoding("Big5")</code> 取得 <code>Encoding</code> 物件。在 .NET Core 3.1 之前,還需要須額外安裝 <code>System.Text.Encoding.CodePages</code> 套件才行。不過,從 .NET 5 開始,這個套件成為了 .NET SDK 的一部分,不再需要額外安裝。但即便如此,你還是要特別執行一段註冊以使用此編碼。接下來,我們將深入探討如何註冊這些編碼並正確使用它們在不同的場景中。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2025/03/05/How-to-correctly-use-Big5-encoding-in-NET-Core#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2025/03/05/How-to-correctly-use-Big5-encoding-in-NET-Core [email protected] https://blog.miniasp.com/post/2025/03/05/How-to-correctly-use-Big5-encoding-in-NET-Core#comment https://blog.miniasp.com/post.aspx?id=6e70092d-175f-4c7f-b33c-7264d28b6075 週三, 5 三月 2025 06:11:00 +0000 .NET Core ASP.NET Core C# big5 encoding will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=6e70092d-175f-4c7f-b33c-7264d28b6075 https://blog.miniasp.com/trackback.axd?id=6e70092d-175f-4c7f-b33c-7264d28b6075 https://blog.miniasp.com/post/2025/03/05/How-to-correctly-use-Big5-encoding-in-NET-Core#comment https://blog.miniasp.com/syndication.axd?post=6e70092d-175f-4c7f-b33c-7264d28b6075 撰寫不用 async await 的 C# 非同步方法並使用 Unwrap 方法簡化程式碼 <p>經 <a href="https://github.com/dotnet/BenchmarkDotNet">BenchmarkDotNet</a> 實測驗證<a href="https://share.linqpad.net/iruj6t.linq">發現</a>,只要在現有的非同步方法加上 <code>async</code>/<code>await</code> 關鍵字,其方法的執行效能就有可能會降低 <code>2,700</code> 倍之多。這是因為 <code>async</code>/<code>await</code> 關鍵字會讓 C# 編譯器在編譯程式時,會將非同步方法轉換成一種狀態機的實作,這樣的轉換會增加程式的執行時間。因此,我們在大多數「函式庫」中的程式碼,幾乎都不會使用 <code>async</code>/<code>await</code> 關鍵字來撰寫程式。然而我們在函式庫中實作程式時,是有可能遇到多次非同步等待的情況,此時我們就可以使用 <code>TaskExtensions.Unwrap</code> 擴充方法來簡化寫法,今天這篇文章我就來說說這個開發技巧。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2024/10/01/Writing-C-Sharp-asynchronous-methods-without-async-await-and-simplifying-code-using-the-Unwrap-method#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2024/10/01/Writing-C-Sharp-asynchronous-methods-without-async-await-and-simplifying-code-using-the-Unwrap-method [email protected] https://blog.miniasp.com/post/2024/10/01/Writing-C-Sharp-asynchronous-methods-without-async-await-and-simplifying-code-using-the-Unwrap-method#comment https://blog.miniasp.com/post.aspx?id=a9e95f89-7bcf-468c-97b0-08e2f33887f4 週二, 1 十月 2024 01:33:00 +0000 C# async Task Unwrap will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=a9e95f89-7bcf-468c-97b0-08e2f33887f4 https://blog.miniasp.com/trackback.axd?id=a9e95f89-7bcf-468c-97b0-08e2f33887f4 https://blog.miniasp.com/post/2024/10/01/Writing-C-Sharp-asynchronous-methods-without-async-await-and-simplifying-code-using-the-Unwrap-method#comment https://blog.miniasp.com/syndication.axd?post=a9e95f89-7bcf-468c-97b0-08e2f33887f4 使用 C# 8.0 Async Streams 實現非同步串流 ASP.NET Core Web API <p>C# 8.0 引入了一個 <a href="https://github.com/dotnet/csharplang/blob/main/proposals/csharp-8.0/async-streams.md">Async Streams</a> (非同步串流) 的語言特性,這個特性讓我們可以做到許多以前做不到的事,若用在 ASP.NET Core Web API 上面,你就可以很輕鬆的實現 API 資料串流功能,讓你可以透過「非同步」的方式有效率的處理大量資料。由於這個概念太過前衛,所以我們先從基本的語法開始,然後再來看看如何應用在 ASP.NET Core Web API 上面。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2024/09/27/Implementing-Async-Streams-in-ASPNET-Core-Web-API#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2024/09/27/Implementing-Async-Streams-in-ASPNET-Core-Web-API [email protected] https://blog.miniasp.com/post/2024/09/27/Implementing-Async-Streams-in-ASPNET-Core-Web-API#comment https://blog.miniasp.com/post.aspx?id=5d49c9c7-ce3a-4b4e-88ff-dfb77e2fd885 週五, 27 九月 2024 03:08:00 +0000 ASP.NET Core ASP.NET Web API C# c# C# 8.0 async asp.net core web api Async Streams IAsyncEnumerable will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=5d49c9c7-ce3a-4b4e-88ff-dfb77e2fd885 https://blog.miniasp.com/trackback.axd?id=5d49c9c7-ce3a-4b4e-88ff-dfb77e2fd885 https://blog.miniasp.com/post/2024/09/27/Implementing-Async-Streams-in-ASPNET-Core-Web-API#comment https://blog.miniasp.com/syndication.axd?post=5d49c9c7-ce3a-4b4e-88ff-dfb77e2fd885 如何透過 LINQPad 撰寫自動化作業並搭配 CI 自動執行 <p>我現在大多數自動化的小工具都是使用 <a href="https://www.linqpad.net/">LINQPad</a> 來撰寫,執行速度快且管理方便,但是在 CI/CD 環境中,LINQPad 並不是一個常見的工具,還好 LINQPad 有提供 <a href="https://www.linqpad.net/lprun.aspx">LPRun</a> 工具,可以直接把現成的 <code>*.linq</code> 檔案直接拿來當成腳本執行,因此拿來 CI 的環境用是非常方便的,完全可以當作 C# 腳本來使用。這篇文章我就來介紹一下 <code>LPRun</code> 使用的方式。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2024/07/18/How-to-run-LINQPad-in-CI-CD-using-LPRun8#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2024/07/18/How-to-run-LINQPad-in-CI-CD-using-LPRun8 [email protected] https://blog.miniasp.com/post/2024/07/18/How-to-run-LINQPad-in-CI-CD-using-LPRun8#comment https://blog.miniasp.com/post.aspx?id=8c342b37-9b9f-4713-8147-5387b704a4df 週四, 18 七月 2024 15:30:00 +0000 Azure DevOps C# DevOps LINQPad will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=8c342b37-9b9f-4713-8147-5387b704a4df https://blog.miniasp.com/trackback.axd?id=8c342b37-9b9f-4713-8147-5387b704a4df https://blog.miniasp.com/post/2024/07/18/How-to-run-LINQPad-in-CI-CD-using-LPRun8#comment https://blog.miniasp.com/syndication.axd?post=8c342b37-9b9f-4713-8147-5387b704a4df 取得 .NET 8 應用程式的版本資訊必須注意的兩三事 <p>我前陣子幫客戶開發一個 Windows Forms 應用程式,使用 .NET 8 來開發,不過在案子的最後一刻,客戶要求要加上一個「版本資訊」的功能,這個功能要顯示目前程式的版本號。這個功能實在是不常寫,沒想到還真的有點地雷,因為跟 .NET Framework 有點不太一樣了。這篇文章就來分享一下我在開發過程中遇到的問題,以及解決方法。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2024/06/05/How-to-Get-FileVersionInfo-of-a-NET-8-App#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2024/06/05/How-to-Get-FileVersionInfo-of-a-NET-8-App [email protected] https://blog.miniasp.com/post/2024/06/05/How-to-Get-FileVersionInfo-of-a-NET-8-App#comment https://blog.miniasp.com/post.aspx?id=632f5e11-5913-4d13-9c8c-714b56fb6532 週三, 5 六月 2024 15:59:00 +0000 .NET Core .NET Framework C# FileVersionInfo Windows Forms will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=632f5e11-5913-4d13-9c8c-714b56fb6532 https://blog.miniasp.com/trackback.axd?id=632f5e11-5913-4d13-9c8c-714b56fb6532 https://blog.miniasp.com/post/2024/06/05/How-to-Get-FileVersionInfo-of-a-NET-8-App#comment https://blog.miniasp.com/syndication.axd?post=632f5e11-5913-4d13-9c8c-714b56fb6532 如何攔截並記錄 HttpClient 發出的所有 HTTP Request 與 Response 資料 <p>在 .NET 要呼叫 REST API 時,最常使用的就屬 <a href="https://learn.microsoft.com/zh-tw/dotnet/api/system.net.http.httpclient?view=net-8.0&amp;WT.mc_id=DT-MVP-4015686">HttpClient</a> 類別莫屬,但有時候真的想看他到底送出了什麼 HTTP 封包,或是收到了什麼 HTTP 回應 (原始內容),這時候就需要一個方法來攔截並記錄實際 HTTP 傳送的 Request 與 Response 封包內容。其實是有方法的,這篇文章就來介紹如何實作。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2024/04/26/Use-DelegatingHandler-in-HttpClient-to-Debug-HTTP-package#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2024/04/26/Use-DelegatingHandler-in-HttpClient-to-Debug-HTTP-package [email protected] https://blog.miniasp.com/post/2024/04/26/Use-DelegatingHandler-in-HttpClient-to-Debug-HTTP-package#comment https://blog.miniasp.com/post.aspx?id=102f9960-1208-426a-979d-cf9d6a44ac84 週五, 26 四月 2024 15:55:00 +0000 .NET Core C# httpclient http will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=102f9960-1208-426a-979d-cf9d6a44ac84 https://blog.miniasp.com/trackback.axd?id=102f9960-1208-426a-979d-cf9d6a44ac84 https://blog.miniasp.com/post/2024/04/26/Use-DelegatingHandler-in-HttpClient-to-Debug-HTTP-package#comment https://blog.miniasp.com/syndication.axd?post=102f9960-1208-426a-979d-cf9d6a44ac84 使用 .NET 8.0 與 Azure Functions Core Tools 開發與部署函式應用程式 <p>我一直以來都是 Serverless 架構的信徒,因為實在是不太想自己管伺服器,我從 2018 年就開始採用 Azure Functions 技術,到目前為止歷經了 4 個大版本,到現在終於算是穩定些了。不過即便到目前為止,你要是照著官方文件下去設定,肯定會在很多不同的環節鬼打牆,地雷一直都沒有少過。這篇文章我將介紹如何使用 <a href="https://dotnet.microsoft.com/en-us/?WT.mc_id=DT-MVP-4015686">.NET 8.0</a> 與 <a href="https://github.com/Azure/azure-functions-core-tools">Azure Functions Core Tools</a> 來開發函式應用程式,並說明如何部署應用程式到 Azure App Service 使用 Consumption Plan (<code>Y1</code>) 方案來執行!</p><p>... <a class="more" href="https://blog.miniasp.com/post/2024/03/19/Develop-and-Deploy-Function-App-using-Azure-Functions-Core-Tools#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2024/03/19/Develop-and-Deploy-Function-App-using-Azure-Functions-Core-Tools [email protected] https://blog.miniasp.com/post/2024/03/19/Develop-and-Deploy-Function-App-using-Azure-Functions-Core-Tools#comment https://blog.miniasp.com/post.aspx?id=1bad75e8-cb4e-4f75-bd84-58e368bb1688 週二, 19 三月 2024 06:11:00 +0000 .NET Core C# Microsoft Azure Azure Functions Core Tools Azure Functions Azure will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=1bad75e8-cb4e-4f75-bd84-58e368bb1688 https://blog.miniasp.com/trackback.axd?id=1bad75e8-cb4e-4f75-bd84-58e368bb1688 https://blog.miniasp.com/post/2024/03/19/Develop-and-Deploy-Function-App-using-Azure-Functions-Core-Tools#comment https://blog.miniasp.com/syndication.axd?post=1bad75e8-cb4e-4f75-bd84-58e368bb1688 如何使用 .NET 的 Azure AI Vision SDK 來替程式加上「視覺」功能 <p>我最近寫了一個<a href="https://www.youtube.com/watch?v=jknJE_QymJc">小程式</a>,幫助我自動化審核 LINE 社群(OpenChat)的加入申請,由於 LINE 社群並沒有提供 API 可以串接,而我的審核數量又非常大,因此我就想到了透過 OCR 辨識的方式來進行自動化。不過找了幾個免費的 OCR 套件,都沒有辦法很可靠的識別截圖中的文字,直到我嘗試了 <a href="https://azure.microsoft.com/en-us/products/ai-services/ai-vision?WT.mc_id=DT-MVP-4015686">Azure AI Vision</a> 服務才眼睛為之一亮,這套產品的 <strong>Image analysis</strong> 功能品質極高,費用也極低,實際開發出東西後,我覺得這個服務真的非常值得推薦給大家。這篇文章我就帶大家用 .NET 8 簡單上手這個好用的雲端服務!</p><p>... <a class="more" href="https://blog.miniasp.com/post/2023/12/19/Add-Vision-feature-to-your-NET-program-using-Azure-AI-Vision-SDK#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2023/12/19/Add-Vision-feature-to-your-NET-program-using-Azure-AI-Vision-SDK [email protected] https://blog.miniasp.com/post/2023/12/19/Add-Vision-feature-to-your-NET-program-using-Azure-AI-Vision-SDK#comment https://blog.miniasp.com/post.aspx?id=66454bc1-43e1-4a7f-b9e2-ab703c39a79a 週二, 19 十二月 2023 15:59:00 +0000 .NET Core AI C# Microsoft Azure Azure AI Vision LINE OpenChat will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=66454bc1-43e1-4a7f-b9e2-ab703c39a79a https://blog.miniasp.com/trackback.axd?id=66454bc1-43e1-4a7f-b9e2-ab703c39a79a https://blog.miniasp.com/post/2023/12/19/Add-Vision-feature-to-your-NET-program-using-Azure-AI-Vision-SDK#comment https://blog.miniasp.com/syndication.axd?post=66454bc1-43e1-4a7f-b9e2-ab703c39a79a 如何在 VS Code 順利啟用測試總管 (Test Explorer) 測試 .NET 應用程式 <p>我最近在嘗試使用 <a href="https://github.com/features/copilot">GitHub Copilot</a> 來撰寫單元測試,而在使用的過程中,我發現 <a href="https://code.visualstudio.com/">Visual Studio Code</a> 的測試總管 (Test Explorer) 竟然抓不到我專案中的測試案例,研究了一下才發現是 <a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.dotnet-test-explorer">.NET Core Test Explorer</a> 沒有正確設定導致的。不過,其實 <a href="https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit">C# Dev Kit</a> 擴充套件本來就內建了 C# 的測試轉接器 (Test Adapter),不需要 <code>.NET Core Test Explorer</code> 就能跑,索性我就把套件刪除了。今天這篇文章我就來分享如何設定讓 <code>C# Dev Kit</code> 能夠正確的啟用測試總管 (Test Explorer),方便我們執行單元測試。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2023/11/25/Testing-CSharp-with-CSharp-Dev-Kit-in-Visual-Studio-Code#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2023/11/25/Testing-CSharp-with-CSharp-Dev-Kit-in-Visual-Studio-Code [email protected] https://blog.miniasp.com/post/2023/11/25/Testing-CSharp-with-CSharp-Dev-Kit-in-Visual-Studio-Code#comment https://blog.miniasp.com/post.aspx?id=325d7fa3-0eef-4b90-b3a1-cd38f02f04a1 週六, 25 十一月 2023 07:57:00 +0000 .NET Core ASP.NET Core C# Unit Testing vscode testing xunit nunit mstest GitHub Copilot will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=325d7fa3-0eef-4b90-b3a1-cd38f02f04a1 https://blog.miniasp.com/trackback.axd?id=325d7fa3-0eef-4b90-b3a1-cd38f02f04a1 https://blog.miniasp.com/post/2023/11/25/Testing-CSharp-with-CSharp-Dev-Kit-in-Visual-Studio-Code#comment https://blog.miniasp.com/syndication.axd?post=325d7fa3-0eef-4b90-b3a1-cd38f02f04a1 如何使用 SharpToken 計算不同 OpenAI 模型在送出提示詞時的 Token 數量 <p>由於大多數 LLM 模型都有 Token 數量的限制,因此我們在開發 Generative AI (GAI) 應用程式時,都會對 Token 的用量斤斤計較,因此我們需要一個可以計算 Token 數量的函式庫,而在 .NET 世界裡 <a href="https://github.com/dmitry-brazhenko/SharpToken">SharpToken</a> 套件不但可以對文字進行編碼(Tokenize)與解碼,還可以用來計算文字的 Token 數量。今天這篇文章我就來介紹這個好用的 NuGet 套件。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2023/09/22/Use-SharpToken-to-count-number-of-tokens#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2023/09/22/Use-SharpToken-to-count-number-of-tokens [email protected] https://blog.miniasp.com/post/2023/09/22/Use-SharpToken-to-count-number-of-tokens#comment https://blog.miniasp.com/post.aspx?id=b26d3a65-61d0-4a0e-be12-aeb167e5f370 週五, 22 九月 2023 07:23:00 +0000 .NET Core .NET Framework AI C# OpenAI SharpToken Tokenizer will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=b26d3a65-61d0-4a0e-be12-aeb167e5f370 https://blog.miniasp.com/trackback.axd?id=b26d3a65-61d0-4a0e-be12-aeb167e5f370 https://blog.miniasp.com/post/2023/09/22/Use-SharpToken-to-count-number-of-tokens#comment https://blog.miniasp.com/syndication.axd?post=b26d3a65-61d0-4a0e-be12-aeb167e5f370 認識 C# 7.2 與 .NET Core 2.1 推出的 Span<T> 結構 <p>其實 C# 的 <code>Span&lt;T&gt;</code> 結構已經問世很多年了,直到昨天有同事問我這個東西要怎麼用,我就把多年前做好的簡報給他研究,然後順便複習一下這個厲害的玩意。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2023/09/19/Span-ReadOnlySpan-Memory-struct-in-CSharp-72#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2023/09/19/Span-ReadOnlySpan-Memory-struct-in-CSharp-72 [email protected] https://blog.miniasp.com/post/2023/09/19/Span-ReadOnlySpan-Memory-struct-in-CSharp-72#comment https://blog.miniasp.com/post.aspx?id=c183968a-875a-4cfa-b2ea-67a858be16d7 週二, 19 九月 2023 04:23:00 +0000 .NET Core .NET Framework C# c# c# 7.2 Span ReadOnlySpan Memory will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=c183968a-875a-4cfa-b2ea-67a858be16d7 https://blog.miniasp.com/trackback.axd?id=c183968a-875a-4cfa-b2ea-67a858be16d7 https://blog.miniasp.com/post/2023/09/19/Span-ReadOnlySpan-Memory-struct-in-CSharp-72#comment https://blog.miniasp.com/syndication.axd?post=c183968a-875a-4cfa-b2ea-67a858be16d7 如何使用 SqlBulkCopy 大量匯入資料到 SQL Server 資料表中 <p>最近有個維護案需要定期匯入百萬筆記錄到 SQL Server 之中,客戶的原始廠商在後台是有寫了一個功能可以讓後台管理員上傳 Excel 檔案,然後透過程式一筆一筆新增到資料庫中,但這個匯入的過程竟然要花上 1.5 小時才能新增完畢,實在是太慢了。其實從 .NET Framework 2.0 開始,在 <code>System.Data.SqlClient</code> 命名空間下就有個 <a href="https://learn.microsoft.com/zh-tw/dotnet/api/system.data.sqlclient.sqlbulkcopy?view=netframework-4.8.1&amp;WT.mc_id=DT-MVP-4015686">SqlBulkCopy</a> 類別可以用來高效率的大量寫入資料到資料表中,其寫入速度可能快上 50 倍之多!</p><p>... <a class="more" href="https://blog.miniasp.com/post/2023/09/16/SqlBulkCopy-import-data-to-SQL-Server-Table#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2023/09/16/SqlBulkCopy-import-data-to-SQL-Server-Table [email protected] https://blog.miniasp.com/post/2023/09/16/SqlBulkCopy-import-data-to-SQL-Server-Table#comment https://blog.miniasp.com/post.aspx?id=da3b7d2e-d300-4bdd-8d7d-fc6bbbb61dd1 週六, 16 九月 2023 09:09:00 +0000 .NET Core .NET Framework C# SQL Server SqlBulkCopy SQL Server will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=da3b7d2e-d300-4bdd-8d7d-fc6bbbb61dd1 https://blog.miniasp.com/trackback.axd?id=da3b7d2e-d300-4bdd-8d7d-fc6bbbb61dd1 https://blog.miniasp.com/post/2023/09/16/SqlBulkCopy-import-data-to-SQL-Server-Table#comment https://blog.miniasp.com/syndication.axd?post=da3b7d2e-d300-4bdd-8d7d-fc6bbbb61dd1 使用 .NET 實作 TOTP (Time-based One-Time Password) 的注意事項 <p>前陣子在研究 <a href="https://datatracker.ietf.org/doc/html/rfc6238">TOTP</a> (Time-based One-Time Password) 的實作方式,發現還蠻容易的,這篇文章我就來記錄一下實作的注意事項。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2023/09/04/How-to-implement-TOTP-in-dotNET#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2023/09/04/How-to-implement-TOTP-in-dotNET [email protected] https://blog.miniasp.com/post/2023/09/04/How-to-implement-TOTP-in-dotNET#comment https://blog.miniasp.com/post.aspx?id=edf1f82e-cf0e-4f2a-bdcf-d1996e13f922 週一, 4 九月 2023 11:16:00 +0000 .NET Core .NET Framework C# Security otp totp QRCode QRCoder otp.net Microsoft Authenticator Google Authenticator will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=edf1f82e-cf0e-4f2a-bdcf-d1996e13f922 https://blog.miniasp.com/trackback.axd?id=edf1f82e-cf0e-4f2a-bdcf-d1996e13f922 https://blog.miniasp.com/post/2023/09/04/How-to-implement-TOTP-in-dotNET#comment https://blog.miniasp.com/syndication.axd?post=edf1f82e-cf0e-4f2a-bdcf-d1996e13f922 介紹好用套件:PaLM.NET (透過 .NET 呼叫 PaLM API 服務) <p>這幾天在玩 Google 新推出的 <a href="https://makersuite.google.com/">MakerSuite</a> 與 <a href="https://developers.generativeai.google/">PaLM API</a> 服務,在研究的過程中我發現官網幾乎沒有提供 .NET 的範例程式,所以我就在研究的過程中順手寫了一個 <a href="https://www.nuget.org/packages/PaLM.NET/">PaLM.NET</a> 類別庫,透過我寫的這個類別庫可以非常輕鬆的呼叫 PaLM API 服務,快速打造 Google 全新的 Generative AI 應用程式。</p><p>... <a class="more" href="https://blog.miniasp.com/post/2023/09/02/Build-Generative-AI-Apps-using-PaLM-NET#continue">繼續閱讀</a> ...</p> https://blog.miniasp.com/post/2023/09/02/Build-Generative-AI-Apps-using-PaLM-NET [email protected] https://blog.miniasp.com/post/2023/09/02/Build-Generative-AI-Apps-using-PaLM-NET#comment https://blog.miniasp.com/post.aspx?id=6ff21ab5-3690-4031-a83f-c4b1fa0042c5 週六, 2 九月 2023 07:41:00 +0000 .NET Core C# 介紹好用工具 palm api google machine learning MakerSuite palm.net will https://blog.miniasp.com/pingback.axd https://blog.miniasp.com/post.aspx?id=6ff21ab5-3690-4031-a83f-c4b1fa0042c5 https://blog.miniasp.com/trackback.axd?id=6ff21ab5-3690-4031-a83f-c4b1fa0042c5 https://blog.miniasp.com/post/2023/09/02/Build-Generative-AI-Apps-using-PaLM-NET#comment https://blog.miniasp.com/syndication.axd?post=6ff21ab5-3690-4031-a83f-c4b1fa0042c5