eShop – Ứng Dụng Tham Chiếu Thương Mại Điện Tử Xây Dựng Trên .NET Aspire

eShop là một ứng dụng tham chiếu .NET mã nguồn mở được phát triển bởi team .NET của Microsoft, minh họa cách xây dựng một trang web thương mại điện tử hoàn chỉnh với kiến trúc dựa trên dịch vụ (services-based architecture) sử dụng .NET Aspire.

Tổng Quan Ứng Dụng

Với 9.1k sao và 3.1k fork trên GitHub, eShop đã trở thành một trong những dự án tham khảo phổ biến nhất cho các nhà phát triển .NET muốn xây dựng ứng dụng thương mại điện tử hiện đại.

Các tính năng nổi bật:

  • Kiến trúc microservices sử dụng .NET Aspire
  • Hỗ trợ .NET 9 mới nhất
  • Tích hợp Azure OpenAI cho các tính năng AI
  • E2E testing với Playwright
  • Deployment tự động với Azure Developer CLI
  • Hỗ trợ Docker container

Kiến Trúc Hệ Thống

Ứng dụng eShop sử dụng kiến trúc dựa trên dịch vụ với các thành phần chính:

  • Catalog.API: Quản lý danh mục sản phẩm
  • Identity.API: Quản lý xác thực người dùng
  • Ordering.API: Xử lý đơn hàng
  • Payment.API: Xử lý thanh toán
  • Basket.API: Quản lý giỏ hàng
  • WebApp: Giao diện người dùng chính

Cách Bắt Đầu

Yêu Cầu Hệ Thống

Prerequisites:

  • Clone repository: git clone https://github.com/dotnet/eShop
  • Cài đặt và khởi động Docker Desktop
  • .NET 9 SDK mới nhất

Chạy Ứng Dụng

Với Visual Studio (Windows):

  • Mở file eShop.Web.slnf trong Visual Studio
  • Đảm bảo eShop.AppHost.csproj là startup project
  • Nhấn Ctrl+F5 để khởi chạy Aspire

Với Terminal:

dotnet run --project src/eShop.AppHost/eShop.AppHost.csproj

Sau khi chạy, tìm URL của Aspire dashboard trong console output:

Login to the dashboard at: http://localhost:19888/login?t=uniquelogincodeforyou

Tích Hợp Azure OpenAI

eShop hỗ trợ tích hợp Azure OpenAI để cung cấp các tính năng AI nâng cao. Để cấu hình:

  1. Thêm connection string trong eShop.AppHost/appsettings.json
  2. Đặt giá trị useOpenAI = true trong Program.cs

Deployment Với Azure Developer CLI

eShop hỗ trợ deployment tự động lên Azure sử dụng Azure Developer CLI (azd):

azd auth login<br>
azd init<br>
azd up

Dữ Liệu Mẫu

Dữ liệu catalog mẫu được định nghĩa trong file catalog.json. Tên sản phẩm, mô tả và thương hiệu được tạo bằng GPT-35-Turbo, trong khi hình ảnh sản phẩm được tạo bằng DALL·E 3.

Giấy Phép Và Đóng Góp

Dự án được phát hành dưới giấy phép MIT và chào đón sự đóng góp từ cộng đồng. Để biết thêm thông tin về cách đóng góp, xem CONTRIBUTING.mdCODE-OF-CONDUCT.md trong repository.

Phiên Bản Trước

Phiên bản .NET 8 của eShop vẫn có sẵn tại branch release/8.0 cho các nhà phát triển vẫn đang sử dụng .NET 8.

Kết Luận

eShop là một tài nguyên học tập tuyệt vời cho các nhà phát triển .NET muốn hiểu rõ về:

  • Kiến trúc microservices với .NET Aspire
  • Phát triển ứng dụng thương mại điện tử hiện đại
  • Tích hợp AI vào ứng dụng doanh nghiệp
  • Best practices cho testing và deployment

Với cộng đồng hỗ trợ mạnh mẽ và tài liệu đầy đủ, eShop là điểm khởi đầu lý tưởng cho bất kỳ dự án thương mại điện tử nào trên nền tảng .NET.

Chỉ mục