我想实现一个asp.net mvc4网站。这个网站应该建立在面向服务架构的原则之上(即所有不同的模块,如患者,用户将被分离为一项服务)。这个网站是一个简单的网站,它调用Web服务,然后与服务/模块的CQRS层进行对话。我想知道这是否是一个适合web项目的正确架构。我的数据库是一个多租户数据库。你认为如果我删除了Web服务层会更好吗?现在,我已经实现了使用WCF Web服务的项目,一切工作正常,但只是想有一个想法,如果我可以什么都做的更好的架构用CQRS实现SOA
回答
调用Web服务的Web应用程序的罚款。在这种情况下更好地使用AJAX使其更有效。现在我们有了ASP.NET Web API(http://www.asp.net/web-api)来创建Restful服务(而不是WCF Web服务)。使用ASP.NET Web API很简单,只需要更少的配置。如果可能的话,这两点你可能会考虑到。谢谢。
我可能会建议采取措施,以更加异步命令模式,而不是一个围绕阻断请求/响应Web服务建立(这同样适用于WCF和Web API)。
你可能也得到更好的服务发布/订阅基于事件的同步模式,一些读模型(这可能是一个高速缓存)提高了性能和您的查询的简单性。
在基础设施方面,像NServiceBus或Mass Transit这样的服务总线可能是一个不错的选择。还有一个叫做NCQRS的项目,但它似乎在alpha中(我自己没有使用它),所以我不确定我是否可以推荐它用于生产用途。
通过异步命令模型,我猜你的意思是asp.net MVC4的异步库,即使这样我会调用一个web服务或web api,它是异步的。在CQRS方面,我的想法是,如果让我们说更新或创建发生,我只是通过WCF/Web API发送命令,并更新我的视图模型,基本上忘记了UI方面的命令。 – sagar
因为我已经开发了一个模拟应用程序我正在观察我不需要连店,现在我只希望这是来我的服务(CQRS水平)至(使用NService总线)发布的任何事件。我确实希望保留它的体系结构,以便稍后在需要的时候添加它,您认为继续使用CQRS类型基础结构是正确的,即使我没有使用事件存储,或者您会建议其他一些体系结构。 – sagar
如果您正在执行异步命令调用,为什么不使用总线直接发送消息?在那里使用RPC基础结构只有缺点。关于事件存储,我同意这是你可以等待的事情。 –
- 1. 实现在CQRS
- 2. 在SOA中实现授权
- 3. 使用CQRS读取端实现方法
- 4. 在Java中使用OOP实现CQRS
- 5. 使用SOAP和REST实现的SOA
- 6. 使用芹菜在Django中实现SOA
- 7. REST和SOAP都是SOA的实现吗?
- 8. 在WCF/SOA中测试接口实现
- 9. 标准比SOAP + WSDL等来实现SOA
- 10. 如何使用CQRS实现后置条件?
- 11. 如何在CQRS应用程序中实现数据网格
- 12. 你用什么工具来实现SOA /消息传递?
- 13. 使用SPDY作为SOA相关实现的基础传输
- 14. 是否应该使用SOA实现远程UI?
- 15. 使用SOA架构在Asp.Net MVC中实现存储库模式
- 16. CQRS中的实体与DTO
- 17. 适用于iOS的CQRS实施方案
- 18. 服务可发现在SOA
- 19. SOA:服务API发现
- 20. 设置SOA进行实验
- 21. SOA问题:公开实体
- 22. 适合新手的实用SOA
- 23. SOA资源发现与服务发现
- 24. 服务于格雷格年轻的CQRS实现
- 25. 为CQRS实现打包Masstransit是否是一个好习惯?
- 26. 如何在DDD中实现CQRS的查询方?
- 27. 当您可以实现Web服务(SOA/REST)时,使用RMI实现EJB仍然有用吗?
- 28. SOA服务发现(UDDI)在实践中如何工作?
- 29. 为什么Web服务是实现SOA的首选标准?
- 30. CQRS是在Google App Engine上实现社交应用的好方法吗?
我想采用了棱角分明的js调用和JSON网络服务,但会再次成为唯一的Web服务。 – sagar
这是完美的!谢谢。 –