EF Core interceptors are middleware for database calls, letting you observe, modify, or cancel EF Core operations without touching calling code. EF Core 10 ships seven interceptor interfaces: ISaveChangesInterceptor and IDbCommandInterceptor cover most use cases. Key topics covered include registering interceptors via optionsBuilder.AddInterceptors(), implementing audit fields (CreatedAt, UpdatedAt, CreatedBy) and soft deletes with SaveChangesInterceptor, and the critical pattern for injecting scoped services like the current user — register the interceptor as Scoped and wire it through the AddDbContext overload that exposes the service provider. The guide also covers suppressing operations with InterceptionResult.Suppress(), logging slow queries with DbCommandInterceptor, and when NOT to use interceptors (business logic belongs in domain events, read filtering belongs in global query filters).
Nguồn: https://codewithmukesh.com/blog/ef-core-interceptors. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Bài viết hướng dẫn tối ưu hiệu suất EF Core trong .NET 10 với 10 kỹ thuật quan trọng như AsNoTracking(), compiled queries, eager loading, ExecuteUpdateAsync/ExecuteDeleteAsync, Select() projections, quản lý DbContext bằng IDbContextFactory, parameterized queries, và logging. Ngoài ra còn cung cấp kế hoạch hành động ưu tiên và giải đáp những hiểu lầm phổ biến.
Là người phát triển .NET, bạn cần phải hiểu cách tối ưu EF Core để giảm thời gian xử lý và tránh tình trạng hiệu suất kém trong ứng dụng thực tế, đặc biệt khi xử lý dữ liệu lớn hoặc giao dịch thường xuyên.
Bài viết điểm qua từng phiên bản .NET từ 5 đến 10, tóm tắt các tính năng quan trọng trong C#, ASP.NET Core, Blazor, hiệu suất runtime, cũng như công cụ phát triển. Ngoài ra, nó cung cấp bảng vòng đời hỗ trợ, hướng dẫn chọn phiên bản phù hợp vào năm 2026 và lưu ý về các thay đổi phá vỡ như mặc định streaming HttpClient trong Blazor WebAssembly của .NET 10.
Bạn nên đọc bài này để cập nhật những tính năng mới nhất của .NET từ phiên bản 5 đến 10, giúp tối ưu hóa mã nguồn, nâng cao hiệu suất ứng dụng và tránh những thay đổi đột ngột trong tương lai khi phát triển với các framework hiện đại.
Nguyên tắc DRY trong C# nhấn mạnh loại bỏ sự trùng lặp về kiến thức, không chỉ là mã code trông giống nhau. Bài viết chỉ ra các vi phạm DRY thực tế như quy tắc nghiệp vụ trùng lặp, magic strings hay giá trị cấu hình cứng nhắc, đồng thời cảnh báo về nguy cơ trừu tượng hóa sớm không đúng lúc, dẫn đến coupling sai và điều kiện flag-driven.
Lập trình viên nên đọc bài này để tránh rơi vào nhầm lẫn giữa lặp lại logic và tối ưu hóa thiết kế, từ đó xây dựng mã sạch, dễ bảo trì và phù hợp với nguyên tắc SRP mà không phải là "làm đẹp" thay vì thực sự cải thiện.

Tài liệu hướng dẫn phỏng vấn .NET toàn diện với hơn 300 câu hỏi thực tế, bao gồm 20 tình huống đa dạng về C#, async/multithreading, LINQ, ASP.NET Core, EF Core, thiết kế hệ thống và kiến trúc. Mỗi câu hỏi có đáp án mẫu, những câu trả lời cảnh báo (red-flag) cần tránh và các câu hỏi theo sau phổ biến, cập nhật cho .NET 10 và C# 14.
Bạn nên đọc để chuẩn bị chắc chắn cho các cuộc phỏng vấn .NET hiện đại, đặc biệt là với kiến thức thực tế về C# 14, ASP.NET Core 10 và các vấn đề thiết kế hệ thống như Kubernetes, cache và API idempotent—các chủ đề ngày càng được ưu tiên trong các công ty công nghệ hàng đầu.
Qt Bridges vừa phát hành phiên bản beta 0.3.0 cho C# Bridge, cho phép nhà phát triển .NET xây dựng ứng dụng với giao diện Qt Quick/QML mà không cần binding đầy đủ. Bản cập nhật cải thiện hỗ trợ Linux (yêu cầu cài đặt Qt for Linux và biến môi trường QtDir), đồng thời bổ sung extension cho Visual Studio với templates dự án và QML IntelliSense. Tiếp theo là bản Technology Preview, và Rust sẽ là ngôn ngữ tiếp theo được hỗ trợ sau C#.
Những người phát triển C# có thể nhanh chóng tích hợp giao diện Qt Quick/QML vào ứng dụng mà không cần phụ thuộc vào các gói kết nối đầy đủ, nhờ công cụ này hỗ trợ cải thiện hiệu suất và tính tương thích trên nhiều nền tảng.
C# in .NET 11 preview 5 introduces the closed keyword for class hierarchies, restricting derivation to a single assembly. Unlike the private constructor workaround, closed gives the compiler full knowledge of all derived types, enabling exhaustiveness checking in switch expressions. When all derived types are also sealed, the compiler can catch guaranteed runtime cast failures at compile time. The post covers how to enable the feature (setting <LangVersion>preview</LangVersion> and manually defining the [Closed] attribute), its limitations (implicit abstract, generic constraints), and how it compares to the new union types feature also coming in .NET 11.
A comprehensive guide to creating, versioning, and publishing NuGet packages in .NET. Covers SDK-style .csproj metadata configuration, the dotnet pack command, SemVer versioning, publishing to nuget.org, private feeds via Azure Artifacts and GitHub Packages, multi-targeting for multiple .NET versions, automating releases with GitHub Actions, local testing before publishing, and enabling SourceLink with symbol packages for debuggability. Includes an FAQ addressing common questions like PackageId vs AssemblyName, handling breaking changes, and transitive dependency behavior.
MSIX hỗ trợ triển khai gói theo kiểu per-user (mỗi người dùng) và all-users (toàn hệ thống) với cơ chế provisioning theo family package, cho phép cập nhật phiên bản mới tự động sẵn sàng cho tất cả người dùng mà không cần reprovisioning. Bài viết hướng dẫn toàn bộ vòng đời quản lý gói MSIX từ staging, provisioning (qua ProvisionPackageAsync()), cài đặt/gỡ bỏ per-user, đến gỡ bỏ all-users (Deprovision + RemoveForAllUsers), đồng thời cảnh báo về thứ tự gọi DeprovisionPackageAsync() trước RemovePackageAsync() để tránh race condition và yêu cầu quyền admin cho provisioning/deprovisioning.
Lập trình viên phát triển ứng dụng Windows cần hiểu rõ cách triển khai MSIX per-user và all-users để tối ưu hóa quản lý phiên bản, bảo mật và hiệu suất deploy cho ứng dụng của mình.