Abp(net core)+easyui+efcore实现仓储管理系统目录

abp(net core)+easyui+efcore实现仓储管理系统——EasyUI前端页面框架 (十八)

 一、简介

微软从.NET 5开始进行.NET 统一计划,.NET 5是继3.1之后.NET Core的下一个主要版本。微软从名称中删除了“Core”,是为了强调这是 .NET未来的主要实现。与 .NET Core 或 .NET Framework 相比,.NET 5 会支持类型更多的应用和平台。.NET 5不会替换 .NET Framework。

.NET 6 提供 .NET 统一计划的最终部分,该计划在 .NET 5中启动。 .NET 6在移动、桌面、IoT 和云应用之间统一了SDK、基础库和运行时。除了这方面的统一以外,.NET 6 生态系统还提供了以下功能:

简化开发:轻松入门。 C# 10 中的新语言功能可减少需要编写的代码量。 利用 Web 堆栈和最小 API 的投资,可以轻松地快速编写更小、更快速的微服务。

更佳的性能:.NET 6 是最快的完整堆栈 Web 框架,如果在云中运行,则会降低计算成本。

终极工作效率:.Net 6 和 Visual Studio 2022 提供热重载、新的 git 工具、智能代码编辑、可靠的诊断和测试工具以及更好的团队协作。

.NET 7已经在2022年11月发布了,.NET8已经在路上了,预计将在今年的11月份发布。.NET小步快走,每年都在进步。

从2019年5月至2020年12月,花了一年半时间写了abp(net core)+easyui+efcore实现仓储管理系统系列文章。本系列是介绍基于ABP+EasyUI的Web开发框架的实现一个仓储管理系统的实例,主要包括一些ABP的介绍,ASP.NET MVC Core技术、EasyUI技术、JQuery技术、WebAPI 技术,以及一些我对整体框架改造的基础性东西,力求更加稳定、通用、高效、简洁,用最少的代码做尽可能多的事情。当时我所使用的ABP版本是4.3,是基于ASP.NET CORE 2.X的版本。

2年时间过去了,ASP.NTE CORE 2.x微软已经不在对其进行支持,已经结束了支持周期。我准备将ABP升级到7.3,这是基于NET6的一个版本,NET6是一个长期支持版本,其支持周期结束时间在2024年11月份。easyui升级到1.10.12。

做为IT从业人员,我们在不同的公司或相同的公司基于不同的需求创建着各种应用,这些应用都有一些通用和相似的结构。这些通用的结构包括授权,验证,异常处理,日志,本地化,数据库连接管理,设置管理,审计日志等。

我们在创建与实现各种应用时,都会试着应用各种新的最佳实践,比如分层和模块化架构,领域驱动设计(DDD),依赖注入等等。

ABP是一个开源的且文档友好的应用框架,它不仅仅是一个框架,更提供了一个基于DDD和最佳实践的健壮的体系模型。

接下来我们进行升级,在浏览器中输入https://aspnetboilerplate.com/Templates。然后依次按下图选择,输入验证码,之后点击“create my project”按钮。下载项目模板。

至于你是用新的项目模板替换旧的项目模板,还是将项目中的代码文件拷贝到新的项目中,这个就由你自己决定了。

 二、升级过程遇到的问题

接下来介绍一下升级过程中遇到的问题。

第一个问题,原来代码中我们使用的ABP基类提供的GetAll()、Create()、Update()此类方法 ,在ABP7.3中都已经不提供了,现在ABP7.3中提供的是异步方法,在以上方法上加上Async后缀。即GetAll()变为了GetAllAsync、Create()变为了CreateAsync、Update()变为了UpdateAsync。

第二个问题,用Visual Studio 2022打开了我们的ABP.TPLMS项目,在解决方案资源管理器中,将ABP.TPLMS.WEB.MVC项目设置为启动项目,按F5启动,浏览器中呈现的登录页面没有样式。如下图。整个登录界面在页面的左上角,不在页面的正中间,而且没有css。

这是由于ABP的客户端库,需要我们自己进行还原。在Visual Studio 2022的解决方案资源管理器中,找到ABP.TPLMS.WEB.MVC项目,在这个项目中有一个libman.json文件。

使用鼠标左键选中这个文件,然后单击鼠标右键,在弹出菜单中选择“还原客户端库”,如下图。在这个还原过程中,需要一直保持网络畅通。请对照此文件中的内容,查看wwwroot\libs目录下的所还原的客户端库是否完整。如果不完整,请再次进行还原。

客户端库还原成功之后,在Visual Studio 2022的解决方案资源管理器中,将ABP.TPLMS.WEB.MVC项目设置为启动项目,按F5键运行项目,浏览器中呈现的登录页面如下图。

第三个问题:AutoMapper 9版本之后取消了静态方法,所以造成了以下错误。

我首先想到的解决方法就是注入,将IMapper注入到这个类中,于是我在Visual Studio 2022 的解决方案资源管理器中,找到ABP.TPLMS.Application项目中的Modules文件夹中的ModuleAppService.cs文件,修改了ModuleAppService的构造方法 ,将IMapper注入。将代码中原来的Mapper.Map都修改为m_map.Map。编译是通过了,但是在后续的升级过程中却遇到了另外的一个问题,一个错误,这个问题在后续来解决。先按编译通过的方式来修改代码,具体代码如下:

public class ModuleAppService : ApplicationService, IModuleAppService
{ private readonly IRepository<Module> _moduleRepository; AutoMapper.IMapper m_map; public ModuleAppService(IRepository<Module> moduleRepository, IMapper map)
{ _moduleRepository = moduleRepository; m_map = map; } }

abp(net core)+easyui+efcore实现仓储管理系统——ABP升级7.3上(五十八)的更多相关文章

  1. abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之一(二十七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  2. abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  3. 2019年7月16日 abp(net core)+easyui+efcore实现仓储管理系统——多语言(十)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  4. abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十一)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  5. abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十二)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  6. abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十三)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  7. abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十四)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  8. abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十五)

    core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+e ...

  9. abp(net core)+easyui+efcore实现仓储管理系统——菜单 (十六)

    系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) ...

  10. abp(net core)+easyui+efcore实现仓储管理系统——菜单-下(十七)

    实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案 ...

随机推荐

  1. STM32中断调试中遇到的问题

    STM32应用过程中遇到的问题 实现功能: 1.自动流水灯:在LED1~LED4上实现自动流水灯,流水间隔时间为200ms/bit,然后通过按键KEY1改变流水灯的速度,每次按键间隔时间增加200ms ...

  2. java.lang.NoSuchMethodException: com.titan.domain.BigPackage.setEMail(java.lang.String)

    List<Map<String, Object>> list 转 List<Bean>报异常. ... Method method = classType.getM ...

  3. gitt如何将本地分支同远程分支进行关联

    将本地分支同远程分支进行关联,1.本地已经创建了分支test(test,是master以外自己创建的分支),而远程没有2种方法在远程创建分支test,并与本地分支进行关联: 方法1: git push ...

  4. 2.21(html)

  5. vue中自动将px转换成rem

    1.首先下载 lib-flexible npm install lib-flexible --save 2.在main.js中引用 lib-flexible 3.安装px2rem-loader(将px ...

  6. 基于mysql纯java的智能题库(后期填写注释)

    1 package controller; 2 3 import admin.entity.Admin; 4 import admin.service.AdminService; 5 import a ...

  7. java学习问题

    1.nacos Connection refused: connect 由于配置文件配置错误引起的.我的nacos是部署在另一台linux服务器的,yml具体配置如下:

  8. python3GUI--用Tk开发一款恶搞蓝屏软件(附源码)

    目录 一.准备工作 1.Tkinter 2.科普-电脑蓝屏 二.预览 1.蓝屏-win10.win11(中文版) 2.蓝屏-win10.win11(英文版) 3.Windows其他版本(XP.Win7 ...

  9. antv g6 中自定义tooltip 当有该属性时展示没有时不展示

    getContent(e) { const outDiv = document.createElement('div'); outDiv.style.width = '180px'; outDiv.i ...

  10. jmeter 数据库连接

    位置:右击添加>配置元件>JDBC Connection Configuration 作用:需要对数据库发起请求查询数据或者对数据库施加压力 3.设置说明 Variable Name(变量 ...