Browse Source

Complete part-3 for suite bookstore tutorial

pull/21501/head
EngincanV 2 years ago
parent
commit
31c4813d99
  1. BIN
      docs/en/tutorials/book-store-with-abp-suite/images/suite-author-entity-1.png
  2. BIN
      docs/en/tutorials/book-store-with-abp-suite/images/suite-author-entity-2.png
  3. BIN
      docs/en/tutorials/book-store-with-abp-suite/images/suite-author-new-entity.png
  4. BIN
      docs/en/tutorials/book-store-with-abp-suite/images/suite-author-pages-1.png
  5. 79
      docs/en/tutorials/book-store-with-abp-suite/part-03.md

BIN
docs/en/tutorials/book-store-with-abp-suite/images/suite-author-entity-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
docs/en/tutorials/book-store-with-abp-suite/images/suite-author-entity-2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

BIN
docs/en/tutorials/book-store-with-abp-suite/images/suite-author-new-entity.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
docs/en/tutorials/book-store-with-abp-suite/images/suite-author-pages-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

79
docs/en/tutorials/book-store-with-abp-suite/part-03.md

@ -0,0 +1,79 @@
# Web Application Development (with ABP Suite) Tutorial - Part 3: Creating the Authors
````json
//[doc-params]
{
"UI": ["MVC"],
"DB": ["EF"]
}
````
````json
//[doc-nav]
{
"Previous": {
"Name": "Creating the Books",
"Path": "tutorials/book-store-with-abp-suite/part-02"
},
"Next": {
"Name": "Book to Author Relation",
"Path": "tutorials/book-store-with-abp-suite/part-04"
}
}
````
In the previous part, you have created the `Book` entity and in this part, you will create a new entity named `Author` and generate all necesssary code via [ABP Suite](../../suite/index.md) with few clicks. After creating the `Author` entity, you will be establishing [one-to-many relationship](../../suite/generating-crud-page.md#step-by-step-creating-a-navigation-property-with-1-to-many-relationship) with *Book* and *Author* entities, in the next part.
## Creating the Author Entity
After generating the all necessary code for the `Book` entity, and testing the *Books* page, by building & starting the application, now you can continue with creating the `Author` entity.
> Before, creating the `Author` entity, please **stop the application** in ABP Studio's *Solution Runner* panel, 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.
Click the entity selection box in the top right of the *CRUD page generation* page, and select the *-New entity-*:
![](/images/suite-author-new-entity.png)
Then, you can type `Author` for the *Name* field and leave the other options as is (you can change the menu icon as **pen**, if you wish). ABP Suite automatically calculates proper values for the rest of the inputs for you:
![](/images/suite-author-entity-1.png)
ABP Suite sets:
* Entity type as **master** (ABP Suite allows you to establish [master-child relationship](../../suite/creating-master-detail-relationship.md)),
* Base class as **FullAuditedAggregateRoot** ([see other possible values](../../framework/architecture/domain-driven-design/entities.md)),
* Primary key type as **Guid**,
* Plural name, database name, namespace, page title, menu item and more...
* Also, it enables **code customization**, **UI code generation**, **unit & integration test generation** and **bulk delete** by default.
After, specifying the entity metadata, open the *Properties* tab and create the properties shown in the following figure:
![](./images/suite-author-entity-2.png)
Here the details:
* `Name` is **required**, it's a **string** property, and it's a **textarea**. Minimum length is **2** and maximum length is **128**.
* `BirthDate` is a **DateTime** property and **not nullable**.
* `ShortBio` is a **string** property, it's **required**, maximum length is **256**.
You can leave the other configurations as default.
> **Note:** All properties are marked as **filterable** by default, and they appear in the advanced filter section because of that. You can set any properties you want as **not filterable** and then the related property will be removed from the advanced filter section and code will be generated accordingly.
You can click the **Save and Generate** button to start the code generation process:
![](./images/suite-book-entity-5.png)
ABP Suite will generate the necessary code for you. 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:
![](./images/suite-book-entity-6.png)
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 and try to add a new author:
![](./images/suite-author-pages-1.png)
## Summary
In this part, we've created a new entity named `Author` and generated the necessary code for it with [ABP Suite](../../suite/index.md) within a few clicks. ABP Suite generated the all code for us, including the **entity**, **application service**, **database relations**, **unit & integration tests**, **UI** and **defined the custom hooks for code customization**.
So far, we have created the `Book` (in the previous part) and `Author` entities (& generated code for all functionalities) for the book store application. However, currently there is no relation between these entities.
In the next part, we will establish [one-to-many relation](../../suite/generating-crud-page.md) between these two entities.
Loading…
Cancel
Save