eShop README

The project's README from github.com/dotnet/eShop. As one markdown file: README.md.

eShop Reference Application - "AdventureWorks"

A reference .NET application implementing an e-commerce website using a services-based architecture with Aspire.

eShop Reference Application architecture diagram

eShop homepage screenshot

Getting Started

This version of eShop is based on .NET 10.

Previous eShop versions:

Prerequisites

  1. Install a .NET 10 SDK that satisfies global.json.

  2. Install the Aspire CLI and verify that it is available:

    aspire --version
    
  3. Install and start an OCI-compatible container runtime. Docker Desktop is the recommended default. Podman is also supported; follow the Aspire prerequisites to configure it.

  4. Clone the repository:

    git clone https://github.com/dotnet/eShop.git
    cd eShop
    

No separate Aspire workload or Visual Studio component is required; the AppHost SDK and hosting integrations are referenced by the projects in this repository.

Optional IDE setup

Running the solution

[!WARNING] Ensure that your container runtime is running before starting eShop.

From the terminal

From the repository root, run:

aspire run

The root aspire.config.json selects src/eShop.AppHost/eShop.AppHost.csproj, avoiding ambiguity with the test AppHosts in the repository. When startup completes, the CLI prints a dashboard URL similar to:

Dashboard: https://localhost:<port>/login?t=<token>

Press Ctrl+C to stop the AppHost. See the aspire run command for additional options.

To run the AppHost in the background instead:

aspire start
aspire ps

When you are finished, run aspire stop. See the aspire start command for details.

From Visual Studio

  1. Open eShop.Web.slnf.
  2. Set src/eShop.AppHost/eShop.AppHost.csproj as the startup project.
  3. Press Ctrl+F5 to start eShop and open the Aspire dashboard.

Running tests

Run the server tests:

dotnet test --solution eShop.Web.slnf

Run the Playwright browser journeys. Playwright starts the AppHost automatically, so ensure your container runtime is running first.

npm ci
npx playwright install chromium
npm run test:e2e

Optional: AI Chatbot with Microsoft Foundry

This option provisions a Microsoft Foundry resource during local development, so first authenticate to Azure and configure the subscription and location:

az login
aspire secret set "Azure:SubscriptionId" "<subscription-id>"
aspire secret set "Azure:Location" "eastus"

Then enable Foundry and start eShop:

$env:UseFoundry = "true"
aspire run

Aspire provisions the gpt-4.1-mini and text-embedding-3-small deployments and injects their connection information into the consuming projects. The Foundry hosting integration currently uses a preview package. See local Azure provisioning and the Microsoft Foundry hosting integration for details.

Deploy to Azure Container Apps

The AppHost is already configured with an Azure Container Apps environment, so the Aspire CLI can deploy directly from the application model. See the Aspire Azure Container Apps deployment guide for details.

[!WARNING] This sample deploys PostgreSQL, Redis, and RabbitMQ as containers in Azure Container Apps. This configuration is intended for evaluation and demonstrations, not production data.

Prerequisites:

Sign in, optionally preview the deployment pipeline, and deploy:

az login
aspire deploy --list-steps
aspire deploy

For local interactive use, aspire deploy prompts for missing Azure settings. For non-interactive use, provide them explicitly:

$env:Azure__SubscriptionId = "<subscription-id>"
$env:Azure__Location = "eastus"
$env:Azure__ResourceGroup = "rg-eshop-demo"
aspire deploy --non-interactive

Use aspire publish when you need deployment artifacts for inspection or another deployment tool. Running it first is not required: aspire deploy invokes the deployment pipeline and its dependencies directly rather than consuming an earlier publish output.

When you no longer need the deployment, run aspire destroy. This deletes the entire configured resource group, including resources that Aspire did not create, so review the target carefully before confirming.

Contributing

For more information on contributing to this repo, read the contribution documentation and the Code of Conduct.

Sample data

The sample catalog data is defined in catalog.json. Those product names, descriptions, and brand names are fictional and were generated using GPT-35-Turbo, and the corresponding product images were generated using DALL·E 3.

eShop on Azure

For a version of this app configured for deployment on Azure, please view the eShop on Azure repo.

eShop (dotnet/eShop)

Searching Database…

11K ·GitHub
这是什么?一个参考用的 .NET 应用,实现了一个电商网站('AdventureWorks'),基于 .NET Aspire 构建,采用基于服务的微服务架构。
这是我要导入的库,还是要运行的完整应用?这是一个完整的多服务示例应用,而不是可以导入的包。你需要运行整个 AppHost,把所有 eCommerce 微服务一起启动。
怎么让它跑起来?克隆仓库,确保容器运行时已启动,然后在仓库根目录运行 Aspire CLI(或在 Visual Studio 中打开 eShop.Web.slnf 并按 Ctrl+F5),以启动 AppHost 并打开 Aspire 仪表板。
运行之前需要安装什么?首先需要安装:与 global.json 匹配的 .NET 10 SDK、Aspire CLI,以及兼容 OCI 的容器运行时(推荐 Docker Desktop,也支持 Podman)。
部署到云端有什么需要注意的坑吗?将其部署到 Azure Container Apps 时,会启动 PostgreSQL、Redis 和 RabbitMQ 的实时容器。README 明确说明,这些仅供评估和演示使用,不适用于生产数据。
可选的 AI 聊天机器人功能是什么?eShop 在本地开发时可以选择预配一个 Microsoft Foundry 资源,以添加 AI 聊天机器人,使用 Aspire 自动注入到应用中的 gpt-4.1-mini 和 text-embedding-3-small 模型。
商品目录数据是真的吗?不是。catalog.json 中的商品名称、描述、品牌名称和图片都是虚构的,由 GPT-3.5-Turbo 和 DALL-E 3 生成。
我能直接从这里把 eShop 部署到 Azure 吗?可以。AppHost 已经配置了 Azure Container Apps 环境,因此运行 'aspire deploy' 即可直接根据应用模型完成预配和部署。
有没有专门用于生产环境 Azure 部署的版本?项目指向一个单独的 'eShop on Azure' 仓库,该仓库专门为此目的进行了配置;而这个版本的 Azure 部署仅用于演示。
Creator
dotnet
Size
26.8 MB
Stars
11K
Age
3y
Commits · 90 Days