Tag: cqrs

架构:简单的CQS

我正在考虑将CQS应用于我的ASP.NET MVC网站,但这非常简单。 我不是指CQRS,因为我想为查询和命令部分使用相同的数据源,因此我不需要事件源和其他更复杂的模式。 所以,我想到的是: 使用相同的数据库进行查询和命令部分 对于查询部分,使用entity framework和WCF数据服务公开数据库视图,以便将特定视图返回给客户端,查询数据变得非常容易 对于命令部分,使用entity framework和单向WCF服务公开数据库表,并使用DDD原则。 我想要实现的主要是: 由单向服务操作执行并由富域模型处理的简单命令,客户端只需传递执行命令所需的数据 灵活查询简单视图,专为客户端的特定UI设计 这有意义吗?

活动采购资源

寻找有关活动采购主题的有用讨论组,文章,成功案例,参考应用程序和工具(.Net)的一些建议。 我已经熟悉了: 福勒的文章: http : //martinfowler.com/eaaDev/EventSourcing.html Greg Young的文章(评论中已下载的文档): http : //codebetter.com/gregyoung/2010/02/20/why-use-event-sourcing/ Greg Young关于DDDD的优秀(草案)文章: http : //abdullin.com/storage/uploads/2010/04/2010-04-16_DDDD_Drafts_by_Greg_Young.pdf 还有什么我应该读书看的吗?

如何使用DDD / CQRS编写function

我有一个银行帐户域名,如下所示。 可以有SavingsAccount,LoanAccount,FixedAccount等。 一个用户可以拥有多个帐户。 我需要添加一个新function – 为用户获取所有帐户。 编写函数应该在哪里以及如何编写? 如果解决方案遵循SOLID原则(开放原则,……)和DDD,那将是很好的。 任何可以使代码更好的重构都是受欢迎的。 注意:AccountManipulator将由网站客户端通过Web服务使用。 namespace BankAccountBL { public class AccountManipulator { //Whether it should beprivate or public? private IAccount acc; public AccountManipulator(int accountNumber) { acc = AccountFactory.GetAccount(accountNumber); } public void FreezeAccount() { acc.Freeze(); } } public interface IAccount { void Freeze(); } public class AccountFactory { public static IAccount […]

一个事务中的多个聚合/存储库

我有一个支付系统,如下所示。 付款可以通过多个礼券进行。 礼品券与购买一起发行。 客户可以使用此礼品券以备将来购买。 当通过礼品券进行付款时,GiftCoupon表中的UsedForPaymentID列需要使用该PaymentID(对于礼品券ID)进行更新。 GiftCouponID已在数据库中提供。 当客户生产礼品券时,其上印有GiftCouponID。 运营商需要将此CouponID输入系统以进行付款。 对于MakePayment()操作,它需要两个存储库。 礼品券库 付款存储库 码 //使用GiftCouponRepository检索相应的GiftCoupon对象。 这涉及为一个事务使用两个存储库。 这是一个好习惯吗? 如果没有,我们如何改变设计来克服这个问题呢? 参考 :在DDD中,Aggregate应代表事务边界。 需要涉及多个聚合的交易通常表明应该改进模型,或者应该审查交易要求,或者两者兼而有之。 CQRS对我的域名是否正确? C#代码 public RepositoryLayer.ILijosPaymentRepository repository { get; set; } public void MakePayment(int giftCouponID) { DBML_Project.Payment paymentEntity = new DBML_Project.Payment(); paymentEntity.PaymentID = 1; DBML_Project.GiftCoupon giftCouponObj; //Use GiftCouponRepository to retrieve the corresponding GiftCoupon object. paymentEntity.GiftCouponPayments = new System.Data.Linq.EntitySet(); […]