netcorekit

by cloudnative-netcore

cloudnative-netcore / netcorekit

:heartpulse: A crafted toolkit for building cloud-native apps on the .NET platform

228 Stars 62 Forks Last release: almost 2 years ago (dotnet-2.1-0.1.99) MIT License 147 Commits 2 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Cloud-native .NET Core Kit

Build status Price version

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! :star:

If you liked

netcorekit
project or if it helped you, please give a star :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 :+1:

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(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.

Microservice architecture

msa_architecture

Contributing

  1. Fork it!
  2. Create your feature branch:
    git checkout -b my-new-feature
  3. Commit your changes:
    git commit -am 'Add some feature'
  4. Push to the branch:
    git push origin my-new-feature
  5. Submit a pull request :p

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.