|
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 | + |
| 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 | + |
| 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 up –build |
| 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 | + |
| 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