网站个人备案做论坛,网站后台 生成所有页面,宁德市区哪里好玩,微山县建设局官方网站ABP Framework 研习社经验总结#xff08;6.28-7.2#xff09;研习社初衷在翻译 《实现领域驱动设计》—— 基于 ABP Framework 实现领域驱动设计实用指南 时#xff0c;因为DDD理论和实践的宽泛性#xff0c;不同公司、不同行业、不同项目实现程度不同#xff0c;觉得有必… ABP Framework 研习社经验总结6.28-7.2研习社初衷在翻译 《实现领域驱动设计》—— 基于 ABP Framework 实现领域驱动设计实用指南 时因为DDD理论和实践的宽泛性不同公司、不同行业、不同项目实现程度不同觉得有必要为 ABP Framework 开发者提供一个良好的沟通、交流平台。建群时间2021.6.23 专注 ABP Framework 技术讨论、经验交流、资料共享ABP Framework 研习社QQ群726299208 欢迎更多的朋友加入共同学习、共同成长十天回顾首位成员忘忧草 让人难忘截止到今日7.210天时间群里共入住182位小伙伴。群里小伙伴开发年限长平时不闲聊遇到感兴趣的话题也会引发刷屏式的讨论。入住大神张善友dotnet跨平台公众号作者感谢文章推荐 角落的白板52ABP框架作者。ABP元老级玩家娇龙16年开始使用 野鬼15年开始用 黑羽在0.n版本时开始用。或许还潜伏着更多低调的高手未被发现研习社经验总结6.28-7.2总结和提取 ABP Framework 研习社 大家讨论活跃的话题、关注度比较高的内容供各位学习、交流问题1关于ABP版本by失意忆的誓言 15:21:50 现在是研究abp还是abp vnext发现大家在沟通过程中对于ABP新旧版本存在不统一所以觉得有必要梳理下ABP的版本。简单回顾ABP的发展历史ASP .NET 时代ASP .NET Boilerplate Project简称ABP是第一代开源框架。ASP .NET Zero是基于 ASP .NET Boilerplate 框架的通用模板解决方案。付费商业版。ASP .NET Core 时代.NET Core 时代来临ABP开发者考虑下一代版本的开发开发代号Abp vNext为了和第一代开源框架区分这样命名很好理解因为 .Net Core 之前也称为 .Net vnext 意为下一代版本。随着版本的逐步完善个人感觉 ABP开发者的平台化战略越来越清晰首先有一个统一平台 ABP.IO 包括文档、框架、社区、支持及商业服务这不仅仅是一个官方网站我们可以看到官方更大的愿景围绕 ABP Framework 打造开发者生态比如插件商店也在未来的开发计划当中。ABP.IO 平台之下最核心是开源框架 ABP Framework 和 商业版 ABP Commercial 。这与 ASP.NET 时代下的 ASP.NET Boilerplate Project 和 ASP.NET Zero 相对应。最新版ABP准确地应该称之为 ABP Framwork 。ABP历史小结•ASP.NET 时代•ASP.NET Boilerplate Project 开源框架•ASP.NET Zero 商业版•ASP.NET Core 时代•Abp vNext 前身•ABP.IO 平台•ABP Framework 开源框架•ABP Commercial 商业版问题2关于DDD和三层架构区别问题三层架构和DDD究竟有什么不一样最大的区别在于设计思想的不同DDD以领域为中心三层以数据库为中心。一个是领域驱动一个是数据驱动。DDD使用领域对象封装和实现需求的复杂性领域可以复用三层架构基于数据库建模常规操作为CRUD。问题3ObjectMapper是不是和领域服务有些冲突问题 by黑羽因为有了自动映射会导致可能不走构造函数进而导致不走领域模型的构造函数中的业务逻辑黑羽我现在就是觉得 mapper违背一些规则。一开始觉得还行后来觉得很不好用。自动映射常用在领域服务中接收参数将 输入数据传输对象 转换为 领域对象返回数据获取 领域对象 转换为 输出数据传输对象 。接收参数转换为领域对象如果创建领域对象时需要属性有效性验证不推荐使用 自动映射尽管可以通过设置 自动映射规则不建议将 业务规则 隐藏在自动映射配置中。因为数据传输对象是一个POCO对象所以在将 实体 自动映射为 输出数据传输对象时可以放心自动映射。对象自动映射不是实施领域驱动必须技术当做是一个工具酌情使用即可更多最佳实践可以参看《基于ABP Framework 实现领域驱动设计》#构件/数据传输对象/对象映射 章节问题4求 IssueTracking 项目源码Hager²º20 08:22:55 iEricLee 群主早上好看了你的文章质量很高呀。提到的项目IssueTracking有没有可能给分享一份具体的学习学习。失意忆的誓言 08:28:15 那有没有最佳实现方式的demo可以分享一下呢麻雀虽小五脏俱全的那种Hager²º20 如果能有一个示例项目结合文章细品就更好了 DDD这玩意儿就是一种设计思想可具体落地时有时候就感觉无从下手。这里统一做一个回复IssueTracking 是一个虚拟项目主要用来模拟业务场景和需求的演变目前没有与文章中相对应的单独项目。如果大家想研究DDD落地后的项目示例其实在 ABP Framework 源码中提供很多应用模块这些应用模块都是遵循DDD最佳实践和原则挑自己感兴趣的模块研究即可。推荐最新发布的 CMS-Kit 模块传送门Github 源码[1] 。问题5关于应用层分层问题问题by听她说。它后面说可以多个application层来对应多个不同的业务场景 你能做个案例出来不????????在解决方案中可以添加 Admin.Application Public.Application Common.Application 应用层共用领域层。应用层分别对应管理后台业务逻辑、前台业务逻辑、公共业务逻辑的处理对应用层进行拆分可以让项目结构更加清晰、可控。由此也带来开发商的便利比如因为对后台管理单独分层权限控制更加方便。另外还可以按照不同客户端来分层比如Mobile.Application WeChat.Application Tablet.Application 来拆分应用层处理不用客户端的业务需求所以应用层在分层上可以灵活的只需要遵循DDD基本原则都是DDD最佳实践问题6关于自定义身份验证by 听她说。17:45:10 大家好使用 abp vnext ids4我想给用户添加一个pin密码然后使用pin密码登录获取accesstoken这样能实现吗解决方式by Dr.Yao 18:57:43 阔以的。看 IExtensionGrantValidator 。问题7业务编码是在领域模型中生成还是在应用服务by 野鬼生成业务编码这个。不属于领域服务。在我的概念里面 它是属于 业务服务ApplicatonService里面我创建实体。你必须传一个 单号给我。这个单号是由应用产生的。我要一个订单号。这订单号怎么生成。不是我领域的事。是你 Application负责的事。但我领域层会校验这个 单号的唯一性、校验单号的规则 。是否符合我的逻辑。单号。早就生成好了。而且买现成的问题8关于 ABP Framework的学习建议问题 by草叶睡蜢 16:52:59 对于官方文档到底要怎么看先看啥后看啥有没有一个导航图或者思维导图。我把官方文档下载下来都是按字母排序的根本分不清从哪里开始着手。有经验的给分享一下学习路径。学习路径建议1.先看快速入门的教程 Todo 、BookStore 把项目基础功能运行起来理解基本流程和架构。2.然后再逐个框架功能击破。模块众多可以挑自己能用到或感兴趣的分析最终会发现所有模块其实都有统一的实现思路。3.最后拿下架构层面内容领域驱动、微服务、多租户。电子书下载个人认为 ABP Framework 技术栈新而全是.NET开发者的“屠龙刀”、“宝藏库”。从代码、项目、解决方案、技术架构都有优雅的设计和实现对于初中级.NET程序员想要进一步提升自己的编码功力、设计思想、架构经验学习和应用该框架绝对是最佳途径之一。回顾系列文章• 基于ABP落地领域驱动设计-01.全景图• 基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则• 基于ABP落地领域驱动设计-03.仓储和规约最佳实践和原则• 基于ABP落地领域驱动设计-04.领域服务和应用服务的最佳实践和原则• 基于ABP落地领域驱动设计-05.实体创建和更新最佳实践• 基于ABP落地领域驱动设计-06.正确区分领域逻辑和应用逻辑为了大家方便阅读整理成了电子书《基于ABP Framework 实现领域驱动设计》中文完整版_v1.0_iEricLee译 请入群ABP Framework 研习社QQ群726299208在共享文件中下载。References[1] 传送门Github 源码: https://github.com/abpframework/abp/tree/dev/modules/cms-kit