在全球范围内病毒笼罩的日子里,我们发布了ABP框架v2.3, 这篇文章将说明本次发布新增内容和过去的两周我们做了什么.

关于新冠病毒和我们的团队

关于冠状病毒的状况我们很难过.在Volosoft的团队,我们有不同国家的远程工作者在自己家里工作.从上周开始,我们已经完全开始在家远程工作,包括我们的主要办公室的员工.

我们相信并祈祷人类会在很短的时间内克服这个问题.

关于发布周期

从ABP v2.1.0开始,我们开始每两周的周四发布功能版本.本次是该决定后的第3次发布,我们看到这种方式目前运转良好,并提高了我们的灵活性.

我们将继续每两周发布功能版本(如v2.4,v2.5).另外,如果需要我们会随时发布热修复版本(如v2.3.1,v2.3.2).

ABP框架v2.3.0新增内容

我们已在这两周的开发周期内通过393次提交完成和合并了 104个issue和pull request.

我将介绍这个版本加入的一些新功能和改善.

React Native移动应用程序

我们终于完成了react native移动应用程序.目前,它可以让你登录,管理用户和租户.它利用ABP框架相同的设置,授权和本地化系统.

应用程序的一些截图:

它没有太多的功能,但它是你的移动应用程序一个完美的起点,因为它是完全集成到后端并支持多租户.

Angular TypeScript代理生成器

从我们的Angular应用程序中调用服务器中的REST端点是很常见的.这种情况下,我们一般创建服务(在服务器上包含各个服务的方法)和模型对象(对应服务器上的DTO).

除了手动创建这样的与服务器交互的服务外,我们可以使用像NSWAG工具来为我们生成服务代理.但是NSWAG有以下几个我们遇到的问题:

1.它产生一个大,单一的.ts文件;

2.当你的应用程序增长时,它变得太大了.

3.它不适合ABP框架的 模块化方式.

4.它创建了有点丑陋的代码.我们希望有一个干净的代码(就像我们手写的).

5.它不能生成服务器端声明的相同的方法签名(因为swagger.json不能准确地反映后端服务的方法签名).我们已创建了公开服务器端方法约定的端点,来允许客户端生成更好的客户端代理.

