Bỏ qua để đến nội dung

Backend Web Framework

ASP.NET Core (web framework) · Entity Framework Core (ORM) · ASP.NET Core Identity (xác thực và identity). Ba thành phần này được chọn cùng nhau như các phần tích hợp chặt chẽ của hệ sinh thái .NET.


Đội ngũ có kinh nghiệm .NET hiện có từ hệ thống VB.NET legacy. ASP.NET Core cung cấp middleware pipeline có cấu trúc (tenant context injection, session validation, audit enrichment đều được thực thi trước bất kỳ request handler nào thực thi), authorization dựa trên policy được tích hợp ánh xạ trực tiếp đến mô hình permission-code, background job hosting in-process nhất quán với quyết định ranh giới monolith, và hỗ trợ cross-platform cho cả mục tiêu triển khai Windows và Linux.

Tự động tenant scoping ở cấp framework trên mọi query là yêu cầu cứng cho mô hình multitenancy. EF Core áp dụng tenant predicate cho tất cả queries trên tenant-scoped entities ở cấp framework — bỏ qua filter trong repository không phải là failure mode có thể. Nó cũng cung cấp code-first schema migration với raw SQL nhúng (cần thiết để đặt cùng vị trí row-level security policy creation với table creation) và cơ chế save interceptor đóng vai trò là điểm hook cho customization engine Giai đoạn 2.

Cung cấp quản lý người dùng, password hashing và identity dựa trên claims mà không cần hạ tầng mã hóa tùy chỉnh. Nó hỗ trợ cả xác thực cookie (mặc định cho frontend browser đồng host) và xác thực bearer token (cho mobile và API clients) trên cùng authorization layer — các chính sách quyền giống nhau áp dụng bất kể phương thức vận chuyển nào. Token claims được enrich tại đăng nhập với tenant identity và permissions đã resolve, loại bỏ database lookups per-request cho authorization. Nó sẵn sàng OIDC cho SSO enterprise tương lai mà không cần thay thế lớp thực thi authorization.


Phương ánLý do bị loại
Java Spring BootKhông có kỹ năng đội ngũ; không có tương đương trực tiếp với tự động tenant query scoping ở cấp framework
Node.js / NestJSKhông có kỹ năng đội ngũ; đảm bảo tenant filter ở cấp framework yếu hơn
Go (Gin / Echo)Không có kỹ năng đội ngũ; không có tự động tenant query scoping ở cấp framework
Dapper (micro-ORM)Không có tự động query scoping — một filter bị bỏ qua trong bất kỳ repository nào là vi phạm dữ liệu tenant
NHibernateHệ sinh thái đang giảm; chậm trong hỗ trợ tính năng database cần thiết cho dự án này
Truy cập database thôGiống như Dapper; boilerplate không thực tế cho ERP 30+ entity
Triển khai identity tùy chỉnhKhông có lý do cho chi phí và rủi ro bảo mật khi ASP.NET Core Identity đáp ứng tất cả yêu cầu
Managed identity-as-a-serviceGiá theo người dùng không tương thích với mô hình triển khai on-premises; lo ngại về nơi lưu trữ dữ liệu cho Việt Nam
Self-hosted open-source identity serverChi phí vận hành quá mức cho đội ngũ ≤5 kỹ sư; chưa phù hợp cho phạm vi Giai đoạn 1