柴魚筆記

程式・軟體・攝影

Race condition 的種類、成因與解決辦法

當多個程序同時存取同一個資源時,很可能會發生該資源在其他程序進行期間被進行更動,導致資料與預期的結果不同的問題。

Queued background tasks in ASP.NET Core

在實務上有時候會遇到某些需要花費大量時間執行的任務,像我就是在寫公司專案時遇到需要產生縮圖和轉檔的需求,若不想讓使用者一直轉圈圈等待的話,我們必須採用一些方法讓我們可以先回覆使用者,之後再來慢慢處理這些需求,在背景中讓這些任務排隊執行就是其中一個方法。

IEnumerable或IQueryable物件在進行LINQ查詢時的差異

當使用LINQ查詢時,執行對象是IEnumerable或是IQueryable有很大的差異。

使用ASP.NET Core Web API提供HLS影片串流服務

公司的APP其中一個功能是影片上傳及串流的服務,這陣子比較了許多影片串流及直播的通訊協定,最後選擇使用HLS協定來提供影片串流服務,流程包括「建立影片上傳API」、「影片轉檔」及「建立串流API」,這篇筆記記錄如何使用ASP.NET Core Web API來建立影音串流服務。

Promise in JavaScript

Promise是Javascript提供的建構函式,用於建構Promise物件,該物件會存放非同步事件的結果。

Validation attributes in ASP.NET Core

ASP.NET Core 裡的 Validation attributes 用於設定欄位的規則,當收到 HTTP 請求時依照規則檢查請求的資料是否符合 Validation attributes 設定的規則,以此過濾掉不符合規則的請求。

Model Binding in ASP.NET Core

controller會處理來自用戶端的HTTP Request,請求中會有一些資訊來往,這些資料會需要經過型別轉換、檢查必填、最大長度及正確性等步驟後我們才能使用,若手動處理這些步驟將會非常繁瑣。ASP.NET提供Model Binding的功能,可以處理來自使用者請求中的資料,將其綁定到指定型態的資料上,省去繁複的處理程序並提高正確性。

HTTP header Content-Disposition

Content-Disposition包含兩種類型,分別是inline 和 attachment,用於指定下載的行為