Monolith
Monolith recipe is the default backend recipe provided by Baked which includes necessary layers and feature implementations for any backend application.
To create an application from this recipe, use Monolith() extension of Bake
class directly in Program.cs.
Bake.New
.Monolith(
business: c => c.DomainAssemblies([...])
)
.Run();
Layers
| Name | Run | Test |
|---|---|---|
| Code Generation | ✅ | ✅ |
| Data Access | ✅ | ✅ |
| Domain | ✅ | ✅ |
| HTTP Client | ✅ | ⛔ |
| HTTP Server | ✅ | ⛔ |
| Rest API | ✅ | ⛔ |
| Runtime | ✅ | ✅ |
| Testing | ⛔ | ✅ |
| UI | ✅ (When Theme Set) | ⛔ |
Features
| Name | Run | Test |
|---|---|---|
| Authentication(s) | ✅ | ⛔ |
| Fixed Bearer Token | ||
| Authorization | ✅ Claim Based | ⛔ |
| Binding | ✅ Rest | ✅ |
| Business | ✅ (No Default) | ✅ |
| Caching(s) | ✅ | ✅ |
| In-Memory | ||
| Scoped Memory | ||
| Coding Style(s) | ✅ | ✅ |
| Add/Remove Child | ||
| Command Pattern | ||
| Entity Extension via Composition | ||
| Entity Subclass via Composition | ||
| Namespace as Route | ||
| Object as JSON | ||
| Records are DTOs | ||
| Remaining Services are Singleton | ||
| Rich Entity | ||
| Rich Transient | ||
| Scoped by Suffix | ||
| Single by Unique | ||
Uri Return is Redirect | ||
| Use Built-in Types | ||
| Use Nullable Types | ||
| With Method | ||
| Communication | ✅ HTTP | ✅ Mock |
| Core | ✅ Dotnet | ✅ Mock |
| Cors | ✅ Disabled | ⛔ |
| Database | ✅ Sqlite | ✅ In Memory |
| Exception Handling | ✅ Problem Details | ✅ |
| Greeting | ✅ Swagger | ⛔ |
| Lifetime(s) | ✅ | ✅ |
| Singleton | ||
| Scoped | ||
| Transient | ||
| Localization | ✅ .NET | ✅ |
| Logging | ✅ Request | ⛔ |
| Mocking Overrider | ⛔ | ✅ First Interface |
| ORM | ✅ Auto Map | ✅ |
| Theme | ✅ (No Default) | ✅ |
| UX(s) | ✅ | ✅ |
| Actions as Buttons | ||
| Actions are Contents | ||
| Actions as Data Panels | ||
| Data Table defaults | ||
| Description Property | ||
| Designated String Properties are Label | ||
| Enum Parameter is Select | ||
| Initializer Parameters are in Page Title | ||
| List is Data Table | ||
| Numeric Values are Formatted | ||
| Object with List is Data Table | ||
| Panel Parameters are Stateful | ||
| Properties as Fieldset | ||
| Routed Types as NavLinks |
When Test column have ✅ without a note, this means it inherits whatever Run column denotes.