【问题标题】:What is a good read model for an ASP.NET MVC app using CQRS?对于使用 CQRS 的 ASP.NET MVC 应用程序来说,什么是好的读取模型?
【发布时间】:2011-05-26 14:10:51
【问题描述】:

我正在寻找开发一个 ASP.NET MVC 应用程序,它应该能够在未来在 Azure 上运行。该应用程序将使用 CQRS 设计模式,我对它相当陌生。写入模型将使用 NHibernate 和映射。我不确定要为读取模型使用哪种数据库。读取模型应具有以下属性:

  • 它不需要基于 SQL,但可以。 NHibernate 也可以用于创建简单的视图模型 -> 表类型的映射,没有外键。内存数据库中的 SQL CE 或 SQLite 可用作数据提供者。这也为查询数据提供了更多的灵活性。

  • 它可能只是一个对象序列化/反序列化器,它按原样存储视图模型对象。它应该使它易于使用,并且将来可以利用 Azure Blob 存储之类的东西。有什么好的框架可以很好地处理这个问题吗?

我很想从以前构建过此类应用程序的人那里得到一些反馈。

【问题讨论】:

  • 您看过 Greg Youngs 的视频吗? viddler.com/explore/GregYoung/videos/8
  • 这是一个很好的资源,谢谢。需要一段时间才能完成。
  • 是的,3 小时后我在电脑前睡着了。无论如何,也请检查一下:cqrsinfo.comgroups.google.com/group/dddcqrs
  • 哇,cqrsinfo.com 似乎经常引用 nCQRS,而我认为那是 CQRS 的一个坏例子......
  • @Phill,以什么方式?我认为 NCQRS 的目的是让开始构建 CQRS 应用程序变得更容易,其中框架处理它周围的大部分基础设施..

标签: .net asp.net asp.net-mvc cqrs


【解决方案1】:

我们将 Blob 存储用于备份 ASP.NET MVC 2 Web 客户端(以及桌面客户端)的 CQRS 视图。 Some more details 这是在生产中,比以前版本的视图有很大的改进(NHibernate over SQL Azure)

它也处理简单​​的索引和查询。对于更复杂的场景,我正在考虑使用表存储功能的子集(仅适用于无法分区的非常大的集合)。

【讨论】:

  • 感谢您的文章。如果我不使用 azure,你会推荐什么?像Mongodb这样的东西可能吗?你用什么治疗事件疮?
【解决方案2】:

对于读取模型,我们使用带有 WCF 数据服务的 SQL Server 2008 R2。然后将 WCF 数据服务配置为允许只读。 SQL Server 2008 R2 数据库中的数据是每个实体一个表,并在这些表之上创建专门的视图。

ASP.NET MVC 应用程序不直接访问实体,它只查询视图。

这样的场景可以很好地编入索引,并且视图为您提供了最大的灵活性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 2017-04-13
    • 2020-08-18
    • 2011-04-09
    • 2013-02-04
    相关资源
    最近更新 更多