- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近开始了一个使用现有数据库(Oracle)和 MVC 4 的项目。已经进行了很多编码..但是代码中没有“策略”..只有 DB -> ORM -> Controller。因此,我正在尝试为开发添加一些闪光,并练习一些 DDD 开发技术。
我已经定义了几个聚合根,每个都有一个存储库,用于处理保存和删除(及其子)等。这些聚合根中的一个引用了另一个聚合根,它通过它处理它的“子对象”它。
例子:
A Client has one or more purchase orders which has Line Items,
if a client wants to add a line item to the purchase order,
it has to go through the purchase order.
Get the Client Aggregate where the ClientID is 15
get the Client Aggregate, where the ClientID is 15
and where active purchase orders > 0 ...or something..
ClientAR = ClientRepository.GetClientByIDAndHasActivePurchaseOrders(15);
resultsImLookingFor = ClientAR.PurchaseOrders(); //or something
ClientAR = ClientFactory.CreateClient(15) // returns a ClientAR
resultsImLookingFor = ClientAR.GetPurchaseOrdersByStatus(statusID);
ClientAR = ClientRepository.GetClientByID(15, PurchaseOrderSpec)
最佳答案
So i'm trying to add some flare to the development as well as practice some DDD development techniques.
one of these Aggregate Roots has reference to another Aggregate Root
maybe that should be a part of the Purchase Order AR?
The repositories are currently doing their job of persisting the data from the database and "fills up" the AR's with data. when the AR "saves" it, the repository, saves anything that needs saving. The Purchase Order Repository is used by the Client AR so the client can load up any Purchase orders it may contain.. Hopefully I'm on the right track.
The controller currently is working through a Client Factory
public ActionResult CreatePurchaseOrder(CreatePurchaseOrderViewModel viewModel)
{
var poData = viewModel.CreatePurchaseOrderData();
this.purchaseOrderAppService.CreatePurchaseOrder(viewModel.ClientId, poData);
return RedirectToAction("Index");
}
...
public class PurchaseOrderAppService
{
readonly IClientRepository clientDb;
readonly IPurchaseOrderRepository poDb;
public void CreatePurchaseOrder(int clientId, PurchaseOrderData poData)
{
var client = this.clientDb.Get(clientId);
var purchaseOrder = PurchaseOrderFactor.Create(client, poData);
this.poDb.Add(purchaseOrder);
this.poDt.Commit(); // committing of Unit of Work should be moved up to infrastructure level
}
}
关于repository - DDD 和 MVC : The Contoller gets the AggregateRoot from Factory not Repository? 是吧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14719580/
有什么方法可以在 Microsoft.Reporting.WebForms.ReportViewer 控件中添加我的自定义控件。 我正在开发 ASP.NET Web 应用程序,我想在 reportvi
我最近开始了一个使用现有数据库(Oracle)和 MVC 4 的项目。已经进行了很多编码..但是代码中没有“策略”..只有 DB -> ORM -> Controller。因此,我正在尝试为开发添加一
我有一个spring controller,我想下载特定路径的文件,比如D://或K://,但现在默认会下载到downloads文件夹。 我正在从 /WEB-INF/文件夹(服务器端位于 Tomcat
我所有的 Rails 3.2.2 ActiveRecord 方法都被执行了两次。我注意到每次执行的处理方式都不同,请参阅我从下面的控制台中获取的示例... Started GET "/api/bill
我正在尝试处理由 RequireJS 提供支持的 Angular 应用程序,但我无法拆分 Controller 文件,因为我不断收到 Argument '(contoller)' is not a f
我们正在使用 EKS 和 Nginx-ingress(NLB)。我正在尝试在 NLB 的 AWS-load-balancer-SSL-cert 注释中配置多个 AWS ACM 证书。但没有运气。如果可
我是一名优秀的程序员,十分优秀!