Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pdevito3/craftsman
A .NET scaffolding tool to help you stop worrying about boilerplate and focus on your business logic 🚀
https://github.com/pdevito3/craftsman
automated-test-generation automated-testing cli cli-commands cqrs craftsman csharp ddd docker dotnet dotnet-core dotnet8 event-driven-architecture masstransit mediatr rabbitmq scaffolding template-engine vertical-slice-architecture web-api
Last synced: 26 days ago
JSON representation
A .NET scaffolding tool to help you stop worrying about boilerplate and focus on your business logic 🚀
- Host: GitHub
- URL: https://github.com/pdevito3/craftsman
- Owner: pdevito3
- License: mit
- Created: 2020-07-29T04:26:53.000Z (over 4 years ago)
- Default Branch: develop
- Last Pushed: 2024-10-06T15:12:58.000Z (about 1 month ago)
- Last Synced: 2024-10-06T15:36:27.515Z (about 1 month ago)
- Topics: automated-test-generation, automated-testing, cli, cli-commands, cqrs, craftsman, csharp, ddd, docker, dotnet, dotnet-core, dotnet8, event-driven-architecture, masstransit, mediatr, rabbitmq, scaffolding, template-engine, vertical-slice-architecture, web-api
- Language: C#
- Homepage: https://wrapt.dev
- Size: 2.84 MB
- Stars: 1,120
- Watchers: 37
- Forks: 65
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
Awesome Lists containing this project
README
# Craftsman Scaffolds Your Boilerplate!
Craftsman is the workhorse behind the [Wrapt](https://wrapt.dev) 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.
------
## Quickstart
- Make sure you have the [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet-core/8.0) installed, along with [EF Core](https://learn.microsoft.com/en-us/ef/core/cli/dotnet)
- Install the craftsman tool```bash
dotnet tool install -g craftsman
```* Spin up an example project
```bash
craftsman new example MyFirstProject
```## Documentation
For all the documentation on how to use Craftsman, visit [wrapt.dev](https://wrapt.dev).
## Upcoming Features
You can find some highlights below. I have some reminement items in the pipe and I'm working through a deep example project the really dogfood things and will be making updates around my finding from there.
Have a request for something you don't see in the project? Join [our discord](https://discord.gg/TBq2rVkSEj) and let's talk about it!
### Some 0.26 highlights
✅ Primary Constructors
✅ Updated API Versioning
### Some 0.25 highlights
✅ .NET 8 scaffolding
✅ Archicture test enhancement
✅ Remove obsolete BFF commands
✅ Fix test actions
### Some 0.24 highlights
✅ Logging enhancements and masking
✅ Dependabot and Github Actions for tests
✅ `string[]` support for Postgres
✅ Value Object property scaffolding
### Some 0.23 highlights
✅ Moq -> NSub
✅ New `GetAll` feature
✅ Hangfire scaffolding
### Some 0.22 highlights
✅ Move from Sieve to [QueryKit](https://github.com/pdevito3/querykit)
✅ TestContainers updated
✅ Records for queries and commands and DTOs
✅ Relationships overhaul
### 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](https://github.com/pdevito3/next-template-wrapt-sand) 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](https://github.com/pdevito3/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](https://github.com/mariotoffia/FluentDocker) 🐳
✅ `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](https://github.com/sponsors/pdevito3) 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](https://github.com/pdevito3/craftsman/discussions). 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](https://twitter.com/pdevito3) or Discord (pdevito3#4244). We also have [own discord channel](https://discord.gg/TBq2rVkSEj) now for easy contact with me and larger community discussions!