在 python 利用 FastAPI 建立 API 非常的簡單,同樣的,要測試它也非常地容易,這裡我會使用一個簡單的例子,演練 pytest 測試 API (FastAPI)

在 python 利用 FastAPI 建立 API 非常的簡單,同樣的,要測試它也非常地容易,這裡我會使用一個簡單的例子,演練 pytest 測試 API (FastAPI)
今天 (2025-04-06) 早上在 Facebook - 台灣 .NET 技術愛好找論壇裡看到 Will 保哥轉貼了一則 X 貼文,
要檢查一個集合物件是否有元素在內,會使用哪一種語法來檢查 …
在 C# 開發中,經常需要判斷一個集合是否有包含任何元素。雖然這是一個簡單的判斷,但其實背後有不少值得探討的細節。就來瞭解這四種常見的做法,並分析它們的優缺點與適合的使用情境。
對於階層式的資料,除了利用紀錄父階層的 Id 之外,SQL Server 可以使用其特別專屬的 hierarchyid 來做處理
pytest 是一個功能強大且靈活的 Python 測試框架,身為一個開發者學好怎麼寫測試是基本的必要條件,以下是我對 pytest 的使用心得。
之前有介紹過 TestContainers 在 .NET 的使用方式 傳送們,同樣的 Python 也可以使用它,就不再贅述太多;我將使用 WSL + Python 環境搭建起開發環境。
SQL Server 的安全性允許 SQL 帳號和 Windows 帳號登入 , 但如果同時都忘記或被竄改的狀況下 , 該如何搶回 SQL Server 的控制權
在之前的一篇文章中,說明了我們如何用 WSDL 檔案產生代理類別,現在目標的 Web Service 有一個需求是要加入一個 Http Header,網路上可能會找到覆寫 GetWebRequest()
的解法,但我們會發現,用 dotnet-svcutil 所產生的代理類別無法覆寫 GetWebRequest(),該怎麼辦?
Windows 上如果設定了時區(無論手動或自動),透過 TimeZoneInfo 取出的時區識別碼,都是根據所設定的地區的時區,並且回應成 Windows 使用的 TimeZone 格式識別碼。
例如設定為 (UTC +08:00) 台北取出來的識別碼的值會為:"Taipei Standard Time" 的字串資料。
但是…
以往我們要呼叫 ASMX Web Service 的服務,大多透過 Visual Studio 的「加入 -> 服務參考
」的程序,自動產生 Reference.cs
程式碼檔案,裡面就有我們要用的服務代理。但現在因為開發環境無法連線 Web Service,所以無法使用這個方式,我們手上有的是一個 *.wsdl
檔案,要改用手動的方式建立服務代理。
從應用程式日誌看到下面這個 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.
它的意思是,相同主索引鍵的實體無法被追蹤,因為已經有另一個實體正在被追蹤,我們來看看怎麼回事。
這篇有提到:
在 macOS 上最主要就是要安裝 Xcode,而如果要安裝 Xcode 的管道,基本上有兩種:
- 透過 macOS 上的 App Store 安裝。(登入 Apple 帳號後即能免費下載使用)
- 透過 Apple Developers 網站來下載 .xip 安裝。(需要先有訂閱 Apple 開發者帳號才能下載使用)
本篇就來談談如何透過 .xip 來安裝 Xcode。
由 上篇 得知 .NET Core 應用程式可以接收 SIGINT/SIGTERM訊號,來完成 graceful shutdown;在處理批次流程中,當應用程式接收到 SIGINT/SIGTERM 訊號後,就要進入狀態的保存,避免服務被強制中斷,導致狀態混亂。預設 Container 預設等待 10 sec,也就是這個時間範圍內就要完成狀態保存,如果超過時間就可以考慮送出 Timeout 參數,延長工作關閉流程。Linux 執行應用程式的時候有區分 shell model 以及 exec mode,若使用不當,會導致接收不到 SIGINT/SIGTERM 訊號,無法 graceful shutdown。
在 ASP.NET Core Web API 專案套用了 Swagger 之後,在 Development 環境下預設會有一個 /swagger/index.html
網址來查看 Web API 的規格,但是有些客戶因為公司政策的關係,希望關閉 Swagger 端點,改使用靜態文件,本篇文章有兩個可行的方案提供給大家參考。
如果要順利在 Visual Studio 來連接 macOS 透由 .NET MAUI 開發 iOS 的話,對於要連接的 macOS 上是需要事先安裝好 Xcode 等 Apple 所設計的 iOS 開發工具的。
不然,就算有開啟遠端登入等功能讓 Visual Studio 能夠連線並自動安裝 mono 等軟體元件,那也沒有 iOS 的相關 SDK 供使用。
在 macOS 上最主要就是要安裝 Xcode,而如果要安裝 Xcode 的管道,基本上有兩種:
本篇介紹是使用第一種方式來完成唷~~~
Jetbrains Rider Remote Development 是 Jetbrains 旗下的產品,可以透過 Jetbrains Toolbox 獨立安裝,也可以直接透過 Jetbrains Rider 使用,這個功能主要就是讓 Windows 的用戶可以在 WSL (Ubuntu) 環境下開發、中斷、除錯。
在 Nuget 的相依協助下,已經某種程度上可以是協助擺脫 dll hell 的一大工程(功臣?)
但是如果在一個解決方案當中有多個專案要引用相同的 Nuget 套件時,可能會發生各個不同的專案有各自使用不同 Nuget 套件的版本(套件相同版本不同)。
而每次要更新某個 Nuget 套件時就會要針對不同專案要處理更新,就會顯得相當繁瑣。
在 .NET 6.0 的設計中,開始可以使用中央的套件管理 Central Package Management (CPM) 的處理方式來處理這個問題。
cAdvisor 是一個開源的容器資源使用情況和效能分析工具,主要由 Google 開發。它專門用於收集、聚合、處理和匯出有關執行中容器的資訊。
Node-Exporter 收集主機層級的各種指標,包括:CPU 使用率、記憶體使用情況、磁碟 I/O 統計、網路流量、檔案系統使用率、系統負載
再搭配上 Prometheus 收集指標,用 Grafana 呈現資訊
出自 https://blog.techbridge.cc/2019/08/26/how-to-use-prometheus-grafana-in-flask-app/
跳過 .NET 7 與 .NET 8,因為這兩版沒有新增方法【註1】,因此我們直接來到 .NET9
.NET 6 Linq 的新功能來到最終回合。
新發田城又名為菖蒲城,是個位在新潟縣新發田市大手町中的一座平城
由於是在市內且距離車站不遠,是個適合散步休憩的景點。
不過,新發田城在冬天是不開放的,12月底到隔年3月底請一定要避開,以免白跑一趟
在 Windows 的環境,要使用 Docker 除了 Docker Desktop 之外,也可以使用 WSL + Docker 來完成環境的搭建
在使用 .NET MAUI 的時候可以透過 Google 推出的 Android Emulator 來建立 Android Virtual Device (AVD),以便進行基本的 Android App 開發與前期的測試。
雖然在 App 的開發到後期通常會直接使用 實際的裝置 進行測試會比較恰當,但不可質疑的 AVD 在 Android App 很多開發情境當中仍是扮演著測試環節中很重要的部分。
而 Google 所推出的 Android Emulator 可以透過 Visual Studio 當中的 "Android 裝置管理員" 來使用,並且建立所需的 AVD 環境。
隨著 AI 持續的發展跟整合,在程式開發上的協助不僅僅是在寫程式的時候才可以派上用場,現在我們也可以透過 GitHub Copilot Workspace 這個功能在我們動手開發前一直到完成程式碼送出都可以在這個功能完成,而這個功能也在 2024 年底推出公開的技術預覽了,只要有付費的 GitHub Copilot 帳號都可以使用這個功能來協助開發,後面就來介紹這個功能跟簡單的實際操作來展示可以達到怎樣的效果。
GitHub Copilot 除了自己本身模型內含的知識之外,還可以透過安裝 Extension 來加強本身的能力,微軟就有針對 Azure 推出了官方的 GitHub Copilot for Azure 這一個 Extension,我們就可以在 GitHub Copilot 詢問關於 Azure 的問題,後面就來介紹如何安裝跟使用。
續接前篇,趕緊來看看怎達成下圖效果吧!