Skip to content

Commit c457ddc

Browse files
committed
2 parents 8457204 + 98f4027 commit c457ddc

File tree

2 files changed

+151
-14
lines changed

2 files changed

+151
-14
lines changed

.github/FUNDING.yml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
custom: ["https://aspnetrun.azurewebsites.net/DownloadBook"]

README.md

+150-14
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,150 @@
1-
# run-aspnetcore-microservices
2-
3-
aspnet core
4-
docker
5-
microservices
6-
angular
7-
ocelot
8-
rabbitMQ
9-
autofac
10-
mediatR
11-
redis
12-
dapper
13-
14-
This repository is ***under development***. It is **not finished yet**.
1+
**Quick DEMO on Youtube -> https://www.youtube.com/watch?v=p6lVqDNUYaY**
2+
3+
**Check Explanation of this Microservices Repository on Medium -> https://medium.com/aspnetrun/microservices-architecture-on-net-3b4865eea03f**
4+
5+
See the big picture of **implementations on microservices with .net tools** on real-world **e-commerce microservices** project;
6+
7+
![aspnetrun-microservices](https://user-images.githubusercontent.com/1147445/79753821-34b93800-831f-11ea-86fc-617654557084.png)
8+
9+
There is a couple of microservices which implemented **e-commerce** modules over **Product, Basket** and **Ordering** microservices with **NoSQL (MongoDB, Redis)** and **Relational databases (Sql Server)** with communicating over **RabbitMQ Event Driven Communication** and using **Ocelot API Gateway**.
10+
11+
## Whats Including In This Repository
12+
We have implemented below **features over the run-aspnetcore-microservices repository**.
13+
14+
#### Catalog microservice which includes;
15+
* ASP.NET Core Web API application
16+
* REST API principles, CRUD operations
17+
* Mongo DB NoSQL database connection on docker
18+
* N-Layer implementation with Repository Pattern
19+
* Swagger Open API implementation
20+
* Dockerfile implementation
21+
22+
#### Basket microservice which includes;
23+
* ASP.NET Core Web API application
24+
* REST API principles, CRUD operations
25+
* Redis database connection on docker
26+
* Redis connection implementation
27+
* RabbitMQ trigger event queue when checkout cart
28+
* Swagger Open API implementation
29+
* Dockerfile implementation
30+
31+
#### RabbitMQ messaging library which includes;
32+
* Base EventBus implementation and add references Microservices
33+
34+
#### Ordering microservice which includes; (over the catalog specs)
35+
* ASP.NET Core Web API application
36+
* Entity Framework Core on SQL Server docker
37+
* REST API principles, CRUD operations
38+
* Consuming RabbitMQ messages
39+
* Clean Architecture implementation with CQRS Pattern
40+
* Event Sourcing
41+
* Implementation of MediatR, Autofac, FluentValidator, AutoMapper
42+
* Swagger Open API implementation
43+
* Dockerfile implementation
44+
45+
#### API Gateway Ocelot microservice which includes;
46+
* Routing to inside microservices
47+
* Dockerization api-gateway
48+
49+
#### WebUI ShoppingApp microservice which includes;
50+
* Asp.net Core Web Application with Razor template
51+
* Call Ocelot APIs with HttpClientFactory
52+
* Aspnet core razor tools - View Components, partial Views, Tag Helpers, Model Bindings and Validations, Razor Sections etc..
53+
54+
#### Docker Compose establishment with all microservices on docker;
55+
* Dockerization of microservices
56+
* Dockerization of database
57+
* Override Environment variables
58+
59+
## The Book - Microservices Architecture and Step by Step Implementation on .NET
60+
61+
You can find **Microservices Architecture and Step by Step Implementation on .NET book** which **step by step developing** this repository with extensive explanations and details. This book is the **best path to leverage your .NET skills** in every aspect from beginner to senior level you can benefit to ramp-up faster on **Enterprise Application Development practices** and easy to **Onboarding to Full Stack .Net Core Developer jobs**.
62+
63+
**[Download Microservices Architecture and Step by Step Implementation on .NET Book](https://aspnetrun.azurewebsites.net/Microservices)**
64+
65+
![aspnetrun_microservices3](https://user-images.githubusercontent.com/1147445/81383140-31dc8680-9118-11ea-992a-3ad8abc62314.png)
66+
67+
**[Download Microservices Architecture and Step by Step Implementation on .NET Book](https://aspnetrun.azurewebsites.net/Microservices)**
68+
69+
## Run The Project
70+
You will need the following tools:
71+
72+
* [Visual Studio 2019](https://visualstudio.microsoft.com/downloads/)
73+
* [.Net Core 3.1 or later](https://dotnet.microsoft.com/download/dotnet-core/3.1)
74+
* [Docker Desktop](https://www.docker.com/products/docker-desktop)
75+
76+
### Installing
77+
Follow these steps to get your development environment set up: (Before Run Start the Docker Desktop)
78+
1. Clone the repository
79+
2. At the root directory which include **docker-compose.yml** files, run below command:
80+
```csharp
81+
docker-compose -f docker-compose.yml -f docker-compose.override.yml upbuild
82+
```
83+
3. Wait for docker compose all microservices. That’s it!
84+
85+
4. You can **launch microservices** as below urls:
86+
* **RabbitMQ -> http://localhost:15672/**
87+
* **Catalog API -> http://localhost:8000/swagger/index.html**
88+
* **Basket API -> http://localhost:8001/swagger/index.html**
89+
* **Order API -> http://localhost:8002/swagger/index.html**
90+
* **API Gateway -> http://localhost:7000/Order?username=swn**
91+
* **Web UI -> http://localhost:8003/**
92+
93+
5. Launch http://localhost:8003/ in your browser to view the Web UI. You can use Web project in order to **call microservices over API Gateway**. When you **checkout the basket** you can follow **queue record on RabbitMQ dashboard**.
94+
95+
![mainscreen2](https://user-images.githubusercontent.com/1147445/81381837-08226000-9116-11ea-9489-82645b8dbfc4.png)
96+
97+
## Give a Star! :star:
98+
If you liked the project or if AspnetRun helped you, please **give a star**. And also please **fork** this repository and send us **pull-requests**. If you find any problem please open **issue**.
99+
100+
# What is AspnetRun ?
101+
The best path to **leverage your ASP.NET Core** skills. Onboarding to **Full Stack .Net Core Developer** jobs. Boilerplate for **ASP.NET Core reference application** with **Entity Framework Core**, demonstrating a layered application architecture with DDD best practices. Implements NLayer **Hexagonal architecture** (Core, Application, Infrastructure and Presentation Layers) and **Domain Driven Design** (Entities, Repositories, Domain/Application Services, DTO's...)
102+
and aimed to be a **Clean Architecture**, with applying **SOLID principles** in order to use for a project template.
103+
Also implements **best practices** like **loosely-coupled, dependency-inverted** architecture and using **design patterns** such as **Dependency Injection**, logging, validation, exception handling, localization and so on.
104+
105+
You can check full repository documentations and step by step development of **[100+ page e-book PDF](https://aspnetrun.azurewebsites.net)** from here - **https://aspnetrun.azurewebsites.net**. Also detail introduction of book and project structure exists on **[medium aspnetrun page](https://medium.com/aspnetrun)**. You can follow **aspnetrun repositories** for building **step by step** asp.net core **web development skills**.
106+
107+
# AspnetRun Repositories
108+
Here you can find all of the **aspnetrun repositories from easy to difficult**, Also this list can be track a **learning path** of asp.net core respectively;
109+
* **[run-aspnetcore-basics](https://github.com/aspnetrun/run-aspnetcore-basics)** - Building fastest ASP.NET Core Default Web Application template. This solution **only one solution one project** for **idea generation** with Asp.Net Core.
110+
* **[run-aspnetcore](https://github.com/aspnetrun/run-aspnetcore)** - Building ASP.NET Core Web Application with Entity Framework.Core and apply **Clean Architecture** with DDD best practices.
111+
* **[run-aspnetcore-cqrs](https://github.com/aspnetrun/run-aspnetcore-cqrs)** - Building Single-Page Web Applications(SPA) using ASP.NET Core & EF.Core, Web API Project and implement **CQRS Design Pattern**.
112+
* **[run-aspnetcore-microservices](https://github.com/aspnetrun/run-aspnetcore-microservices)** - Building **Microservices** on .Net platforms which used **Asp.Net Web API, Docker, RabbitMQ, Ocelot API Gateway, MongoDB, Redis, SqlServer, Entity Framework Core, CQRS and Clean Architecture** implementation.
113+
114+
## Disclaimer
115+
116+
* This repository is not intended to be a definitive solution.
117+
* This repository not implemented a lot of 3rd party packages, we are try to avoid the over engineering when building on best practices.
118+
* Beware to use in production way.
119+
120+
## Contributing
121+
122+
Please read [Contributing.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426) for details on our code of conduct, and the process for submitting pull requests to us.
123+
We have a lot of **missing features** you can check [here from our project page](https://github.com/aspnetrun/run-aspnetcore-realworld/projects/1) and you can develop them. We are waiting for your pull requests.
124+
125+
## Versioning
126+
127+
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/aspnetrun/run-core/tags).
128+
129+
## Next Releases and RoapMap
130+
131+
For information on upcoming features and fixes, take a look at the [product roadmap](https://github.com/aspnetrun/run-core/projects).
132+
133+
## Deployment - AspnetRun Online
134+
135+
This project is deployed on Azure. See the project running on Azure in [here](aspnetrun.com).
136+
137+
## Pull-Request
138+
139+
Please fork this repository, and send me your findings with pull-requests. This is open-source repository so open to contributions.
140+
Get your item from **missing features** [here from our project page](https://github.com/aspnetrun/run-aspnetcore-realworld/projects/1) and send us your pull requests.
141+
142+
## Authors
143+
144+
* **Mehmet Ozkaya** - *Initial work* - [mehmetozkaya](https://github.com/mehmetozkaya)
145+
146+
See also the list of [contributors](https://github.com/aspnetrun/run-core/contributors) who participated in this project. Check also [gihtub page of repository.](https://aspnetrun.github.io/run-aspnetcore-angular-realworld/)
147+
148+
## License
149+
150+
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

0 commit comments

Comments
 (0)