A revisit of an earlier approach to limiting a REST API endpoint's response time while allowing processing to continue in the background. The original hand-rolled solution used a CancellationTokenSource plus a parallel Task.Delay to enforce a timeout. This version replaces that with ASP.NET Core's built-in request timeouts middleware (available since .NET 8), hooking into HttpContext.RequestAborted and using Task.WaitAsync with the request's cancellation token, removing the need for a separately configured delay value. Includes setup code (AddRequestTimeouts, UseRequestTimeouts, RequestTimeout attribute) and a link to a sample GitHub repository with tests covering completion, abort, and background-continuation scenarios.
Source: https://www.damirscorner.com/blog/posts/20261002-UsingRequestTimeoutsMiddlewareInWebApi.html. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Đang tải bình luận…
Bối cảnh bài viết cung cấp hướng dẫn thực tế về Result pattern trong C# và .NET 10. Nguyên nhân kỹ thuật là Result pattern giúp xử lý lỗi một cách rõ ràng thay vì dùng exceptions, đặc biệt quan trọng trong các asynchronous services. Hệ quả là pattern này cải thiện hiệu suất application khi benchmarked so với exception handling truyền thống. Đáng học là cách map Result pattern với ProblemDetails trong APIs và tác động của C# 15 unions đến implementation pattern này.
Bài này giúp lập trình viên hiểu rõ khi nào nên dùng Result pattern trong C# và .NET 10 qua benchmark thực tế và ứng dụng với async services.
Bối cảnh của bài viết đặt ra câu liệu có sự khác biệt giữa Clean Code và Clear Code, cùng việc liệu comments có thực sự là vấn đề trong lập trình. Nguyên nhân kỹ thuật nằm ở việc code sạch (clean code) thường tập trung vào việc giảm thiểu số lượng lines of code và tối ưu cấu trúc, trong khi code rõ ràng (clear code) ưu tiên sự dễ hiểu ngay lập tức cho người đọc. Hệ quả là các dự án thường theo đuổi clean code mà hy sinh tính clear code, dẫn đến khó khăn bảo trì và debug. Điểm đáng học là các lập trình viên cần cân bằng giữa sự ngắn gọn và dễ hiểu, không nên loại bỏ comments một cách mù quáng mà nên sử dụng chúng một cách chiến lược.
Bài viết này giúp lập trình viên hiểu rằng viết code sạch không đồng nghĩa với code dễ hiểu, và giải quyết vấn đề tài liệu hiệu quả hơn là chỉ phụ thuộc vào comment.
Microsoft vừa phát triển SDK cho AG-UI, một protocol chuẩn hóa giao tiếp giữa agents và ứng dụng người dùng. SDK này hỗ trợ các lập trình viên C# tích hợp AG-UI vào ứng dụng của họ một cách hiệu quả. Protocol này giúp giảm thiểu sự phức tạp trong việc thiết kế cơ chế giao tiếp giữa agent và user interface. Với sự hỗ trợ từ Microsoft, AG-UI sẽ được áp dụng rộng rãi hơn trong các hệ thống sử dụng C#. Đáng học hỏi là cách Microsoft chuẩn hóa giao tiếp agents - UI, giúp phát triển multi-agent system một cách nhất quán.
.NET SDK giúp lập trình viên C# dễ dàng triển khai giao tiếp giữa agent và ứng dụng người dùng một cách chuẩn hóa.
.NET 11 RC JIT Compiler đã được nâng cấp đáng kể với guarded devirtualization cho phép tối ưu hóa gọi phương thức ảo, cùng escape analysis được mở rộng để tối ưu bộ nhớ. Trình biên dịch này cũng cải tiến layout của delegate, giảm chi phí tạo đối tượng và loại bỏ bounds-check một cách thông minh hơn. Những thay đổi này giúp tăng hiệu suất thực thi lên đến 15% trong các ứng dụng sử dụng delegate và nhiều đối tượng. Lập trình viên nên đọc bài gốc để hiểu rõ từng kỹ thuật như Escape Analysis và Bounds-Check Elimination, từ đó tối ưu code tốt hơn.
Bài viết tiết lộ những thay đổi nội bộ quan trọng trong trình biên dịch JIT .NET 11 giúp tăng hiệu năng ứng dụng .NET của bạn.
C# 15 giới thiệu tính năng closed hierarchies cho phép kiểm tra compile-time exhaustive switches trên cây lớp phân cấp. Tính năng này đòi hỏi sealed modifier phải được áp dụng một cách nhất quán, gây ra thách thức cho versioning trong thư viện. Microsoft xác nhận sự không tương ngược ngược này sẽ ảnh hưởng đến những ai kế thừa từ lớp có thể mở rộng. Các nhà phát triển cần cân nhắc kỹ khi thiết kế hệ thống phân cấp lớp để tận dụng lợi ích kiểm tra compile-time.
Bài viết này giúp lập trình viên hiểu cách tận dụng Closed Hierarchies trong C# 15 để tối ưu hóa switch statements và quản lý phiên bản code hiệu quả.
C# 15 và .NET 11 giới thiệu union types và closed class hierarchies để xử lý các giá trị có nhiều dạng JSON, minh họa qua trường hợp maxUnavailable của Kubernetes và payment-events. Union types khai báo một tập hợp các primitive, class hoặc interface cố định với switch statement đầy đủ do compiler kiểm tra, trong khi closed hierarchies hạn chế kế thừa để compiler xử lý các derived types đã biết là đầy đủ. System.Text.Json serialize union types mà không cần envelope hay discriminator, chỉ ghi JSON shape của case đang hoạt động, còn closed hierarchies có thể chọn discriminator-based polymorphism thông qua InferClosedTypePolymorphism. Cả hai tính năng đều tích hợp với Minimal APIs, MVC, SignalR's JsonHubProtocol, Blazor và OpenAPI, nhưng union types không hỗ trợ cho query strings, route values, headers hay form fields do các giá trị này chỉ bind chuỗi không có JSON parsing.
Bài viết giúp lập trình viên tận dụng union types và closed hierarchies trong C# để xử lý JSON đa dạng hiệu quả hơn trong ASP.NET Core.
Bruno Capuano đang thực hiện loạt 4 buổi livestream code hướng dẫn xây dựng AI agent bằng C# với Microsoft Agent Framework harness. Series bắt đầu từ một đơn IChatClient call, dần bổ sung các tính năng như truy cập file với phê duyệt, durable memory, skills, shell access, CodeAct code execution, background agents và cuối cùng là observability cùng Purview governance. Agent ví dụ là trợ lý giáo dục tài chính cá nhân, được chọn vì đặt ra các vấn đề về phân biệt quyền read/write, phê duyệt giao dịch mô phỏng và an toàn khi thực thi code. Tại thời điểm viết, 2/4 buổi đã phát trực tiếp trên kênh .NET YouTube và Microsoft Reactor, với bản ghi có sẵn sau đó.
Sê-ries này hướng dẫn xây dựng trợ lý AI tài chính bằng C# với đầy đủ công cụ và tính năng bảo mật cần thiết.
Bài viết so sánh C# và F# trong môi trường .NET, cho thấy C# vẫn là ngôn ngữ phổ biến cho phát triển ứng dụng truyền thống. Nguyên nhân kỹ thuật mà tác giả cho F# vượt trội là sự hỗ trợ mạnh mẽ cho lập trình hàm: kiểu dữ liệu không thay đổi, suy luận kiểu mạnh mẽ và pattern matching tích hợp sẵn. Nhờ những tính năng này, mã F# thường ngắn gọn hơn, dễ duy trì và giảm nguy cơ lỗi thời gian chạy so với mã C# tương đương. Hệ quả là các nhóm phát triển có thể đạt được tốc độ sản xuất cao hơn và chất lượng code ổn định khi áp dụng F# cho các bài toán phức tạp như xử lý dữ liệu hoặc dịch vụ tài chính. Điều đáng học là khi đánh giá ngôn ngữ cho dự án, không chỉ xem xét mức độ phổ biến mà còn cân nhắc lợi ích của paradigm hàm và mức độ trừu tượng mà ngôn ngữ cung cấp để quyết định xem việc đầu tư thời gian học F# có mang lại lợi ích lâu dài không.
Bài viết này giúp lập trình viên hiểu tại sao F# vượt trội hơn C# trong nhiều trường hợp thực tế.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000+ DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try it