ABP开发框架前后开发系列——(16)ABP框架最新版本升级经验总结
数据处理
浏览:1107 次

ABP框架在短时间内没有持续升级。最近,ABP框架已全面更新,以满足客户的需求。因为我们使用的ABP框架的基本部分仍然使用官方内容,所以升级时需要全面更新官方基本ABP DLL,以及相应的参考DLL。然而,在升级过程中仍然存在许多奇怪的问题。这篇文章对这些情况做了一系列总结,以便你以后参考。
1.更新最新案例源代码和NugGet包
ABP的官方基本模块更新非常快。过去,跳过了几个版本号。我在旧版本的基础上手动更新了NugGet,但基于VS的NugGet总是卡住,不知不觉中没有响应,这严重影响了开发效率。因此,首先从官方下载的Demo案例中更新相关的源代码。
官方案例源代码下载地址为:
1) 最新案例的源代码结构和部分内容调整
我们从中下载相应的源代码,然后使用Beyond Compare根据项目结构中对应的源代码文件逐一比较文件。原则上,除个人扩展外,应以官方源代码实践为准。
目前,最新的官方ABP DLL版本是5.3.0,可供下载的演示版本是5.2.0。它们应该类似。下载的Aspnet核心的源代码结构如下所示。
形象
在此基础上,我们的ABP框架进行了优化,以使开发更加方便和快速,并可与代码生成工具一起快速使用。
我们的VS项目结构如下所示。
形象
以上是VS中解决方案的项目结构。我根据项目之间的关系安排了架构图,如下所示。
形象

在上图中,橙色部分是我们为每个层添加的类或接口,层上的序列号是我们需要逐步处理的。
app服务层是整个ABP框架的灵魂。它实现了内部协作仓储对象的数据处理以及与Web的外部协作。核心和Web主机项目提供Web API服务,而Web。核心和Web主机项目几乎不需要修改。因此,app服务层是一个非常关键的部分。有必要考虑用户登录的验证、界面权限的验证、审计日志的记录和处理以及异常的跟踪和传输。基本上,应用服务层扮演着总经理的角色,这是不言自明的。
形象
在回顾了修改后的ABP开发框架的结构之后,让我们回到版本升级的主体。
目前,我将VS版本升级到最新版本。net框架支持4.8,并单独安装了最新版本的dotnet核心3.1。因此,环境是最新的,基本的ABP 5.3.0也使用了net core3.1
通过比较源代码,我们可以找到Web。主机和Web在核心项目中存在一些差异。IHostingEnvironment已被放弃,取而代之的是dotnetcore的最新对象IWebHostEnvironment。
形象
将最新源代码替换为
形象
因此,Web中的Module类。主办项目也已调整。
形象
相应Web中的模块。核心项目也进行了调整。
形象

2) NugGet包更新
原则上,您可以选择单个项目来更新Nugget包,也可以选择整个解决方案来更新包。前者可能更快,而后者可能由于解决方案项目的数量而较慢。
我的早期基本ABP版本是4.9,所以我想一次性更新整个解决方案包。然而,经过几次尝试,我花了几个小时才成功更新了所有项目。因此,单个项目的更新也非常缓慢。
因此,也建议使用掘金的最新地址进行更新。更新源设置如下。
形象
添加到包源:
形象
响应速度相对较快。没有不常见的问题。
如果我们需要单独更新某个项目的包,我们需要选择该项目并选择[管理掘金包]进入更新界面。如下图所示。
形象
形象
通常,我们建议对整个解决方案进行全面的软件包更新。如下选择解决方案,然后进入相应的Nugget包管理界面进行更新。
形象

如果这样一个包裹能顺利完成,每个人都会很高兴