我正在为复杂系统的重新架构提出建议和原型。它是一个 n-Tier 分布式架构,大致遵循 DDD 的原则,并具有 Jeffery Palermo 的Onion Architecture的元素,尤其是 Domain Model/Services 的核心概念的分离(这些与领域问题密切相关,有些可能最终是自然而然的)实现为远程 WCF/工作流服务)从更高级别的应用程序模型/服务概念(组件通常代表应用程序/UI 代码协调操作,并将作为依赖项注入这些应用程序)。
我需要将这种方法传达给没有大量接触面向服务的架构、SOLID 原则、依赖注入、复合应用程序等的高管和/或开发人员。我遇到了对“应用程序服务”概念的一些重大阻力没有被实现为 WCF 或“Web”服务。
对我来说,“服务”只是实现某种“服务契约”的组件,“服务消费者”和“服务提供者”可以抽象地达成一致,这并不意味着它一定是“网络服务”,监听某些服务器上的端口。然而,我似乎根本无法理解这一点——它似乎太微妙或太抽象了。
我认为我只需要另一个术语“应用程序服务”来将其与“Web 服务”区分开来,但是“API”或“SDK”或“Helper 类”或我的听众很好理解的类似术语要么不准确,要么不正确似乎没有充分描述这个概念。
关于什么是一个好的替代术语的任何建议?
更新:我最近一直在阅读有关 MVVM + 控制器(MVVMC 或 MVCVM)的内容,并开始认为我们的一些应用程序服务操作可能真的可以被视为控制器。不过,我仍然不清楚验证(即 IDataErrorInfo)实现在这个世界中如何工作 -所有业务逻辑和验证是否都由“控制器”处理,可能引发类似于(或实际上相同)INotifyPropertyChanged 的事件.PropertyChanged?