abp

基于ABP扩展类似审计(IHasCreationTime)功能

不想你离开。 提交于 2020-03-16 08:14:16
前言    因为公司项目都是基于abp这套框架来实现功能,最近项目在调整所以我们想自己实现 Module-Zero 相应的功能,毕竟 Module-Zero 是收费的(你懂的) 今天就是实现 类似审计(IHasCreationTime等)自动添加创建人,创建时间功能(子帐号概念) 思路 首先想到的是重写abp关于仓储的新增方法,代码确实很多,自身又对abp的源码没有太多的研究,放弃 每次实例化实体的时候手动给所属帐号Id手动赋值,麻烦,放弃 参考abp关于IHasCreationTime审计功能自动添加创建用户Id的思路,在继承AbpDbContext(数据上下文)中类中重写AbpDbContext定义的ObjectStateManager_ObjectStateManagerChanged这个方法。然后再声明一个受保护的SetChildAcountProperties方法用户给自账号相应字段赋值。 问题 本来想直接在XXXXXXDbContext:AbpDbContext类中声明一个基于IAbpsession扩展的Abpsession属性的,结果发现还不能这样写,关于拓展abpsession的文章请看连接博客园【圣杰】的 ABP入门系列(10)——扩展AbpSession ,后面采用了其他方式进行获取相应的值,下面的代码中会说明

【asp.net core】实现动态 Web API

耗尽温柔 提交于 2020-03-10 13:02:14
序言: 远程工作已经一个月了,最近也算是比较闲,每天早上起床打个卡,快速弄完当天要做的工作之后就快乐摸鱼去了。之前在用 ABP 框架 (旧版)的时候就觉得应用服务层写起来真的爽,为什么实现了个 IApplicationService 的空接口就可以变成 Web API,可惜的是之前一直没空去研究这一块的原理及其实现,园子里也找不到相关实现原理的文章(旧版 ABP 的倒是有,但是 asp.net core 无法参考)。最近闲起来,就看了一下 abp vnext 的源码,并且也参考了一下 晓晨Master 介绍的 Panda.DynamicWebApi 。我自己也简单实现了一遍动态 Web API,不禁感叹 asp.net core 设计之精妙。 abp vnext : https://abp.io Panda.DynamicWebApi : https://github.com/pdafx/Panda.DynamicWebApi 这里先感谢这两个库的相关人员,没有他们的工作,本文也出现不了。 另外在此声明,本文意在探究其实现原理并实现一个简易版本,若无把握请勿用于生产环境。 正文: 首先先创建我们的解决方案如下: 因为动态 Web API 这一功能是与业务无关的,而且为了复用,我们应该把这一功能的实现写到一个单独的类库当中。上图中 Demo 项目是 asp.net core 3.1

ABP开发框架前后端开发系列---(10)Web API调用类的简化处理

痞子三分冷 提交于 2020-03-09 14:03:17
有一小段时间没有持续升级ABP框架了,最近就因应客户的需要,把ABP框架进行全面的更新,由于我们应用的ABP框架,基础部分还是会使用官方的内容,因此升级的时候需要把官方基础ABP的DLL进行全面的更新,以及对应的引用DLL也同步更新才行。不过在升级过程中还是很多奇奇怪怪的问题,本篇随笔针对出现的情况进行一系列的总结,以便后面有一个对照参考吧。 1、最新案例源码和NugGet程序包更新 ABP官方的基础模块更新速度还是很快的,一段时间过去,就跳过了几个版本号,我是在旧版本的基础上进行手动的NugGet更新,但是基于VS的Nugget总是更新卡顿,不知不觉就没有反应了,严重影响开发的效率。因此先从官方下载的Demo案例中把相关部分源码进行更新。 官方的案例源码下载地址是: https://aspnetboilerplate.com/Templates 1)最新案例源码结构和部分内容调整 我们从其中下载对应的源码,然后根据项目结构中的对应源码文件,使用Beyond Compare对比文件进行文件逐一对比,原则上除了个人扩展的部分,都以官方的源码做法为准即可。 目前ABP官方最新的DLL版本是5.3.0,可以下载的Demo版本是5.2.0,它们应该差别不大。下载下来的Aspnet-core部分的源码结构如下所示。 而我们的ABP框架是在这个基础上进行一定的结构优化,以更加方便快速的开发

bp(net core)+easyui+efcore实现仓储管理系统——入库管理之三存储过程(三十九)

随声附和 提交于 2020-03-07 17:20:14
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四) abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九) abp(net core)+easyui+efcore实现仓储管理系统——多语言(十) abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十一)

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

℡╲_俬逩灬. 提交于 2020-03-06 18:57:44
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四) abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六) 上接上一篇文章( abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六) )。 二、创建Index视图 在首页中,我们一般会用列表来展示信息。为了使用ASP.NET MVC Core强视图带给我们的好处(模型绑定、输入校验等等),我们需要创建一个ViewModel来进行模型绑定。因为ABP提倡为每个不同的应用服务提供不同的Dto进行数据交互,展示对应Dto。那我们创建的ViewModel就需要包含这几个模型,方可在一个视图中完成多个模型的绑定。 1 ,创建视图模型 1)

