Giter Site home page Giter Site logo

hoseinipeyrov / dotnet-new-caju Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ivanpaulovich/dotnet-new-caju

0.0 0.0 0.0 5.66 MB

This dotnet-new template for .NET Back-ends increases productivity on building applications with the Hexagonal, Clean or Event Sourcing architectures styles. This tool generates a .NET back-end with built-in best practices in 15 seconds!

Home Page: https://caju.paulovich.net/

License: Apache License 2.0

Dockerfile 0.50% C# 99.26% Shell 0.24%

dotnet-new-caju's Introduction

Caju Caju: .NET apps with awesome architectures!

Service Template to help you build evolvable and maintainable applications. It follows the principles from the Clean Architecture book and built on Domain-Driven Design. This tool increases productivity on developing your next microservices.

dotnet new caju

Generate your own awesome Back-end!

NuGet Build Status Gitter

To generate your own awesome .NET Back-end simple run:

dotnet new -i Paulovich.Caju::0.6.0
dotnet new clean

The Architecture Styles

We prevent our software to be coupled from technology details like User Interface, Data Access frameworks, Service Bus or Web Servers. And there are some concepts that guided us:

  • Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases.
  • The SOLID principles are all over the the solution.
  • The software implementation is agnostic from technology, framework, or database. The result is focus on the use cases with input/output ports.
  • Designed around the Business Domain, having Continous Delivery and Independent Deployment.

Sample applications

Run dotnet new -i Paulovich.Caju then try the following commands.

Clean Architecture Solution with basic use cases:

dotnet new clean --use-cases basic

Hexagonal Architecture Solution with all use cases:

dotnet new hexagonal --use-cases full

Empty Event-Sourcing Solution:

dotnet new eventsourcing --use-cases empty

For olher solution types check out the Caju Samples folder.

Switches

There are switches to generate your awesome application with your needs. Try after dotnet new clean or dotnet new hexagonal or dotnet new eventsourcing:

  • --use-cases full basic readonly none
  • --user-interface webapi none
  • --data-access mongo entityframework dapper none
  • --service-bus kafka none
  • --tips true false
  • --skip-restore true false

Use the switch --help for the complete list of options.

Roadmap

  • Allow to choose the architecture style
  • Allow to choose the built-in use cases sets
    • Full set of use cases ✅
    • Basic set of use cases ✅
    • Read Only ✅
    • None ✅
  • Allow to choose the data access frameworks
    • MongoDB ✅
    • Dapper ✅
    • Entity Framework Core ✅
    • Azure Cosmos DB
    • NHibernate Core
    • InMemory ✅
    • None ✅
  • Allow to choose the UI frameworks
    • Both
    • WebAPI ✅
    • Console
    • None ✅
  • Allow to choose the Service Bus frameworks
    • Kafka ✅
    • Azure Event Bus
    • None ✅
  • Allow to skip the dotnet restore after code generation ✅
  • Allow to include or to remove the architecture tips

Common Issues

Check your .NET Core SDK. Our features are only supported in 2.1.4 SDK or plus.

$ dotnet --version
2.1.4

dotnet-new-caju's People

Contributors

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