開發 Apple 的 iOS 應用程式,若在 Mac 裝置安裝好 Xcode 時,就可以透過 Xcode 直接建立該 Mac 裝置的機器憑證,送至 Apple 的 Developers 網站當中以利後續使用 "iOS 裝置" 開發或測試應用程式。
甚至,後續要將 iOS 應用程式發佈至 AppStore Connect 當中,無論是要先進行 TestFlight 測試;或是對自己的 iOS 應用很有信心要直接送審,也都是需要先有 Mac 裝置製作的機器憑證,作為 iOS 應用程式發佈憑證才行。

開發 Apple 的 iOS 應用程式,若在 Mac 裝置安裝好 Xcode 時,就可以透過 Xcode 直接建立該 Mac 裝置的機器憑證,送至 Apple 的 Developers 網站當中以利後續使用 "iOS 裝置" 開發或測試應用程式。
甚至,後續要將 iOS 應用程式發佈至 AppStore Connect 當中,無論是要先進行 TestFlight 測試;或是對自己的 iOS 應用很有信心要直接送審,也都是需要先有 Mac 裝置製作的機器憑證,作為 iOS 應用程式發佈憑證才行。
微軟將 Azure AI Studio 以及 Azure Open AI 和其他 Azure AI 的服務整合之後推出了 Azure AI Foundry 這一個服務平台,讓我們在使用 Azure AI 服務的時候有同一個入口來管理和使用 Azure AI 的服務,而我們也可以在上面部署各式各樣的 LLM 模型,包含 Azure OpanAI 都可以在這邊部署並提供一個遊樂場讓我們可以免寫程式來測試部署好的 LLM 模型,後面就來介紹如何部署以及測試,最後也實做程式要來串接部署好的模型。
在開發系統時,如果測試情境的輸出會有許多資料類別並且要驗證很多欄位時,會利用 object graph 比對整個結果是否和預期一致。
現在我的專案裡有個 CustomerRootData 類別,裡頭屬性為十幾個不同型別的子集合,每個類別都有 UpdateTime、UpdateUser 這兩個欄位,但這兩個欄位是在程式執行當下才寫進去的,不屬於測試驗證的重點,在寫測試的時候常常陷入重複設定的地獄。
於是在 AwesomeAssertions / AwesomeAssertions Object Graphs 的架構下,想辦法在做比對時去做到比較方便省事的設定方法,讓我輕鬆地去排除指定的欄位。
在找尋資料、解決方法的同時,也讓我得知不一樣的處理方式,將這些處理方式用文章記錄下來,也提供給大家做個參考。
其實這也不是新聞了,早在今年 1/15 時大家就已經知道並且被商業授權的費用給嚇了一大跳(每個人 $129.95 USD)。
現在特地寫一篇是因為上週因為 AutoMapper 將要變成商業化授權而寫了兩篇文章介紹替代套件,就想到好像並沒有對於 Fluent Assertions 轉變為商業授權去寫一篇文章與替代方案,於是就以 Fluent Assertions 從 v8.0.0 起轉為商業授權,簡單寫了這篇去說明授權限制、專案應對策略,以及替代的 Assertion Library,提供給大家做個參考。
調整設定搭配命令列模式 , 快速進行 SQL Server 安裝
Mapperly 在以前找尋替代 AutoMapper 的時候就有看過,但當時著重在與 AutoMapper 設定與操作習慣相近的替代套件,所以對於 Mapperly 就沒有太多的關注。
直到寫了「替換映射工具 - 使用 Mapster」這篇文章後才稍微去看看 Mapperly,發現到它和 AutoMapper, Mapster 雖然都是屬於 Mapping 工具,都是做物件對映轉換的處理,但設定與使用上就有蠻大的差別,所以寫篇文章做個簡單的紀錄。
整合 GitHub Action 在 Self Host Runner - 不分平台篇
整合 GitHub Action 在 Self Host Runner - Android 篇
整合 GitHub Action 在 Self Host Runner - iOS 篇
建立 GitHub Action Self Host Runner
其實四年前就已經將手邊專案由原本所使用的 AutoMapper 以 Mapster 取代了。
起初的原因是效能考量,因為 AutoMapper 的效能一直被人詬病,但也因為 AutoMapper 的優點在於功能豐富、配置設定靈活,能夠處理複雜的 Mapping 需求,以致於我在帶新人的時候還是以 AutoMapper 為主,但是前些日子得知 AutoMapper 在之後也將走上商業化(跟 Fluent Assertions 一樣),所以就藉此來寫篇文章簡單介紹 Mapster。
在 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 的管道,基本上有兩種:
本篇介紹是使用第一種方式來完成唷~~~