因此,我们决定创建一个ABP CLI命令来自动生成typescript客户端代理(#2222),用于在ABP框架中开发REST API.

它用起来很简单.只需要在你Angular应用程序的根文件夹运行以下命令

abp generate-proxy

它只会为你自己的应用程序的服务创建代理.它(默认)不会为你使用的应用程序模块创建代理.有几个选项.参见CLI文档.

复合主键的CRUD应用服务

CrudAppService是一个很有用的基类,用来为你的实体创建CRUD应用服务.不过,它不支持复合主键的实体. AbstractKeyCrudAppService是新开发的基类以支持复合主键的实体.更多信息请浏览文档.

添加模块的源代码

应用程序启动模板带有一些应用模块, 以Nuget和NPM包的方式预先安装了 .

这样做有几个重要的优点:

1.当新版本可用时, 你可以 轻松地升级 这些模块.

2.你的解决方案更干净,这样你就可以专注于自己的代码.

但是,当你需要对一个依赖的模块大量定制时,就不如它的代码在你的应用程序中那么容易.为了解决这个问题,我们引入了一个ABP CLI的新命令, 在你的解决方案中用代码替换Nuget包.用法很简单:

abp add-module --with-source-code

该命令以源代码方式添加模块, 或者如果模块已经以包引用方式添加了, 则替换为源代码.

建议在使用此命令前保存你的更改到源代码控制系统, 因为它会修改很多你的代码.

此外,我们也创建了文档来说明如何定制依赖的模块而不改变它们的源代码(见下面的部分).仍然建议以包的方式使用模块,以便在以后可以轻松升级.

免费模块的源代码是MIT许可,所以你可以自由更改它们并添加到您的解决方案中.

切换到预览版

ABP框架正在迅速发展,我们经常发布新版本.不过,如果你想更紧密地追随它,你可以使用每日预览包.

我们创建了一个ABP CLI命令来轻松地为你的解决方案更新到最新的预览包.在你的解决方案的根文件夹中运行以下命令:

abp switch-to-preview

它会修改所有ABP相关的NuGet和NPM包的版本.当你需要时你也可以切换回最新稳定版:

abp switch-to-stable

更多信息请浏览ABP CLI文档.

文档改进

扩展/定制依赖应用模块

我们创建了一个巨大的文档来说明如何定制模块依赖而不改变其源代码.参见文档.

除了文档以外,我们已经修订了所有模块(#3166),来使他们的服务更容易扩展和定制.

1.EF Core迁移指南

最近,我们创建了一个指南,说明ABP启动模板所使用的迁移系统. 该指南还介绍了如何定制迁移结构,拆分你的模块跨多个数据库,复用一个模块的表,等等.

2.从 ASP.NET Boilerplate迁移

如果你有建立在 ASP.NET Boilerplate的解决方案,我们创建了一个指南,试着帮助迁移你的解决方案到新的ABP框架上.

其他一些功能

1.框架

添加 IRepository.GetAsync和 IRepository.FindAsync方法(#3184).

2.模块

当创建新租户时获取管理员的密码和电子邮件地址,租户管理模块(#3088).

集成Elastic全文检索, 文档模块(#2901).

新的Quartz后台工作者模块(#2762)

3.示例

微服务演示添加多租户支持(#3032).

所有的功能, 改善和BUG修复, 请浏览发布说明.

下一步?我们未来几个月的目标如下:

完成文档和示例,写更多的教程.

使框架和现有模块的更加可定制和可扩展.

集成gRPC和为所有预置模块实现gRPC端点(#2882).

为ABP框架创建Blazor UI, 并在所有模块和启动模板中实现它(#394).

为预置模块添加新功能,并为ABP商业版创建新模块.

更多细节请浏览GitHub里程碑.

Abp vNext发布v2.3!相关推荐

  1. 基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目

    基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目 转载于:https://github.com/Meowv/Blog 既然开发完成了,还是拿出来溜溜比较好,本篇是本 ...

  2. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客的分页查询文章列表 ...

  3. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客的主题切换,菜单和 ...

  4. 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(一)

    基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(一) 转载于:https://github.com/Meowv/Blog 现在博客数据库中的数据是比较混乱的,为了看 ...

  5. 基于 abp vNext 和 .NET Core 开发博客项目 - 再说Swagger,分组、描述、小绿锁

    基于 abp vNext 和 .NET Core 开发博客项目 - 再说Swagger,分组.描述.小绿锁 https://github.com/Meowv/Blog 在开始本篇正文之前,解决一个 @ ...

  6. ABP vNext微服务架构详细教程——结束语

    ABP vNext微服务架构详细教程--简介 ABP vNext微服务架构详细教程--架构介绍 ABP vNext微服务架构详细教程--身份管理服务 ABP vNext微服务架构详细教程--基础服务层 ...

  7. Abp Vnext Vue3 的版本实现

    Abp Vnext Pro 的 Vue3 实现版本 开箱即用的中后台前端/设计解决方案 开始 Github地址 文档地址 演示地址 系统功能 [x] 用户管理 [x] 角色管理 [x] 审计日志 [x ...

  8. Abp VNext 集成sharding-core 分表分库

    ShardingCore 易用.简单.高性能.普适性,是一款扩展针对efcore生态下的分表分库的扩展解决方案,支持efcore2+的所有版本,支持efcore2+的所有数据库.支持自定义路由.动态路 ...

  9. ABP Vnext 4.4:统一Ef Core的DbContext/移除EF Core Migrations项目

    Abp vnext 4.4出现了一个比较重大的变更:在Startup template中移除了EF Core Migrations项目,本文翻译自community.abp.io/articl 由于本 ...

最新文章

  1. 发送快递:配置静态路由
  2. Lucene.Net无障碍学习和使用:索引篇
  3. 图像腌膜Mask的常规操作你真的信手拈来吗?
  4. php微信公众号获取天气预报,【微信公众平台开发】封装获取天气预报功能
  5. 【NLP技术应用】工业界求解NER问题的12条黄金法则
  6. python类继承重复_python单例模式,可以继承,不会重复执行初始化函数的版本
  7. 密码学系列之:内容嗅探
  8. 基于MaxCompute的数仓数据质量管理
  9. 潭州课堂25班:Ph201805201 django 项目 第二十四课 文章主页 多级评论数据库设计 ,后台代码完成 (课堂笔记)...
  10. ERP财务报表快消失了?用它做财务系统根本不够用
  11. 关于input样式的一些技巧
  12. html 星空效果,html5 canvas炫酷旋转银河系星空背景特效
  13. IT程序猿常用编辑工具:UltraEdit for Mac v21.00.0.12中文版
  14. Win10改Win7图片查看器|Win10新增加Windows照片查看器
  15. Python中的文件基础
  16. CSC申请成功经验(自动化到生物信息,德国KIT-CSC攻博)
  17. 为什么我推荐你用语雀记笔记?
  18. linux audacity,Audacity使用教程 Audacity怎么用
  19. dede服务器建站_织梦教程,网站搭建,网站成功部署教程
  20. win10运行在哪里打开 win10怎么打开运行窗口快捷键

热门文章

  1. IOS-网络(大文件下载)
  2. 学习使用新浪接口随笔(一)
  3. Android 说说亮屏锁和键盘锁
  4. [导入]Asp.net中动态在中加入Scrpit标签
  5. 如何在Windows 7或Vista上安装IIS
  6. vista磁盘使用100%_如何在Windows 7或Vista中创建和使用密码重置磁盘
  7. 固态硬盘可靠性_您可以通过使用较少的总容量来提高硬盘的可靠性吗?
  8. Golang并发模型:合理退出并发协程
  9. 设计模式-工厂方法(Factory Method)
  10. 前端进阶之路: 前端架构设计(2)-流程核心