7 ABP Framework 支持的 UI 框架

ABP Framework 支持的 UI 框架

该页面详细介绍了 ABP Framework 支持的三种 UI 框架(Angular、Blazor、MVC/Razor Pages),以及它们的架构、依赖、项目结构和共享基础设施。

框架概述

ABP 提供三种独立又可组合使用的 UI 框架,它们通过共享后端服务保持功能一致性,满足不同开发偏好和部署场景。

Blazor Server
Shared Infrastructure
Backend Services
UI Layer
Theme System
LeptonXLite, Basic
Localization
Resource Files
UI Modules
Identity, Tenant, Settings
HTTP API Layer
Controllers & DTOs
Application Services
Business Logic
Domain Layer
Entities & Services
Blazor Server
Volo.Abp.BlazoriseUI
Blazor WebAssembly
Shared Infrastructure
Backend Services
UI Layer
Theme System
LeptonXLite, Basic
Localization
Resource Files
UI Modules
Identity, Tenant, Settings
HTTP API Layer
Controllers & DTOs
Application Services
Business Logic
Domain Layer
Entities & Services
Blazor WebAssembly
Volo.Abp.BlazoriseUI
MVC Razor Pages
Shared Infrastructure
Backend Services
UI Layer
Theme System
LeptonXLite, Basic
Localization
Resource Files
UI Modules
Identity, Tenant, Settings
HTTP API Layer
Controllers & DTOs
Application Services
Business Logic
Domain Layer
Entities & Services
MVC/Razor Pages
Volo.Abp.AspNetCore.Mvc.UI

Blazor UI 框架

Blazor 托管模型

Shared Components
Blazor Web App (.NET 8+)
Blazor WebAssembly
Blazor Server
Volo.Abp.BlazoriseUI
Base Components
Blazorise.Bootstrap5
UI Framework
Blazorise.DataGrid
Data Tables
Interactive Web App
MyCompanyName.MyProjectName.Blazor.WebApp
Interactive Client
MyCompanyName.MyProjectName.Blazor.WebApp.Client
Hybrid Runtime
Server + Client
WASM Host
MyCompanyName.MyProjectName.Blazor
WASM Client
MyCompanyName.MyProjectName.Blazor.Client
.NET Runtime
Browser WASM
Blazor Server App
MyCompanyName.MyProjectName.Blazor.Server
SignalR Connection
Real-time UI Updates
.NET Runtime
Server-side Execution

Blazorise 集成

组件类型用途
核心组件 Core ComponentsBlazorise基础 UI 组件
数据网格 Data GridBlazorise.DataGrid带排序、过滤的高级数据表格
通知 NotificationsBlazorise.SnackbarToast 通知
扩展组件 Extended ComponentsBlazorise.Components额外 UI 元素
Bootstrap 主题Blazorise.Bootstrap5Bootstrap 5 样式
图标 IconsBlazorise.Icons.FontAwesomeFontAwesome 图标集成

项目依赖

  • 身份管理:Volo.Abp.Identity.Blazor.Server(用户和角色管理)
  • 租户管理:Volo.Abp.TenantManagement.Blazor.Server(多租户)
  • 设置管理:Volo.Abp.SettingManagement.Blazor.Server(配置)
  • 认证:Volo.Abp.Account.Web.OpenIddict(OAuth/OpenID Connect)
  • 主题:Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme(UI 主题)

MVC 和 Razor Pages 框架

MVC 项目结构

Theme Integration
Module UI Integration
MVC Application
LeptonXLite Theme
Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite
Shared Theme Base
Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared
Multi-tenancy UI
Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy
Identity Web UI
Volo.Abp.Identity.Web
Tenant Management Web
Volo.Abp.TenantManagement.Web
Settings Web UI
Volo.Abp.SettingManagement.Web
Account Web UI
Volo.Abp.Account.Web.OpenIddict
MVC Host
MyCompanyName.MyProjectName.Web
Razor Pages
Server-side Rendering
ABP Tag Helpers
UI Components

关键 MVC 功能

  • 模块化 UI:每个 ABP 模块提供兼容 MVC 的 UI 组件
  • 主题系统:可插拔主题架构,默认使用 LeptonXLite
  • 标签助手:用于常见 UI 模式的自定义标签助手
  • 捆绑:自动 CSS/JS 捆绑和压缩
  • 本地化:带资源文件的服务器端本地化

共享基础设施

主题系统架构

Base Theme Infrastructure
Framework-Specific
Theme Packages
Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared
Common Theme Services
Volo.Abp.AspNetCore.Components.Web.Theming
Component Theming Base
@abp/ng.theme.lepton-x
Angular Implementation
Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite
MVC Implementation
Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme
Blazor Implementation
LeptonXLite Theme
Default Premium Theme
Basic Theme
Simple Bootstrap Theme
LeptonX Theme
Advanced Premium Theme

