『贴代码』
PasteSpider
PasteApeart
精选作品
优选问答
成长笔记
【本期话题】更多
                                    我们在开发中经常遇到对方的接口请求有频率限制,比如当前接口每秒的请求不能大于100,不能大于1000,对于这样的,我们作为请求方,如何做限定?
                    
PasteApeart和PasteForm的区别,看这一篇就够了
二郎神 2026-08-22 53 1 4
可以说PasteApeart是PasteForm的升级版,或者说完善版,PasteApeart不仅涵盖了PasteForm的 All in Dto 更是引入了业务的 All in Handler ,真正带你迈入敏捷开发的殿堂!

--------------------------------------------------------------------------------------------------------------

PasteForm的升级版PasteApeart,享受极致简洁的框架的魅力,点击查看文档

--------------------------------------------------------------------------------------------------------------

PasteApeart和PasteForm的区别,看这一篇就够了

如果说PasteForm1.0是All in Dto
那么PasteApeart就是All in Dto and Handler

所以,PasteApeart是PasteForm1.0的升级版!
既然有PasteForm1.0那么就有PasteForm2.0
其实PasteForm2.0和PasteApeart是保持功能一致的,区别在于PasteForm2.0基于ABP,而PasteApeart则没有基于其他框架纯原生!

项目模块

如果你使用我提供的项目模板进行项目创建,比如命名为Project1.则会生成以下子项目

Project1.Domain
Project1.EntityFrameworkCore
Project1.Application.Contracts
Project1.Handler
Project1.Applciation
Project1.HttpApi.Host
模块 说明
.Domain 存放Entity和Enum等,表示数据库的表
.Application.Contracts Dto存放,EventModel存放,不附带逻辑的Model
.EntityframeworkCore 数据库EF模块,像多租户,默认填充,审计日志存储等都在这
.Handler 业务逻辑存放处,IEventHandler实现,消息队列,等
.Application 主要是CRUD的接口存放
.HttpApi.Host 主要是非CRUD的接口,还可能涉及服务端渲染的UI等

PasteForm

严格来说,PasteForm有2个版本,第一个版本是PasteForm.Helper(PasteFormHelper)等,后面由于PasteApeart的引入,干脆再升级了一个PasteForm

PasteForm.Helper

最早之前是PasteFormHelper,后面改成了PasteForm.Helper
这个dll的主要作用就是帮助你吧Dto的信息转化成元数据(VoloModelInfo)的
那时候的PasteForm也就只有这个东西,

PasteForm.2

这个版本是在PasteApeart出来后,和PasteApeart相互对应的,区别主要在于PasteForm基于ABP,而PasteApeart是非基于ABP的!

PasteForm.2和PasteApeart的项目,在使用Dto转元数据都使用的是PasteApeart.Helper

PasteForm.Helper和PasteApeart.Helper的区别就是namespace不一样,其他一样,所以你后续都可以改成PasteApeart.Helper,然后把命名空间替换一下即可!

注意后续PasteForm.Helper将不再维护,后续全部引用PasteApeart.Helper即可

PasteApeart

这个的推出,主要是之前的我的项目基于ABP的,启动太慢了,所以把不需要的都丢弃后,按照ABP的规则自己写一个项目模板具体的你可以查看PasteApeart项目中的example案例

PasteForm和PasteApeart对比

模块 PasteForm.1 PasteForm.2 PasteApeart 说明
Helper PasteFormHelper PasteApeart.Helper PasteApeart.Helper 实现Dto转元数据给管理端
Domain PasteForm.Domain PasteApeart.Domain
Dto PasteForm.Application.Contracts PasteApeart.Application.Contracts
EF PasteApeart.Entityframework 引入过滤,多租户等
Handler PasteForm.Handler PasteApeart.Handler Redis,RabbitMQ,IEventHandler等
Application PasteForm.Application PasteApeart.Application 默认CRUD接口,IService转API

PasteApeart地址

https://gitee.com/pastecode/paste-apeart

PasteForm地址

https://gitee.com/pastecode/paste-form

PasteForm.xxx继承于ABP,也就是Volo.Abp.xxx

模块 说明
Helper 帮助项目把Dto转化成元数据
EF 主要引入比如审计日志,多租户,默认填充等
Dto 主要引入一些默认的Model,比如状态变更InputUpdateStateModel,查询默认InputQueryBase,异常PasteCodeException等
Handler 实现默认的redis,rabbitmq,channel,IEventHandler
Application 主要引入DefaultAppService,也就是你的表不需要写默认接口,是这个框架的核心!!!

