使用洋葱架构使用多个API和Web服务

时间:2012-09-13 22:42:33

标签: c# design-patterns domain-driven-design onion-architecture

我目前正在使用洋葱架构设置Visual Studio解决方案。我对如何构建解决方案有很好的理解,但是我遇到了一些问题。我的解决方案是使用多个API。使用WCF,Soap Web服务和REST服务的RESTSharp来使用这些API。我不知道如何构建它。

最大的困惑是REST服务,因为它不仅使用RESTSharp,还使用一些用于序列化的POCO类。我也有:

ApiResult<T> where T is any of the POCO classes.

我的第一个想法是创建Infrastructure.RestSharp,我将实现所有返回ApiResult的接口,但问题是我在哪里放置这些POCO类和ApiResult?因为接口正在使用它们,所以它们必须在某个地方进入Core,但哪里可以放置它们?

WCF和肥皂服务怎么样?我会创建一个Infrastructure.WebServices吗?

1 个答案:

答案 0 :(得分:4)

也许这会有所帮助。这是我用于使用Onion Architecture设置Visual Studio项目的图表。箭头显示哪些项目引用了其他项目。蓝框是我创建的项目。橙色项目是第三方项目或.NET API。

  • UnitTests,Web(UI)以及依赖注入和数据访问层项目都位于洋葱的外层。
  • 所有参考都指向核心(除了可以指向侧面的外层)。
  • 所有API均可通过外层项目访问。

Onion Architecture Diagram