gpt4 book ai didi

mvvm - 如何使用 WCF 实现 MVVM?

转载 作者:行者123 更新时间:2023-12-03 10:02:47 25 4
gpt4 key购买 nike

我是 MVVM 的新手。目前我正在用 C# 开发一个 WPF 项目,它将有一个 SQl 服务器后端,我将使用标准的 WCF 服务与之通信。到目前为止,我在 MVVM 上看到的所有教程似乎总是使用一些静态数据存储库,例如 xml 文件作为其后端。我还没有看到使用数据库和数据访问层的实现,所以我对我的 WCF 服务适合的位置感到困惑。服务中定义了所有数据对象,那么服务本身是否会成为模型?此外,如何在 ViewModel 中包含服务,以便设计器不会抛出错误,说明它无法为服务类创建实例?在这里的任何帮助都将不胜感激,因为我觉得奇怪的是,这么多关于这个主题的教程都忽略了业务线应用程序的最实用的实现。

PS我想避开WCF RIA服务和Silverlight,因为Silverlight缺乏对命令的支持使得我正在关注的书(Pro WPF和Silverlight MVVM Effective Application Development with Model-View-ViewModel)难以理解。

最佳答案

好的,我会尽量让你加快速度...

首先,我确实认识到关于模型和使用 WCF 公开的对象模型的问题。他们是一样的吗?好吧,为了简单起见,我现在想做出这个假设。那么我们在客户端不需要MVVM的模型部分吗?依靠 ...

ViewModel 在驾驶座上。我们让它为您的 WCF 服务创建客户端代理。请求中使用并作为结果返回的对象构成了您的模型。您想要在客户端缓存或不能直接与 UI 绑定(bind)的任何内容都将放在模型容器类的属性中。从这些模型属性生成可绑定(bind)属性以在您的 UI 中使用。其他一切都只是 View 模型中的直接属性。

关于 WCF 和数据访问层,有一些重要的事情需要认识。首先,您需要在逻辑(信息)模型和物理(数据库)模型之间进行分离。一个原因是将您的数据库技术从您的应用程序中抽象出来。另一个允许您的应用程序/域逻辑和您的物理实现之间存在小的偏差。确保您的(实体)模型类足够通用以支持 UI 中的更改,而无需为每次 UI 更改修改完整的应用程序堆栈。

没有一个明确的例子很难谈论这件事,所以总结一下,我想请你看看http://aviadezra.blogspot.com/2010/10/silverlight-mvvm-odata-wcf-data.html .我知道,它正在使用 WCF 数据服务和 SilverLight。不要因为我直接指向这个样本而生我的气,并给我竖起大拇指。这是一个很好的例子,说明了您想要实现什么、引入什么以及考虑如何设置这样的应用程序。只需用 WPF 替换 Silverlight,用常规类型的数据契约(Contract)替换 Data Services,接下来的故事将有助于让您的想法清晰。

希望它对您的追求有所帮助!

关于mvvm - 如何使用 WCF 实现 MVVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7628844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com