当前位置: 首页 > news >正文

17 ABP Framework 项目模板

ABP Framework 项目模板

概述

ABP Framework 提供了多种项目模板,用于快速创建符合最佳实践的应用程序骨架。这些模板可通过 ABP CLI 进行使用和自定义,支持不同的 UI 框架、数据库提供程序及架构选项,帮助开发者高效启动各类项目。

ABP Project Templates
Template Customization
Microservice Template
App Pro Template
Module Template
App No-Layers Pro Template
App No-Layers Template
Module Pro Template
App Template
Microservice Service Template
UI Framework Options
Database Provider Options
Database Management System Options
Theme Options
Mobile Options
Architecture Options

模板类型

ABP 框架提供多种模板类型,适用于不同场景:

  • App Template:标准应用模板,采用分层架构,遵循领域驱动设计原则,包含领域层、应用层、基础设施层和表示层。
  • App No-Layers Template:简化版应用模板,无明确分层结构,适合小型应用或原型开发。
  • Module Template:用于创建可重用的 ABP 模块,可打包为 NuGet 包分发,结构类似应用模板但更侧重可集成性。
  • Microservice Template:面向微服务解决方案,包含多个服务、网关配置和基础设施支持,具备独立数据库、Docker 和 Kubernetes 支持等特性。
  • Pro 版本模板:包括 App Pro、App No-Layers Pro、Module Pro 等,提供更多高级功能。

模板结构对比

ABP 模板类型
App Template
App No-Layers Template
Module Template
Microservice Template
Pro 版本模板
领域层 (Domain Layer)
应用层 (Application Layer)
表示层 (UI: MVC/Blazor/Angular)
基础设施层 (EF Core/MongoDB)
单项目结构 (Single Project)
可选宿主项目 (Host Project)
领域层 (Domain Layer)
应用层 (Application Layer)
表示层 (Web/Blazor/Angular)
基础设施层 (EF Core 等)
测试宿主项目
网关 (Gateway)
认证服务 (Auth Server)
核心服务 (Identity/Administration)
业务服务 (Product/Order 等)
容器化配置 (Docker/K8s)
App Pro
Module Pro
高级主题 (LeptonX 等)
移动应用支持 (MAUI/React Native)

模板自定义选项

创建项目时可通过多种选项自定义模板:

UI 框架选项

选项描述
mvcASP.NET Core MVC 带 Razor Pages(默认)
angularAngular UI 搭配 ASP.NET Core API 后端
blazorBlazor WebAssembly UI 搭配 ASP.NET Core API 后端
blazor-serverBlazor Server UI
blazor-webappBlazor Web App(交互式自动/服务器/WebAssembly)
maui-blazorMAUI Blazor 用于移动应用(仅 Pro 版)
none无 UI 框架,仅 API

数据库相关选项

  • 数据库提供程序ef/entityframeworkcore(默认)、mongo/mongodb
  • 数据库管理系统sqlserver(默认)、mysqlpostgresqloracleoracle-devartsqlite

主题与移动应用选项

  • 主题leptonx-lite(默认)、leptonx(Pro 版默认)、basiclepton(仅 Pro 版)
  • 移动应用none(默认)、react-native(仅 Pro 版)、maui(仅 Pro 版)

架构选项

选项标志描述
Tiered--tiered将 API 层与 UI 层分离
Separate Auth Server--separate-auth-server将认证服务器分离为独立项目
Public Website--public-website向解决方案添加公共网站

模板自定义流程

Template Customization
Template Selection
Apply Base Settings
Download Template Code
Configure UI Framework
Configure Database Provider
Configure Theme
Delete Unrelated Files
Randomize SSL Ports
Move Files To Right Structure
Create Final Project
Select Template Type
Start Template Creation
Select UI Framework
Select Database Provider
Select Database Management System
Select Theme
Select Mobile App Option
Select Architecture Options
Generate Project

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 创建项目时,执行以下流程:

UserABP CLISourceCodeStoreTemplateProjectBuilderBuildPipelineFileSystemabp new ProjectName [options]Parse argumentsGetAsync(templateName, version)Return template file (zip)BuildAsync(projectArgs)Execute stepsFileEntryListReadStepSwitchDatabaseProviderDeleteUnrelatedProjectsConfigureThemeRandomizeSslPortsRandomizeStringEncryptionUpdate NuGet configCreateProjectResultZipReturn built projectExtract project to output folderRun post-processing stepsProject created successfullyUserABP CLISourceCodeStoreTemplateProjectBuilderBuildPipelineFileSystem

模板来源与缓存

ABP 模板从 ABP.io 服务器下载并本地缓存,以提升性能:

Template Source Management
Exists
Not Found/Outdated
ABP CLI
Request Template
Check Local Cache
Use Cached Template
Request from ABP.io Server
Download Template
Save to Cache
Process Template
  • 本地缓存位置
    • Windows: %USERPROFILE%\.abp\templates
    • macOS/Linux: ~/.abp/templates
  • 清除缓存命令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 组件。

http://www.lryc.cn/news/621011.html

相关文章:

  • 微信公众号推送文字消息与模板消息
  • ActionChains 鼠标操作笔记
  • 恐鬼症 单机+联机(Phasmophobia)免安装中文版
  • SQL181 第二快/慢用时之差大于试卷时长一半的试卷
  • 【昇腾】VirtualBox虚拟机下搭建Ubuntu 22.04环境给TF卡制卡报读写IO错误的问题处理_20250814
  • 自动化测试|持续集成Git使用详解
  • elasticsearch冷热数据读写分离!
  • 快速搭建python HTTP Server测试环境
  • gitlab的ci/cd变量如何批量添加
  • STL算法【常用的算数生成算法】
  • 分享10个ai生成ppt网站(附ai生成ppt入口)
  • 力扣top100(day03-02)--图论
  • 回流(Reflow)与重绘(Repaint):浏览器渲染性能优化核心
  • SpringMVC请求与响应
  • 【Linux】库制作与原理
  • PyTorch回忆(三)U-net
  • java 学习 贪心 + 若依 + 一些任务工作
  • FTP服务器搭建(Linux)
  • opencv:傅里叶变换有什么用?怎么写傅里叶变换?
  • 软件著作权产生与登记关键点
  • 从单机到分布式:用飞算JavaAI构建可扩展的TCP多人聊天系统
  • 算法基础 第3章 数据结构
  • 数学建模-非线性规划模型
  • 深入理解提示词工程:从入门到精通的AI对话艺术
  • Mybatis实现页面增删改查
  • 数仓分层架构设计全解析:从理论到实践的深度思考
  • 一台联想 ThinkCentre M7100z一体机开机黑屏无显示维修记录
  • 【跨越 6G 安全、防御与智能协作:从APT检测到多模态通信再到AI代理语言革命】
  • 解决“Win7共享文件夹其他电脑网络无法发现共享电脑名称”的问题
  • 机器视觉之图像处理篇