DDD

DDD事件总线的实现

基本思路: (1)       在事件总线内部维护着一个事件与事件处理程序相映射的字典。 (2)       利用反射,事件总线会将实现了IEventHandler的处理程序与相应事件关联到一起,相当于实现了事件处理程序对事件的订阅。 (3)       当发布事件时,事件总线会从字典中找出相应的事件处理程序,然后利用反射去调用事件处理程序中的方法。   核心类(事件总线类) 1 using »

DDD开发模式ABP框架权限设置

基于ABP框架的权限设置 需求:在界面展示中,“角色管理”,"用户管理",“角色属性”,"勾选权限","添加用户","添加角色属性",“语言显示”,“维护例子”等,根据当前用户登录账号判断是否分配了相应权限而展示。 如图: 如下图:在现有的“角色属性”,"权限",“用户” 的权限下 一次新增 "用户登录","增删改用户","更改权限"三个权 »

DDD落地方案

学习DDD有一段时间了,总结了一幅图,包含了使用DDD进行战略设计、战术设计、以及最终代码落地的具体步骤,以及DDD的相关名词解释(领域,子域,通用语言,聚合,限界上下文,实体,值对象,聚合根等) 由于DDD的概念比较抽象,建议大家先看左侧的步骤,再看右侧的概念解释,也建议大家在学习DDD时,不要上来就死磕概念,可以先找些DDD落地指导方面的文章,搞明白大致流程后,再来深入概念,会轻松一点 接下来 »

DDD项目总结

一、思维导图 DDD(Domain-Driven Design 领域驱动设计) 二、技术设计方案    三、基础要点 1.实体(entity):         根据eric evans的定义,”一个由它的标识定义的对象叫做实体”。通常实体具备唯一id,能够被持久化,具有业务逻辑,对应现实世界业务对象。          实体一般和主要的业务/领域对象有一个直接的关系。一个实体的基本概念是一个 »

DDD该如何学?

2006年,国内互联网才刚刚萌芽,大家甚至还不习惯网购,大多数在校生都在宿舍里刷魔兽世界副本。但企业软件开发却得到了蓬勃发展,各大公司和事业单位都纷纷进行信息化转型。 然而大家很快发现,企业应用业务逻辑的复杂度要远远高于技术本身,且企业IT人员很难描述清楚他们真正的业务,广大程序员也普遍缺乏挖掘真正需求的能力。整个开发过程更多的是瀑布式,开发人员一次性收集需求,可能半年后才会和业务人员再次沟通。大 »

DDD实战笔记(2) DDD领域驱动代码结构设计

1. DDD 分层架构与微服务代码模型 微服务代码模型就是依据DDD 分层架构模型设计出来的。那为什么是 DDD 分层架构模型呢? 用户接口层:面向前端提供服务适配,面向资源层提供资源适配。这一层聚集了接口适 配相关的功能。 应用层职责:实现服务组合和编排,适应业务流程快速变化的需求。这一层聚集了应用 服务和事件相关的功能。 领域层:实现领域的核心业务逻辑。这一层聚集了领域模型的聚合、聚合根、实体 »

基于DDD的.NET开发框架 - ABP模块设计

返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板。 ABP的官方网站:http://www.aspnetboilerplate.com ABP官方文档:http://www.aspne »

DDD领域驱动之干货 (一)

说道DDD不得不说传统的架构与DDD的架构区别。 传统的架构不外乎就是三层,而在这三层里面又不断的细分,始终没有达到想要的效果,那么为什么当时还是采用三层。 当然在DDD没有提出的时候三层是大多数人的选择。 那么当领域驱动被提出来的时候它又能带给我们什么样的好处??  近期博主看了一下dax.net大佬有关DDD的文章,这里提出自己的一些心得,本着共同学习的精神一起进步。   我也来说说领 »

DDD-CQRS能解什么问题

背景 在DDD代码实践过程出现一些看起来很别扭的实现 为了查询,领域聚合根无限扩大 如商品详情页聚合根 public class BrandAggr { /** * 唯一标识 */ private Long id; /** * 商品简介 */ private ItemInfoVal brandInfoVa »

领域驱动设计学习之路—DDD的原则与实践

本文是我学习Scott Millett & Nick Tune编著的《领域驱动设计模式、原理与实践》一书的学习笔记,一共会分为4个部分如下,此文为第1部分: 领域驱动设计的原则与实践战略模式:在有界上下文之间通信战术模式:创建有效的领域模型有效应用程序的设计模式 一、什么是领域驱动设计   脑图浏览:https://www.processon.com/view/5cb49b1 »

【DDD/CQRS/微服务架构案例】在Ubuntu 14.04.4 LTS中运行WeText项目的服务端

在《WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例》文章中,我介绍了自己用Visual Studio 2015(C# 6.0 with .NET Framework 4.6.1)开发的DDD/CQRS/微服务架构的案例项目:WeText。文章发出后反响很好,也很感谢大家的关注。在本文中我将介绍如何在Ubuntu 14.04.4 LTS中运行WeText项目的服务端。 »

一文读懂DDD

什么是DDD? ddd不是一种架构风格,而是一种方法论,什么是方法论,每个人按照自己的想法来设计就是一套方法论;ddd是一种业务比较认可,对于微服务拆分的一种方法论。 为什么在微服务的大环境下DDD才流行? 微服务区别于系统,服务是一组想对较小且独立功能单元,是用户感知最小功能集。DDD计的模型中具有边界的最小原子是聚合,聚合和聚合之间由于只通过聚合根进行关联,所以当需要把一个聚合根从一个限界上下 »

win2003 update 错误号: 0x8DDD0018 故障解决

公司域控服务器突然之间自动更新失败,错误号: 0x8DDD0018  显示如下图 检查各项服务都是正常启动,但是还是无法更新。尝试下面过程 这个现象可能是由于损坏的Windows Update组件造成的,鉴于现在的情况,请您尝试以下的步骤。 步骤1:删除 Windows 更新的临时文件夹 1. 单击“开始”,然后单击“运行”。 2. 在“打开”框中,键入 cmd,然后单击“确定”。 3. »

[半翻] 设计面向DDD的微服务

这篇文章行文结构对照微软博客, 结合本人意译和多年实践的回顾性思考形成此次读书笔记。 Domian-driven Design 领域-驱动-设计(DDD)提倡基于(用例相关的现实业务)进行建模。 1. DDD的视角 DDD将现实问题视为领域; DDD将独立的问题描述为有界限的上下文(一个有界上下文对应一个微服务),并强调通用语言讨论这些问题 2. DDD提出的概念 许多技术概念和模 »

领域驱动设计DDD开发架构

以下引用其他人博文,用来学习: DDD分层架构也可以叫四层架构,主要由用户接口层、应用层、领域层、基础层; 用户接口层{interfaces}:负责向用户显示信息和解释用户指令,比如用户、程序、自动化脚本、批处理脚本等; 应用层{application}:主要用于协调多个聚合的服务和领域对象完成服务编排和组合,可以调本地也可以调远程的服务、包括权限验证、事务控制、防重幂等,不要把核心的业务逻辑放 »

领域驱动设计(DDD)实现之路

领域驱动设计(DDD)实现之路2004年,当Eric Evans的那本《领域驱动设计——软件核心复杂性应对之道》(后文简称《领域驱动设计》)出版时,我还在念高中,接触到领域驱动设计(DDD)已经是8年 »

Leo_wl

DDD领域驱动设计-概述-Ⅰ

如果我看得更远,那是因为我站在巨人的肩膀上。(If I have seen further it is by standing on ye shoulder of Giants.) Newtown,I »

wlandwl