explaingit

dotnet/eshop

10,448C#Audience · developerComplexity · 4/5Setup · hard

TLDR

A Microsoft reference application showing how to build a multi-service e-commerce website using .NET and Docker. Educational, not for direct production use.

Mindmap

mindmap
  root((repo))
    What it does
      E-commerce reference app
      Educational patterns
      Microservices demo
    Tech Stack
      .NET Aspire
      Docker
      Azure
    Services
      Product Catalog
      Shopping Basket
      Ordering
      Web Frontend
    Audience
      .NET Developers
      Learners
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Learn recommended patterns for structuring a multi-service .NET application with separate catalog, basket, and ordering services.

USE CASE 2

Run a complete working online store locally using Docker and .NET Aspire with a visual dashboard.

USE CASE 3

Deploy a multi-service .NET app to Azure using the Azure Developer CLI with automated cloud resource provisioning.

USE CASE 4

Use as a starter template for building a real e-commerce backend with modern .NET patterns.

Tech stack

.NETC#.NET AspireDockerAzure

Getting it running

Difficulty · hard Time to first run · 1h+

Requires Docker plus Visual Studio or .NET SDK, multiple services must all start together via .NET Aspire.

In plain English

eShop is a reference application from Microsoft that shows how to build an e-commerce website using .NET, Microsoft's software development platform. It is called a reference application because its purpose is educational: it demonstrates patterns and practices that the .NET team recommends, rather than being a product you would use directly in production. The application is structured as a set of services that communicate with each other, which is sometimes called a services-based or microservices architecture. Rather than one large program that does everything, it splits the work across separate pieces: a catalog of products, a shopping basket, ordering, payment, and a web frontend that customers see. The architecture diagram in the README shows how these pieces connect. The project is built on top of .NET Aspire, a Microsoft framework designed to make it easier to build and run these kinds of multi-part applications locally and in the cloud. Aspire handles a lot of the wiring between services and provides a dashboard you can open in a browser to see what is running. Running it locally requires Docker, which is a tool for running software in isolated containers, and either Visual Studio (a Microsoft development environment for Windows) or the .NET SDK (available on Mac, Linux, and Windows). The README walks through setup for each option. Once running, you get a working online store with a product catalog populated with fictional items whose names and images were generated by AI. For deploying to cloud infrastructure, the project includes support for the Azure Developer CLI, which automates the process of creating the necessary cloud resources and deploying the application. The product catalog, descriptions, and images in the sample data are entirely fictional.

Copy-paste prompts

Prompt 1
Using the dotnet/eshop repo as a reference, help me add a new discount service that connects to the existing catalog and basket services using .NET Aspire.
Prompt 2
Walk me through setting up dotnet/eshop locally on a Mac using the .NET SDK and Docker, what are the exact steps and commands?
Prompt 3
I want to deploy dotnet/eshop to Azure. What Azure resources does it create and how do I use azd to provision and deploy each service?
Prompt 4
Explain how the .NET Aspire dashboard works in dotnet/eshop and what I can monitor to debug service issues.
Prompt 5
Help me understand how the checkout flow works in dotnet/eshop, which services are involved when a user places an order?
Open on GitHub → Explain another repo

← dotnet on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.