ABP多表查询

给你一囗甜甜゛ 提交于 2020-02-29 20:57:47
1.创建实体 多表查询,在ABP或者EF中都很简单,这里我们创建一个Demo,一个学生实体、一个学校实体。学校里面可以有很多学生,学生有一个学校。 实体如下: 学校 1 public class School : Entity<long> 2 { 3 public string Name { get; set; } 5 6 public string Address { get; set; } 8 9 /// <summary> 10 /// 学校里面的学生们 11 /// </summary> 12 public List<Student> Students { get; set; } 13 } 学生 1 public class Student : Entity<long> 2 { 3 4 public string Name { get; set; } 5 6 /// <summary> 7 /// 学生所在的学校 8 /// </summary> 9 public School School { get; set; } 10 11 } 2.创建数据 现在我们来创建一下Student与School的数据。 School的数据如下: Student的数据如下: 可以看到,Student名字为alun1、alun2、alun3的对应School1、2、1。 3.查询实体 下面

将ABP的数据库从SQLSERVER迁移到MySql

与世无争的帅哥 提交于 2020-02-29 05:27:09
摘要:之前跟着网上的一些教程,学习了一点ABP的知识。最近想说把默认的SQLSERVER数据迁移到mysql吧 首先网上搜一波 安装MySql.Data.Entity 然后你需要安装 MySql.Data.Entity 和 MySql.Data 到你的 .EntityFramework 和 .Web 项目。然后你还需要修改 .Web 项目的web.config文件。 打开你的DbContext的配置类(Configuration.cs),并在该类的构造函数中使用下面的代码: SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator()); 配置连接字符串 为了能够使用MySQL数据库,你需要修改web.config文件中的连接字符串。如下所示: <add name="Default" connectionString="server=localhost;port=3306;database=sampledb;uid=root;password=***" providerName="MySql.Data.MySqlClient"/> 重新生成迁移文件 在下载启动模板的时候,如果你选择了包含 Module Zero 。这里会有一些迁移文件会包含在你的项目中

在ABP模板工程中使用MySQL

两盒软妹~` 提交于 2020-02-29 05:26:51
1 下载一个新的ABP模板项目 http://www.aspnetboilerplate.com/ 2 在Windows上安装MySql, 这里不多说,我用的是mysql-installer-5.5.21.0 3 打开模板项目,还原NuGet包先 打开项目后,在“程序包管理器控制平台”中选择*.EntityFramwork以及*.Web项目(*号为你的项目名称前缀) Install-Package MySql.Data.Entity // Install-Package MySql.Data.Entity - 安装MySql.Data.Entity组件的命令 安装Web项目时失败,错误提示信息 我用的VS2015,后来在一篇英文帖子里发现方法: 1)、在资源管理器中打开你的项目所在的文件夹。用记事本打开packages.config。查找并移除损坏包名称的行。 2)、打开解决方案所在的文件夹。打开文件夹“packages”。查找带有损坏包的文件夹并将其删除。 重新安装,提示成功 4 修改web.config文件 <entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6"> <defaultConnectionFactory type=

《Build the BookStore Application using the ABP vNext web application framework》笔记

社会主义新天地 提交于 2020-02-25 15:36:32
ABP core 的框架在过年期间,从1.0突然升级到2.0了,。 整个ABPCore 虽然版本变化 大,但使用流程基本不变吧, 我看官网上文档更新基本完毕了,官网文档有一个外国人视频,当时版本尚是0.18,总共有2小时吧。边看视频边记录个学习笔记吧! 这个 视频课程 被好心人转移到https://www.bilibili.comb , 视频和官方的 使用 ASP.NET Core MVC 入门教程的内容完全一致,而且官方教程似乎略有更新。 但看视频有个好处,就是不用自己敲代码调试了,有人演示给你看。 课程内容主要步骤记录: 【】所包含的是对应项目名 1、生成项目 abp new ,并编译全部 2、修改连接字符串: 【DbMigrator】修改连接字符串,并执行这个项目,就实现数据库的创建和写入种子数据. 这时可以启用【web】登录网站并修改密码 3、添加实体类,业务实体 【Domain】中添加Book, 继承自审计聚合根 auditedAggregateRoot类。 这个类本身实现了一系统接口 4、添加项目的全局的共有类 【domain.shared】中添加BookType的枚举类型。 它是整个解决方案共用的类型 5、在DBContext中注册实体类 【EFCore】中, DbContext中 添加DbSet<Book> books;

abp(net core)+easyui+efcore实现仓储管理系统——入库管理之一(三十七)

会有一股神秘感。 提交于 2020-02-21 18:40:14
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四) abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九) abp(net core)+easyui+efcore实现仓储管理系统——多语言(十) abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十一)