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.
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!
- Simple libraries. No frameworks. Little abstraction.
- Opt-in and out of the box features with Feature Toggles technique.
- Adhere to twelve-factor app paradigm and more.
- Authentication/Authorization with OAuth 2.0 and OpenID Connect.
- Domain-driven Design in mind.
- Simply Clean Architecture supports.
- Generic repository for data persistence.
- Mapping between domain entity to DTO and vice versa.
- Clean and demystify error, debug logs.
- Resilience and health check out of the box.
- MessagePack for WebAPI and gRPC for internal services.
- Easy for configuration management.
- API versioning from Docker container to WebAPI.
- Documentation template with OpenAPI documentation.
- Work natively with Kubernetes or even with Service Mesh(Istio).
Small, lightweight, cloud-native out of the box, and much more simple to get starting with miniservices approach. Why miniservices?
- 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.
- 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