Git Product home page Git Product logo

netcorekit's Introduction

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! โญ

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

  • 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).

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.

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

netcorekit's People

Contributors

thangchung avatar thinhnotes avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.