DefaultAppService

为所有的Entity提供的一个对外的接口,这是一个很重要的CRUD实现方式!默认管理端的页面就是通过以下接口通讯的!

Method Api 说明 入参
GET /api/app/{entityName}/readAddModel 获取新增元数据
GET /api/app/{entityName}/{id}/readUpdateModel 获取更新元数据
GET /api/app/{entityName}/{id}/readDetailModel 获取详细元数据
GET /api/app/{entityName}/readListModel 获取列表元数据
GET /api/app/{entityName}/page 获取列表 InputQueryEntityName
POST /api/app/{entityName}/item 创建 EntityNameAddDto
POST /api/app/{entityName}/updateItem 更新 EntityNameUpdateDto
POST /api/app/{entityName}/updateState 状态更新 InputQueryUpdateState
POST /api/app/{entityName}/{id}/remove 删除

什么时候不用DefaultAppService

假设你得UserInfo的获取列表很复杂,你要自己写
那么你就应该在.Application的项目下,对应模块文件夹下的UserInfoAppService.cs
中写入以下函数

public async Task<PagedResultDto<UserInfoListDto>> Page([FromQuery] InputQueryUserInfo input)
{
    //你自己实现业务查询逻辑
}

这样路由/api/app/userInfo/page就会覆盖DefaultAppService默认提供的/api/app/{entityName}/page,因为DefaultAppService的Order(排序)更大,小的覆盖大的!

评论列表
二郎神
1 53 4
快捷注册
用户问答更多
PasteApeart和PasteForm如何选择?
  • 不用选,后面都是PasteApeart,他们其实是一个东西

PasteApeart中有多层级继承的,表单中的字段排列顺序有什么规则?
  • 看版本,PasteApeart.Helper 26.9.2之后,就按照基类前面的顺序了,也符合阅读顺序,当然你可以使用PasteSort再次改变他!

PasteForm,神奇了啊!都说低代码,低代码,那个是对于非开发者来说的,感觉PasteForm就是开发者的低代码啊!只要配置好Model,就有对应的CRUD操作,还带一些逻辑,和生成代码是两码事了!!!问题来了,有什么局限性,或者适用哪些场景?
  • 1.语言吧,这本身只是一个开发思想,其实其他语言也可以用,不过最优雅实现的还是.NET

    2.特别适用于需要表单,表格的系统,所以哪些EMS,CRM,ERP等都合适

    3.扩展,比如这个思想,你也可以应用于C/S,理论上也是可以的

    4.这个主要针对的是管理端,附带UI的CRUD,也就是说对于业务代码,是没影响的!

    5.可能入门会麻烦点,毕竟有接近100个PasteXXXX特性要了解,幸运的是都是Paste开头,官方的也支持,比如MaxLength,Required等!

最新动态
  • 142.****.82 正在查看 文章列表页 !
  • 185.****.13 正在查看 关于PasteSpiderV2版本升级V5版本后,部署的服务会走一遍扩容的说明 !
  • 40.****.3 正在查看 12306班次筛选座位逻辑 !
  • 114.****.237 正在查看 Document:spider !
  • 52.****.208 正在查看 使用Obfuscar混淆(加密)你的程序源码并一键发布! !
  • 218.****.141 正在查看 PasteApeart框架介绍,PasteApeart为啥说是敏佳开发天花板,看这篇就够了 !
  • 216.****.137 正在查看 使用PasteSpider实现CI/CD持续部署,类似Jenkins的功能,让你的2G服务器也可以飞起 !
  • 36.****.7 正在查看 主页pastespider !
  • 122.****.51 正在查看 有哪些高大上的词语,你有没有被虎得一愣一愣得,一起来看看AI的吐槽! !
  • 36.****.208 正在查看 PasteApeart框架介绍,PasteApeart为啥说是敏佳开发天花板,看这篇就够了 !
  • 40.****.40 正在查看 使用Obfuscar混淆(加密)你的程序源码并一键发布! !
欢迎加入QQ讨论群 296245685 [PasteSpider]介绍 [PasteForm]介绍 @2022-2023 PasteCode.cn 版权所有 ICP证 闽ICP备2021013869号-2