人们使用什么工具查询他们的Read数据库并填充DTO?
我们目前在Sql2008数据库中拥有Read模型并通过WCF服务执行所有查询,我们使用Fluent NHibernate使用自动映射填充数据合同,但这可能只是矫枉过正?
我们的要求就是这个......
答案 0 :(得分:3)
恕我直言,Overkill。
我只使用带有JSON / ProtoBuf序列化的平面文件系统。 Web服务很简单,架构可以是任何东西。堆栈可以根据需要轻松移动到云(使用Azure存储Blob),实现几乎无限的可扩展性。
详细信息:http://abdullin.com/journal/2011/1/19/scalable-and-simple-cqrs-views-in-the-cloud.html
答案 1 :(得分:1)
我在阅读方面使用了WCF数据服务并取得了很大成功。我写了一篇关于它的博客文章。请查看http://blog.fossmo.net/post/WCF-Data-Services-A-perfect-fit-for-our-CQRS-implementation.aspx
答案 2 :(得分:0)
我在数据库中使用了ADO.NET核心和存储过程。 然后使用我编写的工具,使用每个存储过程的结果作为Dtos的结构生成所有数据访问代码。
我的博客上提供了带有源代码的工具 Data Access Layer CodeGen
既然你只是通过WCF服务返回数据,那么就没有必要去了 DataReader,到Dto然后序列化DTO。换句话说,在发送数据的过程中,您将对结果集进行3次迭代。因此,如果您想降低服务器上的资源利用率并获得更好的性能,那么您可以使用该工具生成的“DataReader-Wrapper”类(以及数据访问代码)。
DataReader包装类与强类型DataReader类似。我有另一篇文章,我谈到这些及其好处 DataReader Wrappers - TypeSafe
当然,您可以修改工具(因为您也有源代码)来生成所有代码,包括WCF服务。所以你真正需要做的就是编写一个存储过程,你就完成了。所有的DataAccess代码(使用ADO.NET Core - 所以它的轻量级和超快速),业务层代码和WCF代码实际上只是“忙碌的工作”,如果你理解我的意思。
修改强> 使用存储过程的原因