Description
MicroBootstrap is a framework for quickly and conveniently creating microservices on .NET Core including some infrastructures for Service Discovery, Load Balancing, Routing, Mediator, CQRS, Outbox Messages, Inbox Messages, MongoDb, Message Brokers (RabbitMQ, In-Memory), DDD, Tracing, Logging, Monitoning and Microservices.
MicroBootstrap alternatives and similar packages
Based on the "Application Frameworks" category.
Alternatively, view micro-bootstrap alternatives based on common mentions on social networks and blogs.
-
CoreFX
DISCONTINUED. This repo is used for servicing PR's for .NET Core 2.1 and 3.1. Please visit us at https://github.com/dotnet/runtime -
Introducing .NET Multi-platform App UI (MAUI)
.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop. -
ABP
Open-source web application framework for ASP.NET Core! Offers an opinionated architecture to build enterprise software solutions with best practices on top of the .NET. Provides the fundamental infrastructure, cross-cutting-concern implementations, startup templates, application modules, UI themes, tooling and documentation. -
Uno Platform
Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported. -
DotNetty
DotNetty project – a port of netty, event-driven asynchronous network application framework -
Fusion
Build real-time apps (Blazor included) with less than 1% of extra code responsible for real-time updates. Host 10-1000x faster APIs relying on transparent and nearly 100% consistent caching. We call it DREAM, or Distributed REActive Memoization, and it's here to turn real-time on! -
Mono-Addins
DISCONTINUED. Mono.Addins is a generic framework for creating extensible applications, and for creating add-ins which extend those applications. -
silky
The Silky framework is designed to help developers quickly build a microservice development framework through simple code and configuration under the .net platform. -
Newbe.Claptrap
This is a frameworks with reactive, event sourcing and Actor pattern as basic theories. On top of this, developers can create "distributed", "scale out", and "easy to test" application more simply. Claptrap and it`s Minions is on the way. -
Gradio.NET
⭐Gradio for .NET – a port of Gradio, an open-source Python package that allows you to quickly build a demo or web application for your machine learning model, API, or any arbitrary Python function. Gradio for .NET – 基于 Gradio 的 .NET 移植,Gradio 是一个开源 Python 包,允许你为机器学习模型、API 或任何任意 Python 函数快速构建演示或 Web 应用程序。 -
PersianDataAnnotations
PersianDataAnnotations is ASP.NET Core MVC & ASP.NET MVC Custom Localization DataAnnotations (Localized MVC Errors) for Persian(Farsi) language - فارسی سازی خطاهای اعتبارسنجی توکار ام.وی.سی. و کور.ام.وی.سی. برای نمایش اعتبار سنجی سمت کلاینت -
Plastic
This project provides encapsulation of things like Domain, Application Rules, Business Rules or Business Logic in Application. -
Simplify.Web
Simplify.Web is an open-source, lightweight, fast and highly customizable server-side .NET web-framework based on ASP.NET Core for building HTTP based web-applications, RESTful APIs etc. -
Ether.Network
DISCONTINUED. Ether.Network is an open source networking library that allow developers to create simple, fast and scalable socket server or client applications over the TCP/IP protocol.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of MicroBootstrap or a related project?
README
MicroBootstrap
MicroBootstrap is a framework for quickly and conveniently creating microservices on .NET Core including some infrastructures for Service Discovery, Load Balancing, Routing, Mediator, CQRS, Outbox Messages, Inbox Messages, MongoDb, Message Brokers (RabbitMQ, In-Memory), DDD, Tracing, Logging, Monitoning and Microservices.
This project inspired by Convey project.
🌀 Keep in mind this repository is work in progress and will add some extra features over time 🚀
Support ⭐
If you like my work, feel free to:
Thanks a bunch for supporting me!
How to use?
For using this package you can easily add it to your microservices project and use its infrastructure in your project to get rid of any annoying configuration and implement infrastructural stuff for microservice purpose. just add this command to add NuGet package:
dotnet add package MicroBootstrap
Scaling Microservices
For scaling microservice in this project we have 2 option:
- Using Consul and Fabio: for scaling our microservices we can use of consul and fabio and use of a customize algorithm for load balancing
- Using Kubernetes: use of kubernetes for scaling but kubernetes limted to round robin aprouch for load balancing
For load testing
we can use different tools but I use this tool NBomber. you can use visual studio load test project or other solutions.
How to start with Docker Compose?
Open samples\Game-Microservices-Sample\deployments\docker-compose
directory and execute bellow command:
docker-compose -f infrastructure.yml up -d
you can also execute other scripts in docker-compose folder like mongo-rabbit-redis.yml
to run only theses infrastructure on your machine.
It will start the required infrastructure in the background. Then, you can start the services independently of each other via dotnet run
or ./scripts/start.sh
command in each microservice or run them all at once using Docker that create and run needed docker images in compose file:
docker-compose -f services-local.yml up
or using pre-build docker images in docker hub with using this docker compose:
docker-compose -f services.yml up
How to start with Kubernetes?
For setup your local environment for using kubernetes you can use different approuch but I personally perfer to use K3s from rancher team, it is awsome like rancher for kubernetes management :)
Open samples\Game-Microservices-Sample\deployments\k8s
directory, in this directory, there are two folders infrastructure and micro-services. in infrastructure
folder exits all needed infrastructure for executing our microservices that we use kubectl apply
for running them. for example for running mongodb
on our cluster we should use these commands:
kubectl apply -f mongo-persistentvolumeclaim.yaml
kubectl apply -f mongo-deployment.yaml
kubectl apply -f mongo-service.yaml
In micro-services
folder there are our services. for running our services on our cluster we should kubectl apply
command for example:
kubectl apply -f messaging-service-deployment.yaml
kubectl apply -f messaging-service-service.yaml
Tutorials
Thecnologies & Stack
- .Net Core 3.1
- RabbitMQ
- MongoDB
- Docker
- RESTEeas
- Consul
- Fabio
- Kubernetes
- Docker
- Redis
- Vault
- Jaeger
- Prometheus
- DDD
- Clean Architecture
- SignalR
- Seq
- Serilog
Future Works
- [ ] Integration with Service Mesh and Istio
- [ ] Integration with Marten and Event Sourcing
- [ ] Integration with Kafka
🤝 Contributing
- Fork it ( https://github.com/mehdihadeli/MicroBootstrap/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
*Note that all licence references and agreements mentioned in the MicroBootstrap README section above
are relevant to that project's source code only.