究竟是什么;WPF服务“;?

究竟是什么;WPF服务“;?,wpf,mvvm,service,Wpf,Mvvm,Service,有人在一次采访中告诉我,MVVM模式的“两个大炮”是1)附加行为和2)服务。我猜他的意思是“WPF服务”,我发现这个短语有以下几种用法: PresentationFoundation.dll定义WPF控件类型、动画和 多媒体支持、数据绑定 支持和其他WPF服务 许多WPF服务(去耦合事件、丰富的数据绑定、, 样式、资源等)是软件 开发最佳实践 在单个声明性UI中聚合 堆叠 您将了解WPF背后的动机,学习XAML的语法, 检查核心编程模型,并调查几个WPF服务 我甚至没有在WPF书籍中提到“WPF

有人在一次采访中告诉我,MVVM模式的“两个大炮”是1)附加行为和2)服务。我猜他的意思是“WPF服务”,我发现这个短语有以下几种用法:

PresentationFoundation.dll定义WPF控件类型、动画和 多媒体支持、数据绑定 支持和其他WPF服务

许多WPF服务(去耦合事件、丰富的数据绑定、, 样式、资源等)是软件 开发最佳实践 在单个声明性UI中聚合 堆叠

您将了解WPF背后的动机,学习XAML的语法, 检查核心编程模型,并调查几个WPF服务


我甚至没有在WPF书籍中提到“WPF服务”,所以这只是一个“WPF功能”的意思,比如解耦事件、丰富的数据绑定、样式化等。或者“WPF服务”这一术语背后还有其他含义吗?

他说的不是WPF服务,而是应用程序服务。也就是说,将部分功能抽象为多个VM可以使用的独立服务。

Martin Fowler在他的文章中描述了服务是什么。简言之,服务是一个提供供其他对象使用的功能的对象。在讨论模式和方法时,您会发现这个术语被大量使用

为了使这个主题具体化,让我们考虑一下如何在MVVM模式中显示消息框。调用MessageBox.Show()会很糟糕,雷。这将ViewModel与UI体系结构紧密地联系在一起,使得ViewModel难以测试。相反,一种解决方案是使用服务,我们称之为IDisplayMessage。该服务以某种方式提供给ViewModel(通过上面两种模式之一),该服务用于“显示”消息。在正常操作期间,此服务的具体版本将调用MessageBox.Show(),但在测试期间,我们可以提供行为不同的不同具体版本(测试双精度)(noop经常出现,或者如果我们确保ViewModel显示消息,则该版本会记录调用,以便我们可以断言调用发生)。(免责声明:我是作者)提供了这样的服务,以及向您的ViewModel提供此服务(和其他服务)所需的基础结构


更新:自从做出这个回应后,我写了一篇博文,很好地涵盖了这个主题。这是一系列文章的一部分,读者可能也会对第一篇文章感兴趣。

这到底是什么意思,你说的是Windows服务还是Web服务?维基百科关于WPF的文章给出了“WPF应用程序服务”的示例,如“用户界面、2D和3D绘图、固定和自适应文档、高级排版、矢量图形、光栅图形、动画、数据绑定、音频和视频”。这意味着什么,例如“多个视图模型可以使用数据绑定”。情况总是这样。在这个意义上,“WPF服务”和“应用程序服务”这个词的背后是什么?或者你的意思是经典意义上的“安全服务”吗?我所说的“服务”只是指对一项功能的抽象。可能底层功能是COM组件、数据库访问或其他。没关系-虚拟机只知道一个可以用来与上述功能交互的界面。是的,它是关于功能的。在这种情况下,“服务”只是一个让它听起来更好的流行词。就像“用户体验”之类的。为什么不指向你的文章呢?附加行为:服务:当时,文章不存在,我只是不想回到这里更新回复。