PRISM是一种面向服务的架构吗?
答案 0 :(得分:1)
来自Wikipedia:
“面向服务的体系结构(SOA)是在系统开发和计算集成阶段使用的一组灵活的设计原则。基于SOA的系统将功能打包为一套可在其中使用的可互操作服务来自多个业务领域的多个独立系统。“
(先发制人的评论:我知道,维基百科。有时,它只是最容易用作资源的东西。)
我认为这里的关键区别在于SOA意味着在某些媒介上离散系统之间的交互。这种交互不一定是定义的,但隐含的假设是系统是独立的,并使用通信机制来获得服务。
作为一个框架,Prism要求您不要独立,即它不通过某种外部交互机制公开其服务。您不能使用SOAP或XML通过IEventAggregator订阅或接收事件。这不是Prism的目的:它用于构建可能反过来又是SOA(或不是)的应用程序。
话虽如此,它显然通过使用依赖注入容器来使用SOA中固有的原则。事实上,在您的应用程序中,您可以通过容器请求Prism服务(IRegionManager,IEventAggregator等)而不必担心服务的构建本身意味着面向服务的设计。当然,你确实构建了服务 - 但它在引导程序中“在引擎盖下”发生。但是你必须与Prism紧密耦合才能获得服务,而你只能通过代码获得服务。不是任何媒介。
(尽管有些人已经考虑通过媒体公开这些服务,例如PRISM and WCF - Do they play nice?,其中IEventAggregator通过WCF公开)