新冠病毒的日子里,我们发布了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有以下几个我们遇到的问题:

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

    • 当你的应用程序增长时,它变得太大了.
    • 它不适合ABP框架的 模块化方式.
  • 它创建了有点丑陋的代码.我们希望有一个干净的代码(就像我们手写的).
  • 它不能生成服务器端声明的相同的方法签名(因为swagger.json不能准确地反映后端服务的方法签名).我们已创建了公开服务器端方法约定的端点,来允许客户端生成更好的客户端代理.

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

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

abp generate-proxy

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

复合主键的CRUD应用服务

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

添加模块的源代码

应用程序启动模板带有一些应用模块, 以Nuget和NPM包的方式预先安装了 .这样做有几个重要的优点:

  • 当新版本可用时, 你可以 轻松地升级 这些模块.
  • 你的解决方案更干净,这样你就可以专注于自己的代码.

但是,当你需要对一个依赖的模块大量定制时,就不如它的代码在你的应用程序中那么容易.为了解决这个问题,我们引入了一个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),来使他们的服务更容易扩展和定制.

EF Core迁移指南

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

从 ASP.NET Boilerplate迁移

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

其他一些功能

框架

  • 添加IRepository.GetAsyncIRepository.FindAsync方法(#3184).

模块

  • 当创建新租户时获取管理员的密码和电子邮件地址,租户管理模块(#3088).
  • 集成Elastic全文检索, 文档模块(#2901).
  • 新的Quartz后台工作者模块(#2762)

示例

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

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

下一步?

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

  • 完成文档和示例,写更多的教程.
  • 使框架和现有模块的更加可定制和可扩展.
  • 集成gRPC和为所有预置模块实现gRPC端点(#2882).
  • 为ABP框架创建Blazor UI, 并在所有模块和启动模板中实现它(#394).
  • 为预置模块添加新功能,并为ABP商业版创建新模块.

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

[译]ABP框架v2.3.0已经发布!的更多相关文章

  1. [译]ABP框架使用AngularJs,ASP.NET MVC,Web API和EntityFramework构建N层架构的SPA应用程序

    本文转自:http://www.skcode.cn/archives/281 本文演示ABP框架如何使用AngularJs,ASP.NET MVC,Web API 和EntityFramework构建 ...

  2. 发布日志 - kratos v2.1.0 版本发布

    github https://github.com/go-kratos/kratos/releases/tag/v2.1.0 新的功能 新增客户端负载均衡器(load balancing)和路由选择器 ...

  3. JavaWeb 消息总线框架 Saka V0.0.1 发布

    端午闲着无聊,自己撸了一个简单的框架,可以实现在使用SendClient发送消息,在Spring容器中,符合该消息机制的接收器将能够被执行,目前Saka处于0.0.1版本[Saka-GIthub地址( ...

  4. 部署基于.netcore5.0的ABP框架后台Api服务端,以及使用Nginx部署Vue+Element前端应用

    前面介绍了很多关于ABP框架的后台Web API 服务端,以及基于Vue+Element前端应用,本篇针对两者的联合部署,以及对部署中遇到的问题进行处理.ABP框架的后端是基于.net core5.0 ...

  5. spring boot、cloud v2.1.0.RELEASE 使用及技术整理

    2018年10月30日 springboot v2.1.0.RELEASE 发布: https://github.com/spring-projects/spring-boot/releases/ta ...

  6. 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问

    中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具 ...

  7. [译]ABP v1.0终于发布了!

    ABP v1.0终于发布了! 今天是个大日子!经过约3年的不断开发,第一个稳定的ABP版本,1.0,已经发布了.感谢为该项目做出贡献或试用过的每个人. 立即开始使用新的ABP框架:abp.io/get ...

  8. go-wingui 2018 全新 v2.0 版本发布,包含重大更新!

    go-wingui 2018 全新 v2.0 版本发布,包含重大更新!使用新版CEF内核Chromium 63.0.3239.109,页面可以使用最新的css3,html5技术.使用delphi7重写 ...

  9. 迷你MVVM框架 avalonjs 0.95发布

    迷你MVVM框架 avalonjs 0.95发布 本版本最主要的改进是ms-with 深层绑定的实现,至少,avalon1.0所有重要的feature已经开发完毕,之后就是小补小漏,性能优化了. ms ...

随机推荐

  1. VS2010发布,IIS实际目录,无法修改只读状态解难决办法

    VS2010发布网站后,无法修改只读状态 CMS简单的主页生成失败,其他的修改操错也应该无法执行 只在常规里修改无效. 网上得答案 1.鼠标右键点击文件夹 2.点击属性 3.在“常规”标签页中,取消“ ...

  2. ISBN|方正|超星|The national academies press|OECD|RSC|Springer Link|Knovel|Encyclopedia Britannica

    图书使用图书分类号ISBN作为图书的ID 大英百科全书(Encyclopedia Britannica)可用于找寻关键词或关键词相关信息,便于构建准确的检索式: Knovel:可使用物理化学性质查找相 ...

  3. Win32双缓冲画图原理

    网上有许多文章讲述了如何使用Visual C++程序实现双缓冲,都是用C++面向对象语言写的,可能对很多没有接触过面向对象语言的C语言初学者来说理解起来有些困难,并且有些好心人也只是把源代码贴上去,不 ...

  4. Bootstrap插件及其应用方法网址

    全局CCS样式 https://v3.bootcss.com/css/#type-lists 组件 https://v3.bootcss.com/components/#pagination Boot ...

  5. Mac 安装Android Studio 及环境变量配置

    我翻开历史一查,这历史没有年代.歪歪斜斜的每页上都写着"仁义道德"几个字,我横竖睡不着,仔细看了半夜,才从字缝里看出来,满本上都写着两个字"吃人"! –鲁迅&l ...

  6. AngularJS入门篇

    AngularJS是一个JavaScript框架,它通过指令扩展了HTML,且通过表达式绑定数据到 HTML.顺便一提,什么是框架?比如struts2.spring.hibernate.thinkph ...

  7. 「知乎」对中国用户而言,Pure Android 是否比 MIUI 或 Flyme 体验更好? - Donnie的博客

    这篇文章转载自我在知乎上的回答 哎呀-不要站队嘛.其实这是一个很有意思的题目,让我们一点点来看 哦对,谢妖-.本人是Nexus 5用户,系统当然是Pure Android KitKat啦(臭谷粉!点D ...

  8. Java运行 Unsupported major.minor version 51.0 错误

    今天写了简单的Java程序,运行的时候不知道为啥出现这个问题 happy@happy-HP-Compaq-dx7518-MT:~/Study/CrazyJava$ java FieldTest Exc ...

  9. 微信小程序入门讲解

    微信小程序 注册 由于发文限制,请自行到微信公众平台注册 项目结构 project.config.json 配置文件(不需要动) app.json(用户配置) 路由pages window 整个程序样 ...

  10. Spring Security基于Oauth2的SSO单点登录怎样做?一个注解搞定

    一.说明 单点登录顾名思义就是在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统,免除多次登录的烦恼.本文主要介绍 同域 和 跨域 两种不同场景单点登录的实现原理,并使用 Spring ...