Skip to content

Commit

Permalink
Merge branch 'rel-9.0' of https://github.com/abpframework/abp into re…
Browse files Browse the repository at this point in the history
…l-9.0
  • Loading branch information
voloagent committed Oct 22, 2024
2 parents f09078a + 244de27 commit d81db9c
Show file tree
Hide file tree
Showing 66 changed files with 175 additions and 292 deletions.
20 changes: 10 additions & 10 deletions .github/workflows/auto-pr.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
name: Merge branch dev with prerel-9.0
name: Merge branch dev with rel-9.0
on:
push:
branches:
- prerel-9.0
- rel-9.0
permissions:
contents: read

jobs:
merge-dev-with-prerel-9-0:
merge-dev-with-rel-9-0:
permissions:
contents: write # for peter-evans/create-pull-request to create branch
pull-requests: write # for peter-evans/create-pull-request to create a PR
Expand All @@ -18,19 +18,19 @@ jobs:
ref: dev
- name: Reset promotion branch
run: |
git fetch origin prerel-9.0:prerel-9.0
git reset --hard prerel-9.0
git fetch origin rel-9.0:rel-9.0
git reset --hard rel-9.0
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
branch: auto-merge/prerel-9-0/${{github.run_number}}
title: Merge branch dev with prerel-9.0
body: This PR generated automatically to merge dev with prerel-9.0. Please review the changed files before merging to prevent any errors that may occur.
branch: auto-merge/rel-9-0/${{github.run_number}}
title: Merge branch dev with rel-9.0
body: This PR generated automatically to merge dev with rel-9.0. Please review the changed files before merging to prevent any errors that may occur.
reviewers: maliming
token: ${{ github.token }}
- name: Merge Pull Request
env:
GH_TOKEN: ${{ secrets.BOT_SECRET }}
run: |
gh pr review auto-merge/prerel-9-0/${{github.run_number}} --approve
gh pr merge auto-merge/prerel-9-0/${{github.run_number}} --merge --auto --delete-branch
gh pr review auto-merge/rel-9-0/${{github.run_number}} --approve
gh pr merge auto-merge/rel-9-0/${{github.run_number}} --merge --auto --delete-branch
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/en/get-started/layered-web-application.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ Here, you can select the database management systems (DBMS){{ if DB == "EF" }} a

![abp-studio-new-solution-dialog-additional-options](images/abp-studio-new-solution-dialog-additional-options.png)

If you uncheck the *Kubernetes Configuration* option, the solution will not include the Kubernetes configuration files, such as Helm charts and other Kubernetes-related files. You can also specify *Social Logins*; if you uncheck this option, the solution will not be configured for social login.
If you uncheck the *Kubernetes Configuration* option, the solution will not include the Kubernetes configuration files, such as Helm charts and other Kubernetes-related files. You can also specify *Social Logins*; if you uncheck this option, the solution will not be configured for social login. Lastly, you can specify the *Include Tests* option to include or exclude the test projects from the solution.

Now, we are ready to allow ABP Studio to create our solution. Just click the *Create* button and let the ABP Studio do the rest for you. After clicking the Create button, the dialog is closed and your solution is loaded into ABP Studio:

Expand Down
2 changes: 1 addition & 1 deletion docs/en/get-started/microservice.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Click the Next button to see *Additional Options* selection:

![abp-studio-new-solution-dialog-additional-options](images/abp-studio-new-solution-dialog-additional-options-microservice.png)

If you unchecked the *Kubernetes Configuration* option, the solution will not include the Kubernetes configuration files which include the Helm charts and other Kubernetes related files. You can also specify *Social Logins*; if you uncheck this option, the solution will not be configured for social login.
If you unchecked the *Kubernetes Configuration* option, the solution will not include the Kubernetes configuration files which include the Helm charts and other Kubernetes related files. You can also specify *Social Logins*; if you uncheck this option, the solution will not be configured for social login. Lastly, you can specify the *Include Tests* option to include the test projects in the solution.

