17 ABP Framework 项目模板
ABP Framework 项目模板
概述
ABP Framework 提供了多种项目模板,用于快速创建符合最佳实践的应用程序骨架。这些模板可通过 ABP CLI 进行使用和自定义,支持不同的 UI 框架、数据库提供程序及架构选项,帮助开发者高效启动各类项目。
模板类型
ABP 框架提供多种模板类型,适用于不同场景:
- App Template:标准应用模板,采用分层架构,遵循领域驱动设计原则,包含领域层、应用层、基础设施层和表示层。
- App No-Layers Template:简化版应用模板,无明确分层结构,适合小型应用或原型开发。
- Module Template:用于创建可重用的 ABP 模块,可打包为 NuGet 包分发,结构类似应用模板但更侧重可集成性。
- Microservice Template:面向微服务解决方案,包含多个服务、网关配置和基础设施支持,具备独立数据库、Docker 和 Kubernetes 支持等特性。
- Pro 版本模板:包括 App Pro、App No-Layers Pro、Module Pro 等,提供更多高级功能。
模板结构对比
模板自定义选项
创建项目时可通过多种选项自定义模板:
UI 框架选项
选项 | 描述 |
---|---|
mvc | ASP.NET Core MVC 带 Razor Pages(默认) |
angular | Angular UI 搭配 ASP.NET Core API 后端 |
blazor | Blazor WebAssembly UI 搭配 ASP.NET Core API 后端 |
blazor-server | Blazor Server UI |
blazor-webapp | Blazor Web App(交互式自动/服务器/WebAssembly) |
maui-blazor | MAUI Blazor 用于移动应用(仅 Pro 版) |
none | 无 UI 框架,仅 API |
数据库相关选项
- 数据库提供程序:
ef
/entityframeworkcore
(默认)、mongo
/mongodb
- 数据库管理系统:
sqlserver
(默认)、mysql
、postgresql
、oracle
、oracle-devart
、sqlite
主题与移动应用选项
- 主题:
leptonx-lite
(默认)、leptonx
(Pro 版默认)、basic
、lepton
(仅 Pro 版) - 移动应用:
none
(默认)、react-native
(仅 Pro 版)、maui
(仅 Pro 版)
架构选项
选项 | 标志 | 描述 |
---|---|---|
Tiered | --tiered | 将 API 层与 UI 层分离 |
Separate Auth Server | --separate-auth-server | 将认证服务器分离为独立项目 |
Public Website | --public-website | 向解决方案添加公共网站 |
模板自定义流程
ABP CLI 模板使用方法
通过 ABP CLI 的 new
命令创建项目,语法为:
abp new <project-name> [options]
主要选项分类
- 基本选项:
-t
/--template
(模板名称,默认app
)、-u
/--ui
(UI 框架)、-d
/--database-provider
(数据库提供程序)等 - 架构选项:
--tiered
、--separate-auth-server
、--public-website
- 版本选项:
-v
/--version
(指定版本)、--preview
(使用预览版) - 其他选项:
-sib
/--skip-installing-libs
(跳过安装客户端库)、-sb
/--skip-bundling
(跳过捆绑)等
示例
# 创建默认配置的应用
abp new Acme.BookStore# 创建 Angular UI 且使用 MongoDB 的应用
abp new Acme.BookStore -u angular -d mongodb# 创建分层且使用 PostgreSQL 的应用
abp new Acme.BookStore --tiered --dbms postgresql# 创建模块应用
abp new Acme.BookStore -t module# 创建微服务解决方案
abp new Acme.BookStore -t microservice
模板构建流程
使用 ABP CLI 创建项目时,执行以下流程:
模板来源与缓存
ABP 模板从 ABP.io 服务器下载并本地缓存,以提升性能:
- 本地缓存位置:
- Windows:
%USERPROFILE%\.abp\templates
- macOS/Linux:
~/.abp/templates
- Windows:
- 清除缓存命令:
abp clear-download-cache
- 使用本地模板:
abp new Acme.BookStore -ts "C:\local-templates"
模板中的包依赖
不同模板类型基于所选 UI 框架包含不同依赖:
- Angular 模板:包含
@abp/ng.account
、@abp/ng.core
、@abp/ng.theme.lepton-x
等 - Blazor 模板:包含
@abp/aspnetcore.components.server.leptonxlitetheme
等 - MVC 模板:包含
@abp/aspnetcore.mvc.ui.theme.leptonxlite
等,选择不同主题时会替换为对应包
这些依赖确保模板开箱即用地集成 ABP 框架的核心功能和 UI 组件。