当前位置: 首页 > 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.dtcms.com/a/331252.html

相关文章:

  • Origin绘制正态分布直方图+累积概率图|科研论文图表教程(附数据格式模板)
  • JS的学习6
  • 目标检测-动手学计算机视觉12
  • Redis入门到实战教程,深度透析redis
  • Promise 对象作用及使用场景
  • 实验室的样本是否安全?如何确保实验数据的准确性和可靠性?
  • 京东【自主售后】物流信息获取_影刀RPA源码解读
  • 如何写出更清晰易读的布尔逻辑判断?
  • 企业智脑正在构建企业第二大脑,四大场景引擎驱动数字化转型新范式
  • 异步同步,阻塞非阻塞,reactor/proactor
  • android 升级AGP版本后部分so文件变大
  • 记录JetPack组件用法及原理
  • c语言中堆和栈的区别
  • Mybatis学习笔记(二)
  • Python学习-----3.基础语法(2)
  • Linux面试题及详细答案 120道(1-15)-- 基础概念
  • Linux下的软件编程——framebuffer(文件操作的应用)
  • 初识CNN01——认识CNN
  • 计算机组成原理20250814
  • 网络通信---Axios
  • 在线进销存系统高效管理网站源码搭建可二开
  • 考研408《计算机组成原理》复习笔记,第三章(7)——虚拟存储器
  • 考公VS考研,拼哪个性价比高?
  • 什么是域名抢注?域名抢注常见问题汇总
  • 图书商城小程序怎么做?实体书店如何在微信小程序上卖书?
  • 使用vllm运行智谱GLM-4.5V视觉语言模型推理服务
  • 如何使用 AI 大语言模型解决生活中的实际小事情?
  • 数据结构——线性表(链表,力扣简单篇)
  • vscode的wsl环境,ESP32驱动0.96寸oled屏幕
  • 失败存储:查看未成功的内容