Chuyển đến nội dung chính

Bài đăng

Hiển thị các bài đăng có nhãn Visual Studio

AutoMapper → Mapperly trong ASP.NET MVC - Part 2

.NET ASP.NET Visual Studio Đây là phần 2 trong series modernize ASP.NET MVC 5 trên .NET Framework 4.8. Ở Part 1 , chúng ta đã migrate project sang SDK-style .csproj . Bây giờ nền móng đã sạch, có thể bắt đầu tối ưu phần “đụng nhiều nhất mỗi ngày”: mapping giữa entity và ViewModel . 1. Vì sao nên thay AutoMapper? AutoMapper rất tiện — nhưng cũng có những trade-off: Mapping diễn ra ở runtime → khó debug Logic bị “giấu” trong config Performance không tối ưu trong một số case Khi project lớn dần, những vấn đề này bắt đầu rõ ràng hơn. Giải pháp thay thế: compile-time mapping . Một trong những thư viện nổi bật: Mapperly . 2. Mapperly là gì? Mapperly sử dụng Source Generator để generate code mapping ngay lúc build. Nghĩa là: Không còn reflection Không còn runtime mapping Mapping = code C# thật (có thể debug) Hiểu đơn giản: thay vì “config mapping”, bạn “viết mapping — và tool generate phần còn lại”....

AutoMapper → Mapperly trong ASP.NET MVC - Part 1

.NET ASP.NET Visual Studio Đây là phần 1 trong series modernize ASP.NET MVC 5 trên .NET Framework 4.8. Series này gồm 2 phần: Part 1: migrate sang SDK-style .csproj Part 2: tích hợp compile-time mapping (Mapperly) Nếu nền móng project chưa ổn, việc tối ưu phía trên (mapping, performance, architecture) sẽ rất khó maintain về lâu dài. Vì vậy, bài này chỉ tập trung vào một việc duy nhất: chuyển project MVC 5 sang SDK-style và chạy ổn định với IIS Express . 1. Vấn đề của project legacy Hầu hết project ASP.NET MVC 5 lâu năm đều có đặc điểm chung: .csproj dạng cũ (old-style) Khai báo file thủ công Sử dụng packages.config Những vấn đề thường gặp: File .csproj dài hàng trăm dòng, khó đọc Thêm/xóa file → phải sửa project file Merge conflict xảy ra thường xuyên Project vẫn chạy — nhưng càng ngày càng khó maintain. 2. SDK-style giải quyết điều gì? SDK-style .csproj mang lại cách tiếp cận đơn giản h...

Hướng dẫn dùng GitHub Copilot + Custom Instruction trong Visual Studio 2026

Trong các dự án enterprise .NET, chúng ta thường có: Coding convention riêng Architecture pattern riêng Folder structure riêng Vấn đề là GitHub Copilot thường generate code theo pattern phổ biến trên internet , chứ không theo convention của project. Trong bài viết này mình thử nghiệm một cách “huấn luyện nhẹ” Copilot để nó tuân theo structure của project. Setup GitHub Copilot trong Visual Studio 2026 Tạo file copilot-instructions.md Structured prompt với constraints Setup GitHub Copilot trong Visual Studio 2026 Đăng nhập GitHub View → GitHub Copilot Chat Login GitHub account của bạn. Copilot sẽ hoạt động nếu bạn có: Copilot Individual Copilot Business Copilot Enterprise Test Copilot Tạo file: TestRepository.cs Viết comment: // create a generic repository for EF Core Nếu Copilot gợi ý code → setup thành công. Vấn đề khi dùng Copilot trong dự án thật Mục tiêu là rewrite theo pattern: Entity Framework Repository Pattern Unit Of Wo...

Tổng hợp những extension làm Visual Studio Code giống Visual Studio hơn

Visual Studio có ba phiên bản. Community miễn phí và được hỗ trợ cho các cá nhân hoặc cho tối đa năm người dùng trong “các tổ chức phi doanh nghiệp”. Vì vậy, các bạn buộc phải dùng Visual Studio Code trong công ty. Dưới đây là các extension để hỗ trợ Visual Studio Code mạnh mẽ hơn Tạo Project *.sln và thêm Visual Studio File pannel explorer: https://marketplace.visualstudio.com/items?itemName=fernandoescolar.vscode-solution-explorer (còn tiếp)

[Visual Studio]Tùy chỉnh đường dẫn thư mục packages

Bạn cần tạo 1 project với cấu trúc thư mục như sau: doc: chứa tài liệu liên quan tới codebase. lib: Chứa toàn bộ thư viện third-party và packages được dùng cho chương trình src: Chứa toàn bộ source code, bao gồm Visual Studio và tất cả các folder trong project. Và mặc định, NuGet download toàn bộ packages vào trong 1 folder gọi là packages. Folder này được tạo trong cùng 1 folder mà solution tạo ra. Nếu bạn muốn di chuyển folder packages này ra ngoài, bạn cần tạo file nuget.config (đặt trong folder của solution) với nội dung như sau: <settings> <repositoryPath>..\lib</repositoryPath> </settings> Chúc các bạn thành công! Tham khảo: ASP.NET Web API 2, 2nd Edition