Log
[Log] on a method or class — compile-time entry/exit/exception logging with zero allocation. Quiet by default, opt in to interpolated-string LogInformation($"...") by importing ZibStack.NET.Log.
Zero architectural buy-in. Add one attribute, keep everything else unchanged.
Log
[Log] on a method or class — compile-time entry/exit/exception logging with zero allocation. Quiet by default, opt in to interpolated-string LogInformation($"...") by importing ZibStack.NET.Log.
Aop — built-in [Trace]
[Trace] gives you OpenTelemetry spans on any method with one attribute. Stack with [Log] or build your own IAspectHandler for metrics, retry, cache, auth.
Opt-in per file. TypeScript-inspired utilities and helpers you reach for when you want them — no framework, no configuration.
Core
Shared attributes: relationships ([OneToMany], [OneToOne], [Entity]) and TypeScript-style utility types ([PartialFrom], [PickFrom], [OmitFrom]) plus JS-style [Destructurable].
Validation
[ZRequired], [ZEmail], [ZRange] — compile-time validation with Validate() method generated.
Result
Functional Result<T> monad with Map/Bind/Match — error handling without exceptions.
High buy-in, high payoff. Full-stack CRUD, query DSL, UI metadata. Best for solo projects and small teams; in larger teams start with Tier 1 and adopt Tier 3 only once everyone has seen what’s generated.
Dto — CRUD API
One attribute, full CRUD. [CrudApi] generates endpoints, DTOs, validation, and ProblemDetails responses.
Query
Filter/sort DSL for REST APIs: filter=Level>25,Team.Name=Lakers&sort=-Level&select=Name,Level.
EntityFramework
[GenerateCrudStores] on DbContext — auto-generates EfCrudStore implementations + DI registration.
UI
Form + table metadata from attributes. Framework-agnostic JSON for Blazor, React, Vue.