ABP Framework 5.2 RC 新增功能

本文将介绍 ABP Framework 5.2 RC 版新增的主要功能:

  • 单层解决方案模板
  • API 版本控制
  • 源代码控制移除libs文件夹
  • 对 Swagger UI 隐藏 ABP 默认端点
  • CMS Kit应用模块自定义全局 CSS 和 JavaScript

关注 ABP Framework 最新开发进度,后面还会陆续发布新功能详解、新功能示例等系列文章,敬请关注!

ABP Framework 研习社(QQ群:726299208)

专注 ABP Framework 学习,经验分享、问题讨论、示例源码、电子书共享,欢迎加入!

单层解决方案模板

ABP启动模板是一个组织良好的分层解决方案,用于创建可维护的应用程序。然而,一些开发人员发现,对于简单和短期的应用程序来说,它有点复杂。对于这样的应用程序,我们提供一个新的启动模板,没有分层、确保项目结构尽可能简单,但是在运行时功能,特性和模块齐全,一切都包含单个项目(csproj)中,如下图所示:

在创建解决方案时,模板参数使用 -t app-nolayers:

abp new BookStore -t app-nolayers --preview

EF Core 数据库迁移

创建项目之后,需要在运行应用程序之前创建数据。我们已经向应用程序添加了一个参数--migrate-database,可以指定该参数用来进行数据库迁移和初始化数据。在命令行终端打开项目目录(包含csproj文件),输入以下命令:

dotnet run --migrate-database

将运行数据库迁移并退出,然后就可以正常运行应用程序了。

