推薦文章

[練習題] C# 中檢查 Collection 是否有項目的幾種方式

今天 (2025-04-06) 早上在 Facebook -  台灣 .NET  技術愛好找論壇裡看到 Will 保哥轉貼了一則 X 貼文,
要檢查一個集合物件是否有元素在內,會使用哪一種語法來檢查 … 

在 C# 開發中,經常需要判斷一個集合是否有包含任何元素。雖然這是一個簡單的判斷,但其實背後有不少值得探討的細節。就來瞭解這四種常見的做法,並分析它們的優缺點與適合的使用情境。

...繼續閱讀 »
on mrkt

[料理佳餚] 使用 dotnet-svcutil 手動從 WSDL 檔案產生代理類別並整合進 .NET Core 專案

以往我們要呼叫 ASMX Web Service 的服務,大多透過 Visual Studio 的「加入 -> 服務參考」的程序,自動產生 Reference.cs 程式碼檔案,裡面就有我們要用的服務代理。但現在因為開發環境無法連線 Web Service,所以無法使用這個方式,我們手上有的是一個 *.wsdl 檔案,要改用手動的方式建立服務代理。

...繼續閱讀 »
on supershowwei

[廚餘回收] Entity Framework Core 錯誤:「...cannot be tracked because another instance...」的原因與解法

從應用程式日誌看到下面這個 Entity Framework Core(以下簡稱 EF Core)發出的例外錯誤:

The instance of entity type 'MyTable' cannot be tracked because another instance with the same key value for {'Key'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached.

它的意思是,相同主索引鍵的實體無法被追蹤,因為已經有另一個實體正在被追蹤,我們來看看怎麼回事。

...繼續閱讀 »
on supershowwei

在 Visual Studio 連接 macOS 透由 .NET MAUI 開發 iOS 應用 (下載 xip 在 Mac 上安裝 Xcode)

這篇有提到:

在 macOS 上最主要就是要安裝 Xcode,而如果要安裝 Xcode 的管道,基本上有兩種:

  1. 透過 macOS 上的 App Store 安裝。(登入 Apple 帳號後即能免費下載使用)
  2. 透過 Apple Developers 網站來下載 .xip 安裝。(需要先有訂閱 Apple 開發者帳號才能下載使用)

本篇就來談談如何透過 .xip 來安裝 Xcode。

...繼續閱讀 »
on jamestsai

觀察 .NET Core Container 的 Exec Mode 和 Shell Mode 差異

上篇 得知 .NET Core 應用程式可以接收 SIGINT/SIGTERM訊號,來完成 graceful shutdown;在處理批次流程中,當應用程式接收到 SIGINT/SIGTERM 訊號後,就要進入狀態的保存,避免服務被強制中斷,導致狀態混亂。預設 Container 預設等待 10 sec,也就是這個時間範圍內就要完成狀態保存,如果超過時間就可以考慮送出 Timeout 參數,延長工作關閉流程。Linux 執行應用程式的時候有區分 shell model 以及 exec mode,若使用不當,會導致接收不到 SIGINT/SIGTERM 訊號,無法 graceful shutdown。

...繼續閱讀 »
on yc421206

在 Visual Studio 連接 macOS 透由 .NET MAUI 開發 iOS 應用 (用 App Store 安裝 Xcode)

如果要順利在 Visual Studio 來連接 macOS 透由 .NET MAUI 開發 iOS 的話,對於要連接的 macOS 上是需要事先安裝好 Xcode 等 Apple 所設計的 iOS 開發工具的。

不然,就算有開啟遠端登入等功能讓 Visual Studio 能夠連線並自動安裝 mono 等軟體元件,那也沒有 iOS 的相關 SDK 供使用。

在 macOS 上最主要就是要安裝 Xcode,而如果要安裝 Xcode 的管道,基本上有兩種:

  1. 透過 macOS 上的 App Store 安裝。(登入 Apple 帳號後即能免費下載使用)
  2. 透過 Apple Developer 網站來下載 .xip 安裝。(需要先有訂閱 Apple 開發者帳號才能下載使用)

本篇介紹是使用第一種方式來完成唷~~~

...繼續閱讀 »
on jamestsai

Nuget 的中央軟體套件管理 (CPM) 使用

在 Nuget 的相依協助下,已經某種程度上可以是協助擺脫 dll hell 的一大工程(功臣?)

但是如果在一個解決方案當中有多個專案要引用相同的 Nuget 套件時,可能會發生各個不同的專案有各自使用不同 Nuget 套件的版本(套件相同版本不同)。

而每次要更新某個 Nuget 套件時就會要針對不同專案要處理更新,就會顯得相當繁瑣。

在 .NET 6.0 的設計中,開始可以使用中央的套件管理 Central Package Management (CPM) 的處理方式來處理這個問題。

...繼續閱讀 »
on jamestsai

監視 Docker Container 資源 (cAdvisor + node-exporter + prometheus + grafana)

cAdvisor 是一個開源的容器資源使用情況和效能分析工具,主要由 Google 開發。它專門用於收集、聚合、處理和匯出有關執行中容器的資訊。
Node-Exporter 收集主機層級的各種指標,包括:CPU 使用率、記憶體使用情況、磁碟 I/O 統計、網路流量、檔案系統使用率、系統負載

  • Node Exporter:關注整個主機/節點層級的指標
  • cAdvisor:專注於容器層級的指標

再搭配上 Prometheus 收集指標,用 Grafana 呈現資訊

圖片

出自 https://blog.techbridge.cc/2019/08/26/how-to-use-prometheus-grafana-in-flask-app/

...繼續閱讀 »
on yc421206

在 Visual Studio 透由 .NET MAUI 開發 Android 應用 (Android Emulator 與 AVD 設定)

在使用 .NET MAUI 的時候可以透過 Google 推出的 Android Emulator 來建立 Android Virtual Device (AVD),以便進行基本的 Android App 開發與前期的測試。

雖然在 App 的開發到後期通常會直接使用 實際的裝置 進行測試會比較恰當,但不可質疑的 AVD 在 Android App 很多開發情境當中仍是扮演著測試環節中很重要的部分。

 

而 Google 所推出的 Android Emulator 可以透過 Visual Studio 當中的 "Android 裝置管理員" 來使用,並且建立所需的 AVD 環境。

...繼續閱讀 »
on jamestsai

GitHub Copilot Workspace:無需撰寫程式碼也能快速完成功能開發

  • 248

隨著 AI 持續的發展跟整合,在程式開發上的協助不僅僅是在寫程式的時候才可以派上用場,現在我們也可以透過 GitHub Copilot Workspace 這個功能在我們動手開發前一直到完成程式碼送出都可以在這個功能完成,而這個功能也在 2024 年底推出公開的技術預覽了,只要有付費的 GitHub Copilot 帳號都可以使用這個功能來協助開發,後面就來介紹這個功能跟簡單的實際操作來展示可以達到怎樣的效果。

...繼續閱讀 »
on anyun

進修課程