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
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. -
ASP.NET Boilerplate
ASP.NET Boilerplate - Web Application Framework -
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 and the ASP.NET Core platforms. Provides the fundamental infrastructure, production-ready startup templates, application modules, UI themes, tooling, guides 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 -
AspectCore Framework
AspectCore is an AOP-based cross platform framework for .NET Standard. -
Kentor Authentication Services
Saml2 Authentication services for ASP.NET -
Microdot Framework
Microdot: An open source .NET microservices framework -
CSLA .NET
A home for your business logic in any .NET application. -
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! -
X.PagedList
Library for easily paging through any IEnumerable/IQueryable in ASP.NET -
ASP.NET MVC Boilerplate Framework
.NET Core Extensions and Helper NuGet packages. -
rxweb
Tons of extensively featured packages for Angular, VUE and React Projects -
Mono-Addins
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. -
DWKit
DWKit is a Business Process Management System based on .NET Core and React -
Database scaffolding platform
Database scaffolding tool -
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 MVC and OWIN for building HTTP based web-applications, RESTful APIs etc. -
MVCExtensibleRoleManagement
ASP.NET MVC Role-Based Security Example -
Ether.Network
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.
Clean code begins in your IDE with SonarLint
* 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.