• Stars
    star
    1,522
  • Rank 29,760 (Top 0.7 %)
  • Language
    C#
  • License
    MIT License
  • Created over 3 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A sample .NET distributed application based on eShopOnContainers, powered by Dapr.

eShop on Dapr

A sample .NET Core distributed application based on eShopOnContainers, powered by Dapr. The current version targets .NET 7.

The accompanying e-book Dapr for .NET developers uses the sample code in this repository to demonstrate Dapr features and benefits. You can read the online version and download the PDF for free.

eShopOnDapr

Dapr enables developers using any language or framework to easily write microservices. It addresses many of the challenges found that come along with distributed applications, such as:

  • How can distributed services discover each other and communicate synchronously?
  • How can they implement asynchronous messaging?
  • How can they maintain contextual information across a transaction?
  • How can they become resilient to failure?
  • How can they scale to meet fluctuating demand?
  • How are they monitored and observed?

eShopOnDapr evolves (or, Daprizes, if you will) the earlier eShopOnContainers application by integrating Dapr building blocks and components:

eShopOnDapr reference application architecture.

As focus of the eShopOnDapr reference application is on Dapr, the original application has been updated. The updated architecture consists of:

  • A frontend web-app written in Blazor. It sends user requests to an API gateway microservice.

  • The API gateway abstracts the backend core microservices from the frontend client. It's implemented using Envoy, a high performant, open-source service proxy. Envoy routes incoming requests to various backend microservices. Most requests are simple CRUD operations (for example, get the list of brands from the catalog) and handled by a direct call to a backend microservice.

  • Other requests are logically more complex and require multiple microservices to work together. For these cases, eShopOnDapr implements an aggregator microservice that orchestrates a workflow across the microservices needed to complete the operation.

  • The set of core backend microservices includes functionality required for an eCommerce store. Each is self-contained and independent of the others. Following widely accepted domain decomposing patterns, each microservice isolates a specific business capability:

    • The basket service manages the customer's shopping basket experience.
    • The catalog service manages product items available for sale.
    • The identity service manages authentication and identity.
    • The ordering service handles all aspects of placing and managing orders.
    • The payment service transacts the customer's payment.
  • Finally, the event bus enables asynchronous publish/subscribe messaging across microservices. Developers can plug in any Dapr-supported message broker.

Getting started

eShopOnDapr runs in containers and requires Docker to run. There are various ways to start the application:

Note that it will take a little while to start all containers. eShopOnDapr includes a health UI that you can use to see if the containers are ready. You can access it at http://localhost:5107.

When all microservices are healthy, you can navigate to http://localhost:5104 to view the eShopOnDapr UI.

Attributions

Model photo by Angelo Pantazis on Unsplash

More Repositories

1

eShopOnContainers

Cross-platform .NET sample microservices and container based application that runs on Linux Windows and macOS. Powered by .NET 7, Docker Containers and Azure Kubernetes Services. Supports Visual Studio, VS for Mac and CLI based environments with Docker CLI, dotnet CLI, VS Code or any other code editor. Moved to https://github.com/dotnet/eShop.
C#
24,582
star
2

eShopOnWeb

Sample ASP.NET Core 8.0 reference application, powered by Microsoft, demonstrating a layered application architecture with monolithic deployment model. Download the eBook PDF from docs folder.
C#
9,931
star
3

News

News on .NET Architecture Guidance, eShopOnContainers and all the reference apps in dotnet-architecture
1,101
star
4

eBooks

.NET Architecture e-Books
984
star
5

eShopModernizing

Modernizing existing .NET Framework, hypothetically legacy backoffice eShop web apps (traditional ASP.NET WebForms and MVC) with Windows Containers and Azure Cloud
JavaScript
907
star
6

eshop-mobile-client

eShop mobile & desktop client built with .NET MAUI
C#
512
star
7

eShopOnBlazor

Migration of a traditional ASP.NET Web Forms app to Blazor
JavaScript
474
star
8

HealthChecks

Experimental Health Checks for building services, such as with ASP.NET Core
C#
455
star
9

eShopOnContainersAI

eShopOnContainers with AI, ML and Bots features
JavaScript
403
star
10

PerformanceMonitor

.NET Core Application Performance Monitor
C#
236
star
11

eShopOnAzure

Azure version of the eShopOnContainers, with implementations based on Azure services.
C#
219
star
12

eShopOnUWP

Universal Windows Platform line of business application showcasing the latest Windows 10 capabilities such as Fluent Design System, Ink and Windows Hello.
C#
162
star
13

Messaging

.NET Core Application blocks for message-based communication
158
star
14

grpc-for-wcf-developers

gRPC for WCF Developers guidance samples
C#
132
star
15

MNISTTensorCNTK

C#
118
star
16

RecommendationEngine

Recommendation Engine using Azure ML Studio to recommend related movies.
C#
101
star
17

explore-docker

C#
7
star
18

.github

2
star