• Stars
    star
    913
  • Rank 50,033 (Top 1.0 %)
  • Language
    C#
  • License
    MIT License
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A .NET 7 scaffolding tool to help you stop worrying about boilerplate and focus on your business logic πŸš€

Craftsman Scaffolds Your Boilerplate!

Craftsman is the workhorse behind the Wrapt framework and provides a suite of CLI commands for quickly scaffolding out new files and projects for your .NET Web APIs with simple CLI commands and configuration files.

Latest Release License


Quickstart

  • Make sure you have the .NET 7 SDK installed, along with EF Core
  • Install the craftsman tool
dotnet tool install -g craftsman
  • Spin up an example project
craftsman new example MyFirstProject

Documentation

For all the documentation on how to use Craftsman, visit wrapt.dev.

Upcoming Features

I'm currently working through a deep example project the really dogfood things and will be making updates around my finding from there. I also want to harden up the frontend work with NextJS soon as well and get that more widely available. If any React devs want to help with this definitely let me know!

Have a request for something you don't see below? Join our discord and let's talk about it!

Coming in 0.22

βœ… Move from Sieve to QueryKit

βœ… TestContainers updated

βœ… Records for queries and commands and DTOs

🚧 Relationships overhaul

πŸ•°οΈ No more queryable exposed in repositories

🚧 Update GetList feature to GetPagedList and create a distinct `GetList

🚧 Limit shared kernel to messages

Some 0.21 highlights

βœ… New default error handler middleware (existing still optional)

βœ… Mapster -> Mapperly

Some 0.20 highlights

βœ… Intermediate model to not pass DTOs to domain

βœ… Specification support

Some 0.19 highlights

βœ… Test projects updated to use XUnit

βœ… .NET 7

βœ… Integration tests have better service collection scoping and now have a service collection per test. This makes service mocking possible without clashing with other tests

βœ… Options Pattern Configuration

Some 0.18 highlights

βœ… Environment Service

βœ… Built in Migrations

βœ… Various testing and other improvements

Some 0.17 highlights

βœ… Users and Roles managed in each boundary (AuthN still separate)

βœ… New Email Value Object

βœ… Functional Tests use Docker DB and has other cleanup items

βœ… NextJS template (still a WIP and not documented, but you can find the sandbox for things here and poke through the Craftsman code if you'd like. Can answer questions in out Discord as well.)

Some v0.16 highlights

βœ… Testing Optimizations

βœ… Common Value Object Scaffolding

βœ… Auth Server rewrite with Keycloak

βœ… Move permission guards to feature

βœ… Migrate Automapper to Mapster

Some v0.15 highlights

βœ… Updated CLI command structure

βœ… OpenTelemetry & Jaeger Tracing

βœ… Built in Domain Event support (with unit test scaffolding)

βœ… Moved to Program.cs only format

βœ… Added repository & unit of work abstractions for better testing and validation

βœ… SmartEnum property scaffolding support

Some v0.14 highlights

βœ… Duende BFF scaffolding

βœ… React scaffolding

βœ… Dockerfile and Docker Compose scaffolding

Some v0.13 highlights

βœ… DDD promoted entities (private setters, factory methods, associated fakers)

βœ… Huge permissions upgrade. Significantly simplified setup which resulted in a new library (HeimGuard) that can be used in any .NET project.

βœ… New register:producer command

βœ… Added soft delete capability

βœ… Added Shared Kernel

Some v0.12 highlights

βœ… .NET 6 Scaffolding

βœ… Docker utility updates for integration tests using Fluent Docker 🐳

βœ… add:feature enhancement to add more than just ad-hoc features

βœ… new:example command to generate example projects with associated templates

βœ… Auth Server Scaffolding (In-Memory)

βœ… Auditable entities

Support

If Wrapt and Craftsman are saving you time and helping your projects, consider sponsoring me on Github to support ongoing Wrapt development and make it even better!

Contributing

Time is of the essence. Before developing a Pull Request I recommend opening a new topic for discussion. I also haven't had enough PR interest to take the time and put together a contributing.md, but if you are interested, I will definitely put together a detailed writeup.

Contact Me

Sometimes Github notifications get lost in the shuffle. If you file an issue and don't hear from me in 24-48 hours feel free to ping me on twitter or Discord (pdevito3#4244). We also have own discord channel now for easy contact with me and larger community discussions!

More Repositories

1

HeimGuard

πŸ›‘ A simple library that allows you to easily manage permissions in your .NET projects.
C#
112
star
2

QueryKit

πŸŽ›οΈ QueryKit is a .NET library that makes it easier to query your data by providing a fluent and intuitive syntax for filtering and sorting.
C#
77
star
3

foundation.api

C#
36
star
4

PeakLimsApi

🧬 A complex DDD based web API to model the accessioning workflow within a LIMS.
C#
32
star
5

domain-events-example

C#
11
star
6

next-template-wrapt

🏰 A NextJS template to eliminate boilerplate for your apps. Compatable with Craftsman entity scaffolding and includes OIDC support, AuthZ handling, TailwindCSS, custom Mantine controls, and much more.
TypeScript
10
star
7

craftsman-examples

C#
8
star
8

possible-vsa-example

C#
8
star
9

WeSendReportsCompany

an example repo for sending direct messages using masstransit and rabbitmq
C#
6
star
10

MessageBusTestingInMemHarness

Example repo for testing MassTransit with an in memory harness
C#
5
star
11

wrapt.dev

JavaScript
5
star
12

OncoLimsLite

C#
4
star
13

SafeCarbonKitchen

C#
4
star
14

auth-example-for-lee

C#
3
star
15

HeimGuardExamplePermissions

This is an example project using HeimGuard for permissions
C#
2
star
16

react-login-to-bff-sandbox

C#
2
star
17

StandaloneBffExample

This is the example report for the standalone Duende BFF for my blog post
C#
2
star
18

hello-hangfire

hello world for basic hangfire with postgres
C#
1
star
19

temp-vet

C#
1
star
20

letsflyaway

for fly.io deployment testing using docker
C#
1
star
21

oncolims-react

JavaScript
1
star
22

identity-template-example

CSS
1
star
23

bff-example-craftsman-v0_14

C#
1
star
24

lighthouse-website

Vue
1
star
25

CsvHelperSandbox

Sandbox for a blog post around importing and uploading customizable excel files using CsvHelper
C#
1
star
26

identity-server-sandbox

A sandbox for the new auth server scaffolding in [Craftsman](https://github.com/pdevito3/craftsman)
CSS
1
star
27

AccountManagementSpeedrun

Speedrun with craftman for a simple banking entity
C#
1
star