1

我正在为复杂系统的重新架构提出建议和原型。它是一个 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?

4

2 回答 2

2

Bob 大叔在他的Clean Architecture方法中使用了术语交互器。它们或多或少等同于应用程序服务。用例是另一种选择。

对于开发人员,Service 通常被用作一个方便的概括性术语来描述几乎任何暴露操作的无状态的东西,通常是因为人们不会费心去寻找更好的名字。很遗憾,但我看不出你能做些什么。对您的开发人员使用另一个词来表示应用程序服务只会增强他们暂时服务 == 远程服务的错觉——他们迟早会发现整个世界都不这么认为。

于 2013-10-28T14:52:56.263 回答
1

所以问题是“应用程序服务”的另一个术语是什么来与“Web服务”区分开来:“业务服务”呢?还是“域服务”?

于 2013-10-30T21:19:53.303 回答