domain-driven-design

    1热度

    1回答

    我正在使用2个DB工作的应用程序。我想使用EF,Repository和UnitOfWork模式。我正在学习干净的代码原则和设计模式,所以想要得到一些反馈,因为虽然我(认为)理解了主要想法,但我在实现中遇到了一些困难。我收集了很多答案和文章,但仍然无法完全将这些想法带入我的具体问题。 我有2个DB。 我们的ERP系统的遗留数据库。只读访问(又名ERP-DB)。从这个数据库我必须采取我需要的所有信息。

    0热度

    1回答

    在实现具有事件源的应用程序时,工作中的持久性引擎是事件存储。也就是说,按事件或事件的过去时,事件的追加记录。通过简单地通过应用程序重播事件,可以再现任何时间点的状态。 我担心的 - 没有这个追加只事件存储不可避免地导致追加只代码库?如果删除甚至更改代码可能会使应用程序无法重播事件序列,那么如何维护代码库?代码的源代码行数是否会减少? 如果必须修改业务规则,或者更糟糕的是,如果应用程序初期早期的恶意

    -1热度

    1回答

    我在汽车行业的三个实体模型如下: public class Manufacturer { public int Id { get; set; } public string Name { get; set; } public ICollection<Model> Models { get; set; } public ACManufacturer()

    2热度

    2回答

    我在这篇文章(https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/microservice-ddd-cqrs-patterns/ddd-oriented-microservice)中描述的面向DDD的微服务体系结构中思考。但是我对数据访问和实体有疑问。 对于我来说,将域实体和数据访问放入一个通用项目

    0热度

    1回答

    我目前正在尝试在DDD中编写应用程序,以允许创建,更新和删除实体。对实体的更改必须得到另一个人的批准。应用程序还必须跟踪对实体进行了哪些更改。简化的域模型看起来像这样: 该应用程序有含ChangeSet,Enity和EntityHistory一个界上下文其中ChangeSet是聚合根。因为Entity在没有ChangeSet的情况下不应该被改变,并且ChangeSet应该与编辑的实体一起被保存在一

    0热度

    2回答

    自定义对象 请参阅下面的域对象: public Class Person { public virtual Guid Id { get; protected set; } public virtual string FirstName { get; protected set; } public virtual string Surname { get; prote

    0热度

    2回答

    我正在用户可以打开票证的任务管理应用程序中工作。每张票有一个简短描述字段,可以从列表中选择。后台团队最终可以添加,删除或更新简短描述列表。 中的更改简短说明列表必须不是影响已创建的门票。 我认为简短描述是一个从票务角度来看的VO,也是一个来自CRUD角度的实体。 我应该使用两个分隔的存储库为两个分隔的对象建模吗?一个用于VO(只读)和其他用于CRUD?代码复制呢?

    0热度

    1回答

    我们有一个ASP.NET MVC应用程序,需要从RabittMQ队列中获取数据,但连接和使用者的实现位于域层中,因为接收的数据是域数据。 因此,我们需要从表示层(通过应用程序服务)启动此连接/消费者,并且该进程必须连续运行以缓存信息。 这种方法在DDD架构内是否正确?我们如何通过应用服务从MVC层开始这个消费者?

    0热度

    1回答

    对于我正在开发的一个项目,我们正在实践域驱动设计并将ninject用作我们的IOC容器。我试图实施类似于Tony Truong here所述方法的域事件。我正在尝试使用ninject,而不必在组合根之外拥有静态服务或引用内核。我试图做这样的事情 /// <summary> /// Service to dispatch domain events to handlers. /// </summ

    0热度

    1回答

    请参阅下面的代码: public class ValueType<T> where T : class,new() { public virtual bool Equals(T other) { if (other == null) return false; Type t = GetType(); Typ