There are multiple versions of this document. Pick the options that suit you best.

UI
Database

Web Application Development (with ABP Suite) Tutorial - Part 2: Creating the Books

In this part, you will create a new entity named Book and generate CRUD pages for the related entities with everything that you would normally implement manually (including application services, tests, CRUD pages, database relations and more...) via ABP Suite with few clicks.

Opening the ABP Suite

Please stop the application in ABP Studio's Solution Runner panel, if it's currently running, because ABP Suite will make changes in the solution and it might need to build the solution in some steps and running the solution prevents to build it.

After creating the solution in the previous part, now you can open the ABP Suite and start generating CRUD pages. You can select the ABP Suite -> Open command on the main menu to open ABP Suite:

opening the ABP Suite

After clicking the related command, pre-integrated browser of ABP Studio should open, then you can start generating entities and all related codes with a few configurations:

Creating the Book Entity

Before creating the Book entity, first we can create a BookType enum in the Acme.BookStore.Domain.Shared project under the Books folder as follows:

namespace Acme.BookStore.Books;

public enum BookType
{
    Undefined,
    Adventure,
    Biography,
    Dystopia,
    Fantastic,
    Horror,
    Science,
    ScienceFiction,
    Poetry
}

After creating an enum file in your project, you can define it as a property while creating the entity. ABP Suite asks for an enum path to read the enum file, and set the namespace, and enum name in the generated code accordingly. Then, you can create the Book entity with some properties.

Type Book for the Name field and leave the other options as is. ABP Suite automatically calculates proper values for the rest of the inputs for you:

ABP Suite sets:

  • Entity type as master (ABP Suite allows you to establish master-child relationship),
  • Base class as FullAuditedAggregateRoot (see other possible values),
  • Primary key type as Guid,
  • Plural name, database name, namespace, page title, menu item and more...

You can change the menu-item value as book to show a proper icon in the generated UI, and also enable code customization, creating unit & integration tests, and other options as you wish:

After, specifying the entity metadata, open the Properties tab and create the properties shown in the following figure:

While defining the properties, you define a Type property with the type of enum. ABP Suite asks for an enum path and fill the all other inputs by reading the specified enum file. Therefore, you can specify the enum path for the Type property like in the following figure:

After you select the enum file, ABP Suite automatically sets the namespace and enum name, and lists your enum values in the next section. You can change these values, but for now, you can leave as is.

Here is the all details for the Book entity:

  • Name is required, it's a string property and maximum length is 128.
  • Type is an enum and the enum file path is \Acme.BookStore.Domain.Shared\Books\BookType.cs.
  • PublishDate is a DateTime property and not nullable.
  • Price is a float property and required.

You can leave the other configurations as default.

ABP Suite allows you to define properties with a great range of options, for example, you can specify the property type as string, int, float, Guid, DateTime, and even File (for file upload) and also you can set any options while defining your properties, such as specifying it as required, or nullable, setting max-min length, default value and more...

After that, you can click the Save and Generate button to start the code generation process:

ABP Suite will generate the necessary code for you. It generates:

  • Book entity (also BookBase class, which is allow you customizing the generated entity),
  • Repository implementation (EfCoreBookRepository class),
  • BookManager domain service,
  • Input & Output DTOs and application service implementations (IBookAppService & BookAppService),
  • Unit & integration tests,
  • A new migration (and also applies to the database),
  • All related permission, object mapping and navigation menu item configurations,
  • and all required UI components and pages...

It will take some time to complete the process. After the process is completed, you will see a success message, you can click the Ok button, and build & start the application by clicking the Run -> Build & Start button in the Solution Runner panel:

After the application is started, you can right-click and Browse on the application to open it in the ABP Studio's pre-integrated browser. You can see the Books page in the following figure with a single record:

On this page, you can create a new book, update an existing book, delete a book, export all records (or the filtered records) to excel, filter the records by using the advanced filter section, bulk delete multiple records and so on.

Summary

In this part, you've created a new entity named Book and generated the necessary code for it with ABP Suite with a few clicks. ABP Suite generated the all code for you, including the entity, application service, database relations, unit & integration tests, UI and defined the custom hooks for code customization.


Contributors


Last updated: December 09, 2024 Edit this page on GitHub

Was this page helpful?

Please make a selection.

To help us improve, please share your reason for the negative feedback in the field below.

Please enter a note.

Thank you for your valuable feedback!

Please note that although we cannot respond to feedback, our team will use your comments to improve the experience.

In this document
Community Talks

What’s New with .NET 9 & ABP 9?

21 Nov, 17:00
Online
Watch the Event
Mastering ABP Framework Book
Mastering ABP Framework

This book will help you gain a complete understanding of the framework and modern web application development techniques.

Learn More