【问题标题】:Recommendations for new a C# WPF MVC project新建 C# WPF MVC 项目的建议
【发布时间】:2025-12-24 16:10:06
【问题描述】:

我正在使用 WPF 4 开发一个系统。我假装在开发中使用 MVC。

我以前从未使用过 MVC,所以我对概念有点困惑。一段时间(很久)以前,我或多或少地使用该方案开发了一些 Delphi 软件:

  1. 一个瘦客户端应用程序要安装在多台与...通信的机器上。
  2. ...与瘦客户端通信并且是唯一连接到数据库的服务器应用程序。

在那个新项目中,我假装使用 WPF 开发瘦客户端(MVC 的视图部分),但其他部分我不确定我需要做什么。举例: 1.“模型”部分将是我的服务器应用程序,但“控制器”将在客户端或服务器机器上工作?
2. 这种情况下,服务器和客户端之间如何通信?插座?远程处理?
3. 你推荐什么?有一些“基础样例”那种项目可以下载学习吗?

我在这里感谢你的任何光 :)

【问题讨论】:

    标签: c# wpf model-view-controller


    【解决方案1】:

    MVVM(模型视图视图模型)是一种类似于 MVC 的设计模式,非常适合 WPF 和 Silverlight 开发,部分原因是它专注于绑定,而 Xaml 在这方面功能强大。

    对于客户端-服务器通信,WCF 服务是目前推荐的方法。

    有很多关于 MVVM 客户端、基于 WCF 通信的应用程序的介绍性文章。这是我从自己身上学到的一个示例:

    http://calcium.codeplex.com/

    此外,还有许多可用于 WPF 的 MVVM 框架。一对夫妇是:

    MVVM Light(简单易上手):

    http://www.galasoft.ch/mvvm/getstarted/

    Caliburn(功能强大且功能丰富):

    http://caliburn.codeplex.com/

    【讨论】:

      【解决方案2】:

      +1 to jeffn,因为 WPF 中的 MVC 模式称为 MVVM。它是一种模式的变体,与 WPF 的绑定基础结构很好地融合在一起。

      您的“客户端”应用程序将包含模型、视图和视图模型(模型、视图和控制器)。您不会尝试跨服务器/客户端边界拆分模式。这是不实用的,也不会为您节省任何费用。如果客户端和服务器之间有任何代码共享,那就是模型。

      这是一个场景:

      1. 用户单击请求用户列表的按钮。该按钮绑定到 ViewModel 上的 ICommand 类型的属性。单击按钮会触发 ICommand 的 Execute 方法,ViewModel 将其解释为对用户的请求。

      2. ViewModel 通过 WCF 服务连接到服务器。服务器将所有用户收集到 User 类型的实例中,并通过网络将这些用户发送回。

      3. ViewModel 然后将这些反序列化的 User 实例放入 ObservableCollection 中。此集合绑定到 UI 中的 ListControl。

      【讨论】: