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. rabbitMq安装 - docker

    安装rabbitmq 参考网站:https://www.rabbitmq.com/download.html 方式一: 获取rabbit镜像: docker pull rabbitmq:managem ...

  2. 在linux环境下自动执行python脚本

    有时候编辑的py文件,需要进行自动执行时,可以用以下方式进行定时 00 09 * * * /usr/local/bin/python3 /udata/ubi/uenbi_py/trade_all_da ...

  3. WPF Binding表达式

    前言: WPF BindingBinding表达式的使用,可以很方便的绑定参数和更新界面数据. 1.界面添加控件,并设置对应属性的Binding表达式,例如: <Window x:Class=& ...

  4. Flutter Web预览时白屏解决方法

    原因是因为运行 flutter run 是自动选择渲染器 桌面端WEB浏览器默认使用  CanvasKit渲染器 移动端WEB浏览器默认使用  HTML渲染器 问题就出在了CanvasKit渲染器,他 ...

  5. Debug --> 使用USTC-TK2016工具对USTC-TFC2016数据集进行处理

    文件介绍: https://blog.csdn.net/u010916338/article/details/86511009?spm=1001.2101.3001.6661.1&utm_me ...

  6. 关于在Eclipse中使用EclEmma

    在LAB2中,要求使用EclEmma来统计JUnit测试用例的代码覆盖度.下面就来说说如何进行基本的使用来应付实验(bushi). 在这给出完全体,可以访问下面的网址进行学习. http://www. ...

  7. php 解密 java des 密文

    背景 对方系统java des 加密, 我们用 php 解密 模式基本介绍 ECB模式:电子密本方式,JAVA封装的DES算法的默认模式,就是将数据按照8个字节一段进行DES加密或解密得到一段8个字节 ...

  8. python 安装fbprophet模块的艰辛历程

    fbprophet这个模块是我目前见过最难装的一个模块,我安装这个包安装了3天,气死我了,需求的依赖包太多,而且对依赖包的版本有极高的要求,所以建议在装这个模块的时候在一个空的虚拟环境下安装,这样依赖 ...

  9. linux查看IP地址

    方法一:ifconfig -a 方法二:ip addr

  10. DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SHRINKDATABASE收缩指定数据库中的数据文件和日志文件的大小

    收缩指定数据库中的数据文件和日志文件的大小.  Transact-SQL 语法约定 语法 DBCC SHRINKDATABASE ( database_name | database_id | 0 [ ...