模块用户界面集成

模块Blazor 包MVC 包
身份Volo.Abp.Identity.Blazor.ServerVolo.Abp.Identity.Web
租户管理Volo.Abp.TenantManagement.Blazor.ServerVolo.Abp.TenantManagement.Web
权限管理集成在其他模块集成在其他模块
设置管理Volo.Abp.SettingManagement.Blazor.ServerVolo.Abp.SettingManagement.Web
功能管理Volo.Abp.FeatureManagement.Blazor.ServerVolo.Abp.FeatureManagement.Web
账户Volo.Abp.Account.Web.OpenIddictVolo.Abp.Account.Web.OpenIddict

跨框架兼容性

  • 认证 Authentication:所有框架使用相同的基于 OpenIddict 的认证
  • 授权 Authorization:权限系统在所有 UI 中一致工作
  • 本地化 Localization:相同的资源文件和本地化键
  • 多租户 Multi-tenancy:租户解析和切换统一工作
  • 模块集成 Module Integration:业务模块为所有框架提供 UI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/93117.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++中的`if`语句多操作条件执行及顺序保证技术指南

C中的if语句多操作条件执行及顺序保证技术指南 1. 引言 在C编程中,if语句是控制程序流程的基本结构。随着C17引入if语句的初始化部分,开发者获得了在条件判断前执行初始化操作的能力。然而,实际开发中常遇到更复杂的场景:​在条件…

基于SpringBoot+Uniapp的非遗文化宣传小程序(AI问答、协同过滤算法、Echarts图形化分析)

“ 🎈系统亮点:AI问答、协同过滤算法、Echarts图形化分析”01系统开发工具与环境搭建前后端分离架构项目架构:B/S架构运行环境:win10/win11、jdk17小程序端:技术:Uniapp;UI库:colorU…

[TG开发]简单的回声机器人

你好! 如果你想了解如何在Java上编写Telegram机器人&#xff0c;你来对地方了!准备启动机器人API基于HTTP请求&#xff0c;但在本书中我将使用Rubenlagus的Java库安装库你可以使用不同的方法安装TelegramBots库, 我这里使用Maven<dependency><groupId>org.telegram…

Ubuntu下快速安装Tomcat教程

Apache Tomcat 是一个开源的软件服务器,用于部署和运行 Java Servlet 和 JSP(JavaServer Pages)。本文将详细介绍如何在 Ubuntu 系统上安装并配置 Apache Tomcat。无论你是要开发企业级应用还是学习 Java Web 开发,Tomcat 都是一个不可或缺的工具。 Tomcat 基础功能 Tomca…

并发编程(八股)

概述并行:同一个时间点,多个线程同时执行 并发:同一个时间段,多个线程交替执行,微观上是一个一个的执行,宏观上感觉是同时执行 核心问题: 多线程访问共享数据存在资源竞用问题 不可见性 java内存模型(jmm) 变量数据都存在于主内存里,每个线程还有自己的工作内存(本地内存),规定…

如何在 Spring Boot 中设计和返回树形结构的组织和部门信息

如何在 Spring Boot 中设计和返回树形结构的组织和部门信息 文章目录如何在 Spring Boot 中设计和返回树形结构的组织和部门信息1. 需求分析一、数据库表设计1.1 organization 表设计1.2 department 表设计1.3 模拟数据二、后端设计2.1 实体类设计Organization 实体类Departmen…

Java毕业设计选题推荐 |基于SpringBoot的水产养殖管理系统 智能水产养殖监测系统 水产养殖小程序

&#x1f525;作者&#xff1a;it毕设实战小研&#x1f525; &#x1f496;简介&#xff1a;java、微信小程序、安卓&#xff1b;定制开发&#xff0c;远程调试 代码讲解&#xff0c;文档指导&#xff0c;ppt制作&#x1f496; 精彩专栏推荐订阅&#xff1a;在下方专栏&#x1…

排序概念、插入排序及希尔排序

一、排序基本概念1.就地排序&#xff1a;使用恒定的额外空间来产生输出就地排序只是在原数组空间进行排序处理&#xff0c;也就是输入的数组和得到的数组是同一个2.内部排序和外部排序&#xff1a;待排序数据可以一次性载入到内存中为内部排序&#xff0c;反之数据量过大就是外…

【排序算法】④堆排序

