Captive dependency — Scoped service bị nhốt trong Singleton
Singleton giữ một service Scoped: DbContext sống chung cả app, dữ liệu cũ, race condition. Cách nhận ra và ba cách sửa.

THE ENGINEERING JOURNAL
Các bài viết về dotnet.
Singleton giữ một service Scoped: DbContext sống chung cả app, dữ liệu cũ, race condition. Cách nhận ra và ba cách sửa.

Span<T> và Memory<T> trong .NET giúp cắt chuỗi, parse dữ liệu trên đường nóng mà không cấp phát thêm bộ nhớ — kèm cái bẫy khi gặp async.

Channel<T> trong .NET: hàng đợi producer/consumer ngay trong process, backpressure bằng bounded channel và cách shutdown không mất job.
HttpClient trong .NET: vì sao new mỗi request gây SocketException, cách dùng IHttpClientFactory và những cái bẫy hay gặp khi gọi API.
Tìm hiểu Middleware Pipeline trong .NET — cách request HTTP chạy qua từng lớp middleware, custom middleware và exception handling thực tế.
Minimal APIs trong .NET là cách viết API nhẹ nhàng hơn Controller truyền thống. Mình chia sẻ cảm nhận sau một thời gian dùng thử.
Mình từng nghĩ .NET là cái gì đó xưa cũ, chỉ hợp với mấy công ty enterprise. Nhưng .NET bây giờ thay đổi quá nhiều — chạy Linux ngon, performance top đầu, ecosystem mở — làm mình phải suy nghĩ lại.

Câu chuyện cá nhân về hành trình code TypeScript lâu năm rồi chuyển qua .NET — những điểm giống nhau, khác nhau, và tại sao cả hai đều đáng yêu theo cách riêng.

JavaScript, TypeScript rồi sang .NET, Rust, Golang — mình kể lại hành trình đi code của mình cho tới nay.