也可以使用命令 dotnet ef database update (或者 Visual Studio's Package Manager Console 中使用 Update-Database 命令)创建数据库表,但是,不会生成运行应用程序所必需的初始数据。

为了让解决方案保持简单,我们并没有添加其他应用,比如:单独用于迁移数据库的DbMigrator项目。

使用应用程序本身进行迁移数据库不但可以用于开发环境,也可以在生产环境中使用。但是,还有其他迁移数据库的方法。请阅读更多关于微软文档。

UI 和 数据库 选项

单层解决方案模板同样支持 Angular 和 Blazor UI,数据库也支持 MongoDB。对于 UI,可以为 -u 或 --ui 参数设置 mvc(默认)、angular 或 blazor-server 参数以支持不同的UI框架。对于数据库提供程序,可以为-d或--database-provider参数设置 ef(默认)或者mongodb 以支持不同的数据库提供程序。

示例:

abp new BookStore -t app-nolayers -u angular -d mongodb --preview

以上命令创建一个单层解决方案,使用 Angular 作为 UI框架,使用 MongoDB 作为数据库提供程序。

API 版本控制

API版本控制在ABP框架中一直是可用的,但是我们还没有提供相应的文档。对于版本 5.2 ,我们创建了一个文档来解释如何为应用程序实现API版本控制,并向您的标准应用程序服务类添加版本控制支持。请参阅文档。

源代码控制移除libs文件夹

注意:对于开发环境和CI/CD管道来说可能是一个破坏改变。因此,请仔细阅读本文档并采取必要的措施。

当你创建的解决方案使用 MVC(Razor Pages) 或 Blazor Server UI 框架时,在解决方案的UI项目中包含一个 wwwroot/libs 目录,结构如下:

libs目录包含所有客户端依赖类库(大多数为 JavaScript 和 CSS)。举个例子,在上图中 bootstrap 目录包含 Bootstrap 类库所需的必要文件。该目录中的内容是从 node_modules 目录中复制而来(只复制最小的必须文件,确保类库可用,并不是整个类库),通过 ABP CLI 提供的 abp install-libs 命令完成。

在 5.2 版本之前,libs目录是启动模板中的一部分,并提交到源代码控制系统中,比如:Git。在 5.2 版本之后,该目录默认从源码控制中移除,所以开发者必须在解决方案中UI项目的根目录中运行abp install-libs命令来安装前端依赖库。这种方法为解决方案节省了大量空间。例如,MVC UI应用程序的初始大小从 9.83 MB减少到 0.23 MB。

当你使用 ABP CLI 创建解决方案时,install-libs命令会自动执行,所以你的应用程序可以直接工作。但是,如果你的团队成员(或CI/CD系统)是从源代码控制系统(如Github)获取解决方案源码,那么应该在运行之前执行abp install-libs命令。

如果你想将 libs 目录添加到源代码控制系统中,可以在解决方案根目录中找到 .gitignore 文件,移除 **/wwwroot/libs/* 这一行即可。如果你使用的是 Git 以外的版本控制系统,你应该应用系统提供的设置规则来包含或排除 libs 文件夹。

对 Swagger UI 隐藏 ABP 默认端点

Engincan Veske 写了一篇文章来解释如何从 Swagger UI 中隐藏 ABP默认端点。然后我们认为这可能是ABP框架中的一个很好的内置选项,所以在 AddAbpSwaggerGen 方法中添加了一个HideAbpEndpoints 方法,可以像下面的代码示例使用:

services.AddAbpSwaggerGen(
options =>
{
//... 其他设置 //在Swagger UI上隐藏ABP相关的端点
options.HideAbpEndpoints();
}
)

这样设置之后,ABP的默认端点仍然存在,但将在 Swagger UI 中隐藏。

CMS Kit 应用模块自定义全局 CSS 和 JavaScript

我们一直在改进 CMS Kit 应用模块,并不断添加新功能。在 5.2 版本中新增的特性是:全局资源系统,可以为应用程序编写自定义的全局 JavaScript 或 CSS 代码,并应用于所有应用程序页面中:

通过这种方式,您可以在运行时定制应用程序的外观和行为。有关更多信息,请参阅文档。

请注意,页面功能已经提供作用于页面的脚本/样式编辑器。但是这个新功能允许您编写作用于应用程序所有页面的脚本/样式,二者可以结合使用。

其他

  • 为 Blazor UI 升级 Blazorise 类库到 v1.0,升级之后确保应用程序中所有依赖 Blazorise 包使用 v1.0

历史版本回顾

ABP Framework 5.0 RC.1 新特性和变更说明

ABP Framework V4.4 RC 新增功能介绍

dotNET兄弟会-公众号

专注.Net开源技术及跨平台开发!致力于构建完善的.Net开放技术文库!为.Net爱好者提供学习交流家园!

ABP Framework 5.2 RC 发布及新增功能介绍的更多相关文章

  1. fedora21发布与新功能介绍(附fedora21安装教程与fedora21下载地址)

    fedora21发布与新功能介绍(附fedora21安装教程与fedora21下载地址) 最新的Fedora 21终于正式发布了,Fedora Server 是一款强大可定制化的操作系统,包括了最好最 ...

  2. ABP Framework V4.4 RC 新增功能介绍

    目录 新增功能概述 启动模板删除 EntityFrameworkCore.DbMigrations 项目 CMS-Kit 动态菜单管理 Razor引擎对文本模板的支持 DbContext/Entiti ...

  3. ABP Framework 5.0 RC.1 新特性和变更说明

    .Net 6.0 发布之后,ABP Framework 也在第一时间进行了升级,并在一个多星期后(2021-11-16)发布了 5.0 RC.1 ,新功能和重要变更基本已经确定. 5.0版本新特性 新 ...

  4. Axure RP Pro 6.5 正式版发布,新功能介绍,

    转:http://www.babesun.com/blog/page/5 2012-4-19,Axure公司发布了Axure RP Pro 6.5 正式版.网上高手发现了Axure支持多语言文件,以此 ...

  5. CorelDRAW 2018新增功能介绍

    2018年4月11日,CorelDRAW 2018正式对外发布,最新版设计软件包已经过全面更新,是近几年来发行的最强大版本,可协助绘图专业人士将创意转换为令人惊艳的专业视觉设计.CorelDRAW 2 ...

  6. 161128、Redis 4.0发布及其新功能介绍

    Redis 4.0-rc1 发布了,这是 4.0 的首个 RC 版.Redis 是一个高性能的key-value数据库.Redis 的出现,很大程度补偿了memcached这类keyvalue存储的不 ...

  7. ABP Framework 5.3.0 版本新增功能和变更说明

    ABP Framework 5.3.0 稳定版已在2022年6月14日正式发布. 以下是本版本的新增功能: "开始"页面提供创建单层项目选项 启动模板提供 PWA 支持 Volo. ...

  8. ABP Framework:移除 EF Core Migrations 项目,统一数据上下文

    原文:Unifying DbContexts for EF Core / Removing the EF Core Migrations Project 目录 导读:软件开发的一切都需要平衡 动机 警 ...

  9. .NET Framework3.0/3.5/4.0/4.5新增功能摘要

    Microsoft .NET Framework 3.0 .NET Framework 3.0 中增加了不少新功能,例如: Windows Workflow Foundation (WF) Windo ...

随机推荐

  1. 人工智能与智能系统2-> 机器人学2 | 时间与运动

    <Robotics, Vision and Control>学习到第三章,我才发现这本书是有配套视频的,第二章看的好辛苦,很多地方生硬理解了一下,现在打算把视频再好好看一看,作为补充,也会 ...

  2. 【C++】【源码解读】std::is_same函数源码解读

    std::is_same使用很简单 重点在于对源码的解读 参考下面一句静态断言: static_assert(!std::is_same<bool, T>::value, "ve ...

  3. Thread中常用API

    1.sleep方法 线程的 sleep 方法会使线程休眠指定的时间长度.休眠的意思是,当前逻辑执行到此不再继续执行,而是等待指定的时间.但在这段时间内,该线程持有的锁并不会释放.这样设计很好理解,因为 ...

  4. 关于CALayer的疑惑

  5. 服务器硬件及RAID配置实践

    服务器硬件及RAID配置实践 1.RAID磁盘阵列介绍 2.创建RAID磁盘阵列 1.RAID:中文简称为独立冗余磁盘阵列 把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供 ...

  6. 【NetCore】依赖注入的一些理解与分享

    依赖注入 DI 前言 声明:我是一个菜鸟,此文是自己的理解,可能正确,可能有误.仅供学习参考帮助理解,如果直接拷贝代码使用造成损失概不负责. 相关的文章很多,我就仅在代码层面描述我所理解的依赖注入是个 ...

  7. Ubuntu 20.04.3 LTS + Intel Realsense 400系列

    Ubuntu 如何查看当前Ubuntu系统的版本,以及看自己的系统是否为LTS版本 lsb_release -a 如何查看Ubuntu系统的Linux系统版本,和GCC版本 cat /proc/ver ...

  8. 4.Flink实时项目之数据拆分

    1. 摘要 我们前面采集的日志数据已经保存到 Kafka 中,作为日志数据的 ODS 层,从 kafka 的ODS 层读取的日志数据分为 3 类, 页面日志.启动日志和曝光日志.这三类数据虽然都是用户 ...

  9. Elasticsearch笔记2

    1 搜索所有文档中还有某个字段的方法: localhost:9200/get-together/group/_search?pretty { "query": { "qu ...

  10. 使用docker部署awx-1.7.1.0(ansible图形化界面)

    文章目录 关于环境 下载awx 下载安装所需依赖 安装docker-compose 配置inventory文件 出现的报错 TASK [local_docker : Run migrations in ...