2013-07-09 45 views
1

我想实现一个asp.net mvc4网站。这个网站应该建立在面向服务架构的原则之上(即所有不同的模块,如患者,用户将被分离为一项服务)。这个网站是一个简单的网站,它调用Web服务,然后与服务/模块的CQRS层进行对话。我想知道这是否是一个适合web项目的正确架构。我的数据库是一个多租户数据库。你认为如果我删除了Web服务层会更好吗?现在,我已经实现了使用WCF Web服务的项目,一切工作正常,但只是想有一个想法,如果我可以什么都做的更好的架构用CQRS实现SOA

回答

0

调用Web服务的Web应用程序的罚款。在这种情况下更好地使用AJAX使其更有效。现在我们有了ASP.NET Web API(http://www.asp.net/web-api)来创建Restful服务(而不是WCF Web服务)。使用ASP.NET Web API很简单,只需要更少的配置。如果可能的话,这两点你可能会考虑到。谢谢。

+0

我想采用了棱角分明的js调用和JSON网络服务,但会再次成为唯一的Web服务。 – sagar

+1

这是完美的!谢谢。 –

1

我可能会建议采取措施,以更加异步命令模式,而不是一个围绕阻断请求/响应Web服务建立(这同样适用于WCF和Web API)。

你可能也得到更好的服务发布/订阅基于事件的同步模式,一些读模型(这可能是一个高速缓存)提高了性能和您的查询的简单性。

在基础设施方面,像NServiceBusMass Transit这样的服务总线可能是一个不错的选择。还有一个叫做NCQRS的项目,但它似乎在alpha中(我自己没有使用它),所以我不确定我是否可以推荐它用于生产用途。

+0

通过异步命令模型,我猜你的意思是asp.net MVC4的异步库,即使这样我会调用一个web服务或web api,它是异步的。在CQRS方面,我的想法是,如果让我们说更新或创建发生,我只是通过WCF/Web API发送命令,并更新我的视图模型,基本上忘记了UI方面的命令。 – sagar

+0

因为我已经开发了一个模拟应用程序我正在观察我不需要连店,现在我只希望这是来我的服务(CQRS水平)至(使用NService总线)发布的任何事件。我确实希望保留它的体系结构,以便稍后在需要的时候添加它,您认为继续使用CQRS类型基础结构是正确的,即使我没有使用事件存储,或者您会建议其他一些体系结构。 – sagar

+0

如果您正在执行异步命令调用,为什么不使用总线直接发送消息?在那里使用RPC基础结构只有缺点。关于事件存储,我同意这是你可以等待的事情。 –