Skip to content

Commit

Permalink
Merge pull request #21306 from abpframework/auto-merge/rel-8-3/3182
Browse files Browse the repository at this point in the history
Merge branch rel-9.0 with rel-8.3
  • Loading branch information
maliming authored Nov 11, 2024
2 parents 1b50519 + dd25dc8 commit edb842f
Show file tree
Hide file tree
Showing 9 changed files with 216 additions and 65 deletions.
4 changes: 4 additions & 0 deletions docs/en/docs-nav.json
Original file line number Diff line number Diff line change
Expand Up @@ -1642,6 +1642,10 @@
"text": "Overview",
"path": "solution-templates"
},
{
"text": "Template Guide",
"path": "solution-templates/guide.md"
},
{
"text": "Single-Layer Solution",
"path": "solution-templates/single-layer-web-application"
Expand Down
4 changes: 4 additions & 0 deletions docs/en/get-started/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@ Please select one of the following documents best fits for your application:
- [MAUI Application](maui.md)
- [WPF Application](wpf.md)
- [Console Application](console.md)

## Which Startup Template is Suitable for Me?

You can see the *[Solution Template Selection Guide](guide.md)* if you are not sure which solution template is suitable for you.
184 changes: 184 additions & 0 deletions docs/en/solution-templates/guide.md

Large diffs are not rendered by default.

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.
21 changes: 15 additions & 6 deletions docs/en/solution-templates/index.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
# Solution Templates

ABP provides pre-architected and production-ready templates to jump start a new solution. The following solution templates are provided out of the box:
ABP provides pre-architected and production-ready templates to jump start a new solution.

* **[Single-Layer Solution](single-layer-web-application)**: A single-project solution. Recommended for building an application with a **simpler and easy to understand** architecture.
* **[Layered Solution](layered-web-application)**: A fully layered (multiple projects) solution based on [Domain Driven Design](../framework/architecture/domain-driven-design) practices. Recommended for long-term projects that need a **maintainable and extensible** codebase.
* **[Microservice Solution](microservice)**: A **distributed solution** to build **microservice systems**. It includes pre-built services, API gateways, web and mobile applications, Kubernetes and Helm configuration, and everything you need to start your large-scale microservice solution.
* **[Application Module](application-module)**: A template that can be used to create a **reusable [application module](../modules)** based on the [module development best practices & conventions](../framework/architecture/best-practices). It is also suitable for creating **services** (with or without UI).
> **You can see the [Solution Template Selection Guide](guide.md) if you are not sure which solution template is suitable for you.**
The following solution templates are provided out of the box:

* **[Single-Layer Solution](single-layer-web-application/index.md)**: A single-project solution. Recommended for building an application with a **simpler and easy to understand** architecture.
* **[Layered Solution](layered-web-application/index.md)**: A fully layered (multiple projects) solution based on [Domain Driven Design](../framework/architecture/domain-driven-design) practices. Recommended for long-term projects that need a **maintainable and extensible** codebase.
* **[Microservice Solution](microservice/index.md)**: A **distributed solution** to build **microservice systems**. It includes pre-built services, API gateways, web and mobile applications, Kubernetes and Helm configuration, and everything you need to start your large-scale microservice solution.
* **[Application Module](application-module/index.md)**: A template that can be used to create a **reusable [application module](../modules/index.md)** based on the [module development best practices & conventions](../framework/architecture/best-practices/index.md). It is also suitable for creating **services** (with or without UI).
* **Others**
- [MAUI Application](../get-started/maui.md)
- [WPF Application](../get-started/wpf.md)
- [Console Application](../get-started/console.md)
- [Console Application](../get-started/console.md)

## See Also

* [Solution Template Selection Guide](guide.md)
* [Get Started with ABP Platform](../get-started/index.md)
7 changes: 4 additions & 3 deletions docs/en/solution-templates/layered-web-application/index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Layered Application Solution Template

## Introduction

This template provides a layered application structure based on the [Domain Driven Design](../../framework/architecture/domain-driven-design) (DDD) practices.

## Getting Started

This document explains **the solution structure** and projects in details. If you want to start quickly, follow the guides below:

* [The getting started document](../../get-started/layered-web-application.md) explains how to create a new application in a few minutes.
Expand Down Expand Up @@ -68,7 +68,8 @@ Use the `-m` (or `--mobile`) option to specify the mobile application framework:
abp new Acme.BookStore -m react-native
````

If not specified, no mobile application will be created.
* [The getting started document](../../get-started/layered-web-application.md) explains how to create a new application with this startup template.
* [The application development tutorial](../../tutorials/book-store/part-01.md) explains step by step application development with this startup template.

## Solution Structure

Expand Down
61 changes: 5 additions & 56 deletions docs/en/solution-templates/single-layer-web-application/index.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,15 @@
# Single Layer Application Solution Template

## Introduction

This template provides a simple solution structure with a single project. This document explains that solution structure in details.

### The Difference Between the Application Solution Templates

ABP's [Layered Application Solution Template](../layered-web-application) provides a well-organized and layered solution to create maintainable business applications based on the [Domain Driven Design](../../framework/architecture/domain-driven-design) (DDD) practices. However, some developers find this template a little bit complex for simple and short-term applications. The single-layer application template has been created to provide a simpler development model for such applications. This template has the same functionality, features and modules on runtime with the [Layered Application Solution Template](../layered-web-application) but the development model is minimal and everything is in a single project (`.csproj`).

## How to Start with It?

You can use the [ABP CLI](../../cli) to create a new project using this startup template. Alternatively, you can generate a CLI command for this startup template from the [Get Started](https://abp.io/get-started) page. In this section, we will use the ABP CLI.

Firstly, install the ABP CLI if you haven't installed it before:

```bash
dotnet tool install -g Volo.Abp.Studio.Cli
```

Then, use the `abp new` command in an empty folder to create a new solution:

```bash
abp new Acme.BookStore -t app-nolayers
```

* `Acme.BookStore` is the solution name, like *YourCompany.YourProduct*. You can use single-level, two-level or three-level naming.
* In this example, the `-t` (or `--template`) option specifies the template name.

### Specify the UI Framework
## Getting Started

This template provides multiple UI frameworks:

* `mvc`: ASP.NET Core MVC UI with Razor Pages (default)
* `blazor`: Blazor UI
* `blazor-server`: Blazor Server UI
* `angular`: Angular UI
* `none`: Without UI (for HTTP API development)

Use the `-u` (or `--ui`) option to specify the UI framework while creating the solution:

```bash
abp new Acme.BookStore -t app-nolayers -u angular
```

This example specifies the UI type (the `-u` option) as `angular`. You can also specify `mvc`, `blazor`, `blazor-server` or `none` for the UI type.

### Specify the Database Provider

This template supports the following database providers:

- `ef`: Entity Framework Core (default)
- `mongodb`: MongoDB

Use the `-d` (or `--database-provider`) option to specify the database provider while creating the solution:

```bash
abp new Acme.BookStore -t app-nolayers -d mongodb
```
* Follow the [Getting Started guide](../../get-started/single-layer-web-application.md) to create a new solution using this startup solution template.
* Follow the [TODO application tutorial](../../tutorials/todo/single-layer/index.md) to learn how to create a simple application with this startup solution template.

## Solution Structure
## The Solution Structure

If you don't specify any additional options while creating an `app-nolayers` template, you will have a solution as shown below:
If you created your solution with the default options, you will have a .NET solution as shown below:

![](../../images/bookstore-single-layer-solution-structure.png)

Expand Down

0 comments on commit edb842f

Please sign in to comment.