Now, we are ready to allow ABP Studio to create our solution. Just click the *Create* button and let the ABP Studio do the rest for you. After clicking the Create button, the dialog is closed and your solution is loaded into ABP Studio:

Expand Down
Binary file modified docs/en/studio/images/solution-explorer/abp-solution.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/en/studio/images/solution-explorer/create-new-module.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/en/studio/images/solution-explorer/folder-context-menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/en/studio/images/solution-explorer/imported-module.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/en/studio/images/solution-explorer/module-context-menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions docs/en/studio/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

This document contains **brief release notes** for each ABP Studio release. Release notes only include **major features** and **visible enhancements**. Therefore, they don't include all the development done in the related version.

## 0.9.2 (2024-10-22)

* Added "Sample CRUD Page" option for pro templates
* Generated *Signing-Certificate* for appnolayers template
* Added test projects optionally for all templates
* Added automapper configuration to apps/web project for ms template
* Disabled *transaction* for `MongoDB` and `SQLite` by default

## 0.9.1 (2024-10-10)

* Fixed the ABP Studio CLI's Bundle Command
Expand Down
6 changes: 5 additions & 1 deletion docs/en/studio/solution-explorer.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ A [module](./concepts.md#module) is a sub-solution that can contains zero, one o

### Adding a New Empty Module

Create a new module by clicking the *Add* -> *New Module* -> *Empty Module* button at the root of the solution or in the solution folder context menu. The *Microservice* solution template also includes *Microservice*, *Gateway*, and *Web* modules. Other solution templates, such as *Application (Layered)*, can only create *Empty*, and *DDD* modules.
Create a new module by clicking the *Add* -> *New Module* -> *Empty Module* button at the root of the solution or in the solution folder context menu. The *Microservice* solution template also includes *Microservice*, *Gateway*, and *Web* modules. Other solution templates, such as *Application (Layered)*, can only create *Empty*, *DDD* and *Standard* modules.

![create-new-module](./images/solution-explorer/create-new-module.png)

Expand All @@ -149,6 +149,10 @@ When you create a microservice, you must edit some [configurations](../solution-

![create-new-microservice-nolayers-enable-integration](./images/solution-explorer/create-new-microservice-nolayers-enable-integration.png)

You can uncheck the *Include Tests* option if you don't want to include test projects in your microservice module. Click the *Create* button to add the microservice module to the solution.

![create-new-microservice-nolayers-additional-options](./images/solution-explorer/create-new-microservice-nolayers-additional-options.png)

After creating the *Microservice (service-nolayers)* module, it will be added to the solution, and you should see the following structure in the solution explorer.

![created-new-microservice-nolayers](./images/solution-explorer/created-new-microservice-nolayers.png)
Expand Down
1 change: 1 addition & 0 deletions docs/en/studio/version-compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ This document provides an overview of the compatibility between various versions

| **ABP Studio Version** | **ABP Version** |
|------------------------|---------------------------|
| 0.9.2 | 8.3.2 |
| 0.8.4 - 0.9.1 | 8.3.1 |
| 0.8.1 to 0.8.3 | 8.3.0 |
| 0.8.0 | 8.2.3 |
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
6 changes: 5 additions & 1 deletion docs/en/tutorials/modular-crm/part-02.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,11 @@ The next step is to select the database provider (or providers) you want to supp

![abp-studio-create-new-module-dialog-step-db](images/abp-studio-create-new-module-dialog-step-db.png)

Since our main application is using Entity Framework Core and we will use the `ModularCrm.Products` module only for that main application, we can select the *Entity Framework Core* option and click the *Create* button.
Since our main application is using Entity Framework Core and we will use the `ModularCrm.Products` module only for that main application, we can select the *Entity Framework Core* option and click the *Next* button.

![abp-studio-create-new-module-dialog-step-additional-options](images/abp-studio-create-new-module-dialog-step-additional-options.png)

Lastly, you can uncheck the *Include Tests* option if you don't want to include test projects in your module. Click the *Create* button to create the new module.

### Exploring the New Module

Expand Down
73 changes: 19 additions & 54 deletions docs/en/tutorials/modular-crm/part-04.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,76 +16,41 @@

In this part, you will build a new module for placing orders and install it in the main CRM application.

## Creating an Empty Module
## Creating a Standard Module

In this part, we have used the *DDD Module* template for the Product module and will use the *Empty Module* template for the Ordering module.
In this part, we have used the *DDD Module* template for the Product module and will use the *Standard Module* template for the Ordering module.

Right-click the `modules` folder on the *Solution Explorer* panel, and select the *Add* -> *New Module* -> *Empty Module* command:
Right-click the `modules` folder on the *Solution Explorer* panel, and select the *Add* -> *New Module* -> *Standard Module* command:

![abp-studio-add-new-empty-module](images/abp-studio-add-new-empty-module.png)
![abp-studio-add-new-standard-module](images/abp-studio-add-new-standard-module.png)

That command opens a dialog to define the properties of the new module:

![abp-studio-add-new-empty-module-dialog](images/abp-studio-add-new-empty-module-dialog.png)
![abp-studio-add-new-standard-module-dialog](images/abp-studio-add-new-standard-module-dialog.png)

Set `ModularCrm.Ordering` as the *Module name*, leave the *Output folder* as is and click the *Create* button. It will create the new `ModularCrm.Ordering` module under the `modules` folder in the *Solution Explorer*:
Set `ModularCrm.Ordering` as the *Module name*, leave the *Output folder* as is and click the *Next* button.

![abp-studio-modular-crm-with-two-modules](images/abp-studio-modular-crm-with-two-modules.png)
![abp-studio-add-new-standard-module-ui-dialog](images/abp-studio-add-new-standard-module-ui-dialog.png)

Since we've created an empty module, it is really empty. If you open the `modules/modularcrm.ordering` in your file system, you can see the initial files:
Similar to DDD module creation, you can choose the type of UI you want to support in your module or select *No UI* if you don't need a user interface. In this example, we'll select the *MVC* option and click *Next*. One difference is that, for a standard module, you can only choose one UI type.

![file-system-odering-module-initial-folder](images/file-system-odering-module-initial-folder.png)
![abp-studio-add-new-standard-module-db-dialog](images/abp-studio-add-new-standard-module-db-dialog.png)

## Creating the Module Packages
The same limitation applies to the database selection. You can only choose one database provider for a standard module. Select the *Entity Framework Core* option and click *Next*.

In this section, we will create packages under the Ordering module. The Products module was well layered based on Domain Driven Design principles. This time, we will keep things very simple and will only create two packages for the Ordering module:
![abp-studio-add-new-standard-module-additional-dialog](images/abp-studio-add-new-standard-module-additional-dialog.png)

* `ModularCrm.Ordering`: Contains all the module code without any layering. It will contain entities, database access code, services, controllers, UI pages and whatever we need to implement the *Ordering* module.
* `ModularCrm.Ordering.Contracts`: Contains the services and objects we want to share with other modules. `ModularCrm.Ordering` uses (and implements) this package.
You can uncheck the *Include Tests* option to keep the module simple. Click the *Create* button to create the module.

> If your modules are relatively small and easy to maintain, they will only be used by your main application, and you don't care about layering, then you can create such simple module structures.
![abp-studio-modular-crm-with-standard-module](images/abp-studio-modular-crm-with-standard-module.png)

We will create and configure everything from scratch. You have already learned the easy way in the previous parts, where we created the Products module. It is time to deepen your understanding of the details and learn how ABP Studio allows you to set up custom structures. Let's begin.
Since we've created a standard module, it doesn't have multiple layers like the DDD module. If you open the `modules/modularcrm.ordering` in your file system, you can see the initial files:

### Creating the `ModularCrm.Ordering.Contracts` Package
![file-system-odering-module-initial-folder](images/file-system-ordering-module-initial-folder.png)

Right-click the `ModularCrm.Ordering` module on the *Solution Explorer* and select the *Add* -> *Package* -> *New Package* command as shown in the following figure:
Because only a single UI package can be chosen, the UI type doesn’t matter. This is why the package name is changed to *ModularCrm.Ordering.UI*. Additionally, there are no *Domain*, *EntityFrameworkCore*, or *Http* layers like in the DDD module. We're going to use the `ModularCrm.Ordering` package for the domain business logic. You can open `ModularCrm.Ordering.sln` in your favorite IDE (e.g. Visual Studio):

![abp-studio-add-new-package](images/abp-studio-add-new-package.png)

That command opens a new dialog to create a new package:

![abp-studio-add-new-package-class-library](images/abp-studio-add-new-package-class-library.png)

With that dialog, you can build your module or application layer by layer. There are templates for any package. However, here we will go with the simplest one: *ABP Class Library*. ABP Class Library is an empty C# class library with the [core ABP package](https://www.nuget.org/packages/Volo.Abp.Core) dependency and a [module class](../../framework/architecture/modularity/basics.md).

Type `ModularCrm.Ordering.Contracts` as the *Package name* and click the *Create* button. It will add the package under the `ModularCrm.Ordering` module:

![abp-studio-new-package-under-the-module](images/abp-studio-new-package-under-the-module.png)

### Creating the `ModularCrm.Ordering` Package

Right-click the `ModularCrm.Ordering` module on the *Solution Explorer* again and select the *Add* -> *Package* -> *New Package* command to create a second package:

![abp-studio-add-new-package-mvc-ui](images/abp-studio-add-new-package-mvc-ui.png)

This time, we select the MVC UI template and set the Package name to `ModularCrm.Ordering`. Then, click the Create button to add the new package.

### Add Package Reference

After the package has been added, right-click the `ModularCrm.Ordering` package and select the *Add Package Reference* command:

![abp-studio-add-package-reference](images/abp-studio-add-package-reference.png)

That command opens a dialog to select the package:

![abp-studio-add-package-reference-dialog](images/abp-studio-add-package-reference-dialog.png)

In that dialog, you can add package references from various sources. Here, we will add a reference for the package in the current module. So, select the `ModularCrm.Ordering.Contracts` package in the *This module* tab and click the *OK* button. You can see the package reference under the *Projects* dependencies on the *Solution Explorer* panel:

![abp-studio-project-reference-example](images/abp-studio-project-reference-example.png)

The initial module creation has been completed. Now, we have a new module with two packages. However, it is not related to other modules and applications in the solution yet.
![ordering-module-visual-studio](images/ordering-module-visual-studio.png)

## Installing into the Main Application

Expand All @@ -105,8 +70,8 @@ Select the `ModularCrm.Ordering` module and check the *Install this module* opti

![abp-studio-install-module-dialog](images/abp-studio-install-module-dialog.png)

Select the `ModuleCrm.Ordering` package in the left area and the `ModularCrm.Domain` package in the middle area, as shown in the preceding figure, and click the *OK* button.
Select the `ModuleCrm.Ordering` package from the left area and the `ModularCrm.Domain` package from the middle area. Then, select the `ModularCrm.Ordering.UI` package from the left area and the `ModularCrm.Web` package from the middle area, as shown in the preceding figure. Finally, click *OK*.

> Since the Ordering module is not layered, we didn't install its packages to the layers of our main application. We are installing it only to `ModularCrm.Domain`. In this way, we can use the Ordering module from any layer of our application since `ModularCrm.Domain` is one of the core packages of our application. If you build your modules as non-layered and you don't have much code in the main application's .NET solution, you can also consider creating a non-layered main application that composes these modules.
In this part of the tutorial, we've created an empty module and added packages. This allows you to create modules or applications with a custom structure. In the next part, we will add functionality to the Ordering module.
In this part of the tutorial, we've created a standard module. This allows you to create modules or applications with a different structure. In the next part, we will add functionality to the Ordering module.
Loading

0 comments on commit d81db9c

Please sign in to comment.