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