• Stars
    star
    1,029
  • Rank 44,769 (Top 0.9 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 6 years ago
  • Updated over 5 years ago

Reviews

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

Repository Details

Distributed .NET Core

DevMentors

What is Distributed .NET Core?

It's an open source project (and a course available soon at devmentors.io), providing in-depth knowledge about building microservices using .NET Core framework and variety of tools. One of the goals, was to create a cloud agnostic solution, that you shall be able to run anywhere.

We encourage you to join our Discourse forum available at forum.devmentors.io.

For this particular course, please have a look at the topics being discussed under this category.

What topics will be discussed?

A lot of them, covering different aspects of building distributed services, whether it comes to implementing the code, managing services discovery and load balancing, configuring logging or monitoring, and eventually deploying to the VM using Docker.

Just to name a few:

Which repositories should I clone?

Please clone the following repositories and put them into the same working directory:

How to start the solution?

At first, you need to have the following services up and running on localhost (so-called bare minimum):

These can be run as standalone services, or via Docker (recommended approach). You can run them one by one e.g.

docker run --name mongo -d -p 27017:27017 mongo:4
docker run --name rabbitmq -d -p 5672:5672 -p 15672:15672 --hostname rabbitmq rabbitmq:3-management
docker run --name redis -d -p 6379:6379 redis

Or using Docker compose (first, create a new docker-compose.yml file and then execute docker-compose up command):

version: "3.5"

services:
  mongo:
    image: mongo:4
    ports:
      - '27017:27017'

  rabbitmq:
    image: rabbitmq:3-management
    ports:
      - '5672:5672'
      - '15672:15672'

  redis:
    image: redis
    ports:
      - '6379:6379'

You can also find this file here, which includes custom network and volumes. In order to start it, execute docker-compose -f mongo-rabbit-redis.yml up -d (-d will run containers in the background).

If you want to start additional infrastructural services e.g. Consul, Fabio and Vault, execute docker-compose -f consul-fabio-vault.yml up -d command.

Once you have the core infrastructure available, you can start a particular DNC project either by executing dotnet run command in /src/PROJECT_NAME/ directory or starting a shell script ./scripts/dotnet-run.sh from the root project directory. The order of starting the services has no meaning whatsoever - just keep in mind that DShop.Api acts as a gateway to the whole system (except DShop.Services.Identityfor authentication).

You should be able to see new topics and queues available in the RabbitMQ management system, default UI is accessible at http://localhost:15672.

In order to start the DNC services using Docker, run docker-compose.yml file, that will pull the images from hub.docker.com/r/devmentors/.

You can also build you own local images easily, either run dotnet-build-local-all.sh, then dotnet-publish-all.sh then docker-build-local-all.sh scripts or just docker-build-local-multistage-all.sh (that will use Dockerfile.multistage instead of default Dockerfile).

Once the local images are built, run compose command for docker-compose-local.yml.

Eventually, you can type docker inspect dshop-network to see if everything is in place.

Where can I find the list of all Docker images being used?

You can find them in this repository listed in docker-images.txt file.

Moreover, in the scripts directory, you can find git-clone-all.sh, git-pull-all.sh, dotnet-build-all.sh or dotnet-run-all.sh scripts that might be helpful for the repeating tasks.

What HTTP requests can be sent to the API?

You can find the list of all HTTP requests in DShop.rest file placed in the root folder of DShop.Api repository (here). This file is compatible with REST Client plugin for Visual Studio Code.

More Repositories

1

Pacco

Sample microservices solution in .NET Core 3.1 based on the cloud-agnostic approach
Shell
803
star
2

Inflow

Modular Monolith virtual payments app sample - reference project for the comprehensive course
C#
222
star
3

PackIT

C#
217
star
4

modular-framework

Set of shared abstractions & components for building the modular monolith
C#
150
star
5

DNC-DShop.Common

[Distributed .NET Core] Common library for DShop project.
C#
142
star
6

FeedR

Microservices sample solution for YouTube videos services
C#
137
star
7

Confab

Modular Monolith conference management app sample - reference project for the comprehensive course
C#
135
star
8

Cine

Modular monolith in .NET Core
C#
131
star
9

aspnetcore-developer-roadmap

128
star
10

ModularMonolith

C#
111
star
11

NPay

Simple virtual payments app built as a modular monolith (reference project for YouTube mini-course)
C#
106
star
12

DNC-DShop.Api

[Distributed .NET Core] API Gateway for DShop project.
C#
93
star
13

group-flights-ddd

[PL] Domain-Driven Design "Pragmatycznie" - od strategii do taktyki
C#
62
star
14

MySpot

Web API Fundamentals course project
C#
61
star
15

modular-monolith-template

C#
48
star
16

MySpot-Microservices

C#
46
star
17

Masterclass-DDD

C#
38
star
18

DNC-DShop.Services.Orders

C#
37
star
19

micro-framework

C#
37
star
20

Trill-modular-monolith

C#
35
star
21

Messaging-In-Distributed-Systems

Code for all the messaging-related concepts/patterns described on YouTube during "Messaging in Distributed Systems" series.
C#
29
star
22

DNC-DShop.Services.Identity

C#
27
star
23

DNC-DShop.Services.Products

C#
27
star
24

Pacco.APIGateway

C#
26
star
25

DNC-DShop.Services.Signalr

JavaScript
25
star
26

DNC-DShop.Monolith

C#
24
star
27

DNC-DShop.Services.Customers

C#
23
star
28

Pacco.Services.Identity

C#
23
star
29

Pacco.Services.Availability

C#
22
star
30

DNC-DShop.Services.Operations

C#
20
star
31

DNC-DShop.Services.Notifications

C#
20
star
32

ddd-building-a-model

Building domain model in an open, one step at a time. More at: https://www.youtube.com/@DevMentorsPL
C#
19
star
33

Pacco.Services.Customers

C#
17
star
34

DNC-DShop.Services.Discounts

C#
17
star
35

Pacco.Services.Orders

C#
16
star
36

Inflow-micro

C#
16
star
37

DevMentors.Api

Web application for devmentors.io
C#
15
star
38

DNC-DShop.Web

TypeScript
14
star
39

Pacco.Services.Vehicles

Vehicles service for Pacco.
C#
13
star
40

Pacco.Services.OrderMaker

Order maker service for Pacco.
C#
12
star
41

Pacco.Services.Parcels

C#
12
star
42

Pacco.Services.Pricing

Pricing service for Pacco.
C#
12
star
43

YAG

C#
11
star
44

Conveyor

C#
10
star
45

DNC-DShop.Messages

C#
10
star
46

Trill

Dockerfile
9
star
47

Nanoservice

C#
9
star
48

DNC-DShop.Services.Storage

C#
8
star
49

Pacco.Services.Operations

JavaScript
8
star
50

Pacco.Services.Deliveries

C#
8
star
51

DNC-DShop.Blazor

C#
8
star
52

Confab.Web

HTML
8
star
53

WebAPI-Workshops-Nov-2023

Repository for project developed during November Web API workshops.
C#
7
star
54

ApplicationPartManager.Demo

Example ASP.NET Core app showing ApplicationPartManager capabilities.
C#
7
star
55

Trill.Saga

C#
7
star
56

DNC-DShop.Api.Next

Shell
6
star
57

Pacco.APIGateway.Ocelot

C#
6
star
58

Trill.Services.Users

C#
6
star
59

Governor

C#
6
star
60

microservices-workshops-part-2

C#
4
star
61

NPost

Shell
4
star
62

Pacco.Web

C#
3
star
63

FastPay-workshops

C#
3
star
64

Messaging-Pragmatycznie-YouTube

C#
3
star
65

MySpot-MM-Workshops

C#
2
star
66

Trill.APIGateway

C#
1
star
67

myspot-warsztaty

C#
1
star
68

NPost.APIGateway

C#
1
star
69

NPost.Services.Parcels

C#
1
star
70

NPost.Services.Deliveries

C#
1
star
71

Trill.Services.Analytics

C#
1
star
72

NPost.Services.Routing

C#
1
star