使用ORM设计asp.net MVC应用程序以及将来迁移到NoSql

时间:2012-01-23 18:17:18

标签: asp.net-mvc orm nosql scalability

刚刚启动一个新的asp.net mvc解决方案,其中一个要求是能够在以后阶段为潜在的数百万用户进行扩展。

我打算使用一个暴露IQuerable的通用存储库,并在服务/应用程序级别使用linq(我知道这不是纯粹的DDD方法,但这不是辩论:))。我正在计划EF作为数据访问的ORM(使用分布式缓存作为二级缓存来在某种程度上实现可伸缩性)

我将面临的问题是所有那些与未来任何NoSql linq提供程序不兼容的linq查询(NoSql linq提供程序不太可能支持Joins)。 但是我愿意承担重新考虑所有linq查询的风险,只要它们都位于一个地方:服务/应用层。

什么是更好的方法?任何推荐?

1 个答案:

答案 0 :(得分:0)

NoSQL数据库不会解决RDBMS无法解决的问题。只有精心设计的表格才能。

我会从一开始就使用像RavenDb这样的NoSQL解决方案(因为你在.NET中),以减少开发时间,以后不再切换。

如果您希望扩展应用程序,请使用CQRS。从头开始不需要外部查询缓存。只需执行这些接口,以便稍后可以切换到外部缓存(或查询数据库)。