系列文章目录 第一篇&#xff1a;【排序算法】①直接插入排序-CSDN博客 第二篇&#xff1a;【排序算法】②希尔排序-CSDN博客 第三篇&#xff1a;【排序算法】③直接选择排序-CSDN博客 第四篇&#xff1a;【排序算法】④堆排序-CSDN博客 第五篇&#xff1a;【排序算法】⑤冒…

Android领域驱动设计与分层架构实践

引言在Android应用开发中&#xff0c;随着业务逻辑日益复杂&#xff0c;传统的MVC或简单MVP架构往往难以应对。领域驱动设计(Domain-Driven Design, DDD)结合分层架构&#xff0c;为我们提供了一种更系统化的解决方案。本文将探讨如何在Android项目中应用DDD原则与分层架构&…

Android12 Framework电话功能UI定制

文章目录简介代码中间按钮Fragment创建VideoCallFragmentFragment管理添加按键挂断电话功能相关文章简介 Android版本&#xff1a;12 芯片平台&#xff1a;展锐 如下图为通话中的UI&#xff0c;打电话出去时显示的UI与此也差不多&#xff0c;但来电时UI是不一样的 这个界面是…

高并发场景下分布式ID生成方案对比与实践指南

高并发场景下分布式ID生成方案对比与实践指南 在分布式系统中&#xff0c;唯一且全局有序的ID生成器是很多业务的底层组件。随着系统并发量不断攀升&#xff0c;如何在高并发场景下保证ID的唯一性、性能、可用性和可扩展性&#xff0c;成为后端架构师需要重点考虑的问题。本文将…

Emscripten 指南:概念与使用

Emscripten 指南&#xff1a;概念与使用 什么是 Emscripten&#xff1f; Emscripten 是一个开源的编译器工具链&#xff0c;用于将 C/C 代码编译成高效的 WebAssembly&#xff08;Wasm&#xff09;和 JavaScript。它基于 LLVM 编译器架构&#xff0c;允许开发者&#xff1a; ✅…

使用镜像网站 打开克隆 GitHub 网站仓库内容 git clone https://github.com/

GitHub 网站有时因 DNS 解析问题或网络限制&#xff0c;国内访问可能会受限。使用镜像网站打开网站 使用镜像网站&#xff1a;GitHub 有一些镜像网站&#xff0c;可替代官网访问&#xff0c;如https://hub.fastgit.org、https://gitclone.com、https://github.com.cnpmjs.org等…

Linux随记(二十二)

一、redhat6.5 从openssh5.3 升级到openssh10 - 报错处理【升级后账号密码一直错误 和 sshd dead but subsys locked】 虚拟机测试情况 - 正常&#xff1a;情况一、 升级后账号密码一直错误 情况二、 执行service sshd status出现 sshd dead but subsys locked

机器学习之TF-IDF文本关键词提取

目录 一、什么是 TF-IDF&#xff1f; 1.语料库概念理解 二、TF-IDF 的计算公式 1. 词频&#xff08;TF&#xff09; 2. 逆文档频率&#xff08;IDF&#xff09; 3. TF-IDF 值 三、关键词提取之中文分词的实现 四、TF-IDF简单案例实现 &#xff08;1&#xff09;数据集…

Flutter屏幕和字体适配(ScreenUtil)

一、简介 flutter_screenutil 是一个 Flutter 插件&#xff0c;专门用于处理屏幕适配问题。它简化了不同设备间尺寸差异的处理&#xff0c;确保你的应用在各种屏幕上都能保持良好的显示效果。开发者可以通过简单的调用来设置基于设计图尺寸的控件宽高和字体大小。 项目地址&a…

mimiconda+vscode

安装miniconda实现python包管理&#xff0c;并通过vscode进行编写python代码 miniconda简单介绍 Miniconda 是 Anaconda 公司的一个轻量级 Python 发行版本&#xff0c;它包含了最基本的包管理器 conda 和 Python 环境&#xff0c;只带最核心的组件&#xff0c;没有额外的大量科…

Windows文件时间修改指南:从手动到自动化

修改文件的时间属性可以满足多种需求。比如&#xff0c;它可以帮助整理文件&#xff0c;使得文件按照特定的时间顺序排列&#xff0c;有助于更好地管理资料。它的体积真小&#xff0c;才300多KB。能用来调整文件的创建时间、最后访问和修改时间。文件时间属性修改_NewFileTime.…

能刷java题的网站

以下是一些适合刷Java题的优质网站&#xff0c;涵盖从基础到进阶、算法面试及实战项目等多种需求&#xff1a; ​一、综合编程练习平台​ ​LeetCode​&#xff08;leetcode.com&#xff09; ​特点​&#xff1a;全球最知名的算法题库&#xff0c;含海量Java题目&#xff0c;分…