cloudnative-netcore / Netcorekit
Labels
Projects that are alternatives of or similar to Netcorekit
Cloud-native .NET Core Kit
A set of cloud-native tools and utilities for .NET Core.
The goal of this project is implement the most common used cloud-native technologies (cloud-agnostic approach, containerization mechanism, container orchestration and so on) and share with the technical community the best way to develop great applications with .NET Core.
Give a Star! ⭐️
If you liked netcorekit
project or if it helped you, please give a star ⭐️ for this repository. That will not only help strengthen our .NET community but also improve cloud-native apps development skills for .NET developers in around the world. Thank you very much 👍
Check out my blog or say hi on Twitter!
Features
- [x] Simple libraries. No frameworks. Little abstraction.
- [x] Opt-in and out of the box features with Feature Toggles technique.
- [x] Adhere to twelve-factor app paradigm and more.
- [x] Authentication/Authorization with OAuth 2.0 and OpenID Connect.
- [x] Domain-driven Design in mind.
- [x] Simply Clean Architecture supports.
- [x] Generic repository for data persistence.
- [x] Mapping between domain entity to DTO and vice versa.
- [x] Clean and demystify error, debug logs.
- [x] Resilience and health check out of the box.
- [x] MessagePack for WebAPI and gRPC for internal services.
- [x] Easy for configuration management.
- [x] API versioning from Docker container to WebAPI.
- [x] Documentation template with OpenAPI documentation.
- [x] Work natively with Kubernetes or even with Service Mesh(Istio).
Less code to get starting
Small, lightweight, cloud-native out of the box, and much more simple to get starting with miniservices approach. Why miniservices?
Look how simple we can start as below:
- Standard template - NetCoreKit.Template.Standard: without storage, merely calculation and job tasks:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddStandardTemplate();
}
public void Configure(IApplicationBuilder app)
{
app.UseStandardTemplate();
}
}
- EfCore template - NetCoreKit.Template.EfCore: with Entity Framework Core (SQL Server, MySQL, and SQLite providers) comes along with the generic repository in place:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddEfCoreTemplate<TodoListDbContext>(svc => svc.AddEfCoreMySqlDb());
}
public void Configure(IApplicationBuilder app)
{
app.UseEfCoreTemplate();
}
}
EfCore template usage can be found at TodoApi Sample.
- MongoDb template - NetCoreKit.Template.MongoDb: with NoSQL (MongoDb provider) comes along with the generic repository in place:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMongoTemplate();
}
public void Configure(IApplicationBuilder app)
{
app.UseMongoTemplate();
}
}
MongoDb template usage can be found at BiMonetaryApi Sample.
- Read Get starting section and Play with Kubernetes section to know more about this cloud-native toolkit.
- More advance usage is at Coolstore Microservices project.
Microservice architecture
Contributing
- Fork it!
- 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
- Submit a pull request :p