Tag: 洋葱架构

洋葱拱门依赖在同一层:基础设施和networking通信

我正在devise一个使用Jeffrey Palermo描述的洋葱架构的ASP.NET MVC应用程序。 这是一个ASP.NET MVC 2.0项目,我要求所有视图都使用专用视图模型进行强types化 – 我们不会将域模型传递给我们的视图。 我们使用AutoMapper进行翻译 – AutoMapper被隔离在基础架构中,Web不知道或在意使用AutoMapper。 目前,我正在Web项目中定义IViewModelMapping接口 – 仅仅因为这个服务将被控制器使用,并且可以直接访问它自己的视图模型。 这样接口就可以访问域模型(核心)和视图模型(networking)。 为了提供IViewModelMapping接口的实际实现,我在基础结构项目中创build了一个ObjectMapping命名空间,将实际的映射实现隔离到洋葱的基础设施。 在这样做的时候,这将需要基础架构依赖于核心和networking。 我的问题是:因为这两个项目在技术上都位于洋葱的郊区(在同一层) – 一个项目是否允许依赖于该层中的另一个项目? 有没有人注意到这个devise的任何潜在的陷阱? 另一种devise是将IViewMapper接口移动到Core中,但这是不可能的,因为Core无法访问ViewModel类。 我也可以将视图模型移动到Core中,但是我觉得他们不属于那里,因为它们是特定于UI层的。 所提出的体系结构如下所示 – 注意到,基础架构依赖于Core和Web。 Web仍然是孤立的,只能访问Core业务逻辑。 http://www.matthidinger.comhttp://img.dovov.comonion-arch.png