我希望开发一个ASP.NET MVC应用程序,该应用程序将来可以在Azure上运行。该应用程序将使用CQRS设计模式,我很新。写模型将使用NHibernate与映射。我不确定用于读取模型的数据库类型。读取模型应具有以下属性:
它不需要基于SQL,但可以。 NHibernate也可用于创建简单的视图模型 - >表格类型的映射,没有外键。内存数据库中的SQL CE或SQLite可用作数据提供程序。在查询数据时,这也提供了更多的灵活性。
它可以只是一个对象序列化/反序列化器,它按原样存储视图模型对象。它应该使这个易于使用,并可以在未来使用Azure Blob存储。是否有任何良好的框架可以很好地处理这个问题?
我很乐意从之前构建此类应用程序的人那里获得一些反馈。
答案 0 :(得分:3)
我们正在使用Blob存储来备份ASP.NET MVC 2 Web客户端(以及桌面客户端)的CQRS Views。 Some more details这是正在制作中,并且比以前版本的视图(NHibernate over SQL Azure)有了很大的改进。
它也处理简单的索引和查询。对于更复杂的场景,我正在考虑使用表存储功能的子集(仅适用于无法分区的非常大的集合)。
答案 1 :(得分:3)
对于Read Model,我们在顶部使用带有WCF数据服务的SQL Server 2008 R2。然后将WCF数据服务配置为允许只读。 SQL Server 2008 R2数据库中的数据是每个实体一个表,在这些数据之上创建专门的视图。
ASP.NET MVC应用程序不直接访问实体,它只查询视图。
这样的场景可以很好地编制索引,并且视图可以为您提供最大的灵活性。