abp-development-flowlisted
Install: claude install-skill burakdmir/abp-skills
# ABP Framework — Development Flow
Adding a new entity end-to-end in the ABP v10.4 layered template.
## Trigger
"ABP add new entity/feature", "end-to-end CRUD", "development flow", "how do I start".
## Flow
1. **Domain/Entities** — `Book : AggregateRoot<Guid>` (private setter, constructor invariant, `Check.NotNullOrWhiteSpace`).
2. **Domain.Shared** — `BookConsts`, enum.
3. **Domain** (opt.) — custom `IBookRepository : IRepository<Book,Guid>` only if a custom query is needed.
4. **EntityFrameworkCore** — `DbSet<Book>` + `OnModelCreating`:
```csharp
builder.Entity<Book>(b => { b.ToTable(Prefix+"Books"); b.ConfigureByConvention(); b.Property(x=>x.Name).IsRequired().HasMaxLength(128); });
```
5. **Migration**:
```bash
cd src/MyProject.EntityFrameworkCore
dotnet ef migrations add Added_Book
dotnet run --project ../MyProject.DbMigrator # apply + seed
```
6. **Application.Contracts** — `BookDto : EntityDto<Guid>`, `CreateBookDto` ([Required]/[Range]), `IBookAppService : IApplicationService`.
7. **Mapping** — Mapperly `[Mapper] partial class BookMapper : MapperBase<Book, BookDto>`.
8. **Application** — `BookAppService : ApplicationService, IBookAppService`; `[Authorize(...)]`, `GuidGenerator.Create()`, `ObjectMapper.Map<>()`.
9. **Localization** — `*.Domain.Shared/Localization/*/en.json`.
10. **Permission** — `MyProjectPermissions.Books.Create` (Application.Contracts).
11. **Test** — `*ApplicationTestBase`, `GetRequiredService<IBookAppService>()`.
##