从架构角度来讲,ApplicationService究竟应该如何定位,一种说法是直接对应用例UseCase, 也就是直接对应UI, 这个UI是广义的,不仅仅是浏览器的页面,也包括API调用。还是从我曾经踩过的一个坑说起吧: 这是一个从Excel文件中导入数据的场景,每个文件的数据 ...
企业级 例如ERP 应用, 一遍一遍的在重复:认证 验证 异常处理 日志 国际化和本地化 数据库连接管理 配置管理 审计记录等,同时.NET有很多最佳实践:分层 模块化 DDD领域驱动 DI依赖倒置等,采用ABP就是基于这些惯例,来避免重复劳动,并且提供高质量 高效率的.NET开发。对于没有专职架构师的小型公司来说,选择ABP,可能是比较好的方案。万事都有利有弊,使用框架带来好处的同时,也有诸如 ...
2018-06-11 11:20 2 2764 推荐指数:
从架构角度来讲,ApplicationService究竟应该如何定位,一种说法是直接对应用例UseCase, 也就是直接对应UI, 这个UI是广义的,不仅仅是浏览器的页面,也包括API调用。还是从我曾经踩过的一个坑说起吧: 这是一个从Excel文件中导入数据的场景,每个文件的数据 ...
数据库连接和事务管理,是数据库应用中的最重要概念之一。做过的人,都会头疼:何时Open一个连接?何时Start一个事务?何时Dispose这个连接?... ABP框架试图用一个叫做UnitOfWork的模型来解决这些。实际开发中,引入UnitOfWork,同时也会带来一些坑 ...
,灵活动态支持各种DBMS,如MS SQL、MySql、Orcacle等。ABP的目标是DDD, 在持久 ...
ABP中有很多惯例,如果使用得当,可以事半功倍,如果使用不当,也会有很大的麻烦,是否适当其实还是要看Need需求 ASP.NET Boilerplate (ABP) is an open source and well documented application framework ...
配置User Secrets ABP踩坑记录-目录 起因 因为以往习惯在User Secrets中保存连接字符串之类信息,但当我把连接字符串移到secrets.json中后,却发现在迁移过程中会报如下的错误: 简单说,也就是迁移时无法获取到连接字符串信息。 解决方案 ...
添加实体 ABP踩坑记录-目录 这里我以问答模块为例,记录一下我在创建实体类过程中碰到的一些坑。 审计属性 具体什么是审计属性我这里就不再介绍了,大家可以参考官方文档。 这里我是通过继承定义好的基类来获得相应的审计属性,大家如果有需求的话,也可以自己通过接口定义 ...
1. 原始转换 提起对象转换,每个程序员都不陌生,比如项目中经常涉及到的DO、DTO、VO之间的转换,举个例子,假设现在有个OrderDTO,定义如下所示: 有个OrderVO,定义如下所示: 如果不使用任何转换工具,代码是下面这样的: 运行结果: 2. 使用 ...
在使用CrudAppService的UpdateAsync方法时,报错如下: The instance of entity type 'OrderItem' cannot be tracked because another instance with the same key value ...