C#MVC模式帮助

C#MVC模式帮助,c#,winforms,model-view-controller,C#,Winforms,Model View Controller,我正在尝试将我的Winforms代码重构为MVC模式。我以前从未使用过这种模式 显然,GUI将是视图,控制器将是“中间层”,由任何用户与GUI交互调用,模型执行所需任务,并通知视图任何状态更改 我的问题是,对于模型,我假设它可以跨越大量的类,而不局限于一个“模型”类?另外,这三个部分是否都在同一个部件中 谢谢。对于Winforms,我不建议使用MVC-id建议使用MVVM 试试这个教程 本文提到Silverlight,但MVVM模式是通用的,可以应用于Winforms 正如Roger Lipsc

我正在尝试将我的Winforms代码重构为MVC模式。我以前从未使用过这种模式

显然,GUI将是视图,控制器将是“中间层”,由任何用户与GUI交互调用,模型执行所需任务,并通知视图任何状态更改

我的问题是,对于模型,我假设它可以跨越大量的类,而不局限于一个“模型”类?另外,这三个部分是否都在同一个部件中


谢谢。

对于Winforms,我不建议使用MVC-id建议使用MVVM

试试这个教程

本文提到Silverlight,但MVVM模式是通用的,可以应用于Winforms


正如Roger Lipscombe所指出的,MVP也可能有效-请尝试此项以获取相关信息-同样是针对Silverlight的,但作为一种模式,它可以适应Winforms,我不建议使用MVC-id建议使用MVVM

试试这个教程

本文提到Silverlight,但MVVM模式是通用的,可以应用于Winforms


正如Roger Lipscombe所指出的,MVP也可能起作用——请尝试此项以获取相关信息——同样是针对Silverlight的,但作为一种模式,它可以进行调整

不,模型并不局限于一个模型类。在模型中,您通常表示数据库和其他与数据相关的内容。控制器负责大部分操作


是的,所有这些组件都将放在一个dll中。我打赌还会有很多其他文件,比如视图文件,它们并不总是在MVC中编译(但您可以强制编译)。

不,模型并不局限于一个模型类。在模型中,您通常表示数据库和其他与数据相关的内容。控制器负责大部分操作


是的,所有这些组件都将放在一个dll中。打赌会有很多其他文件,比如视图文件,它们并不总是在MVC中编译(但你可以强制编译)。

对于Winforms,我建议学习MVP(模型/视图/演示者)和MVC模式。尽管其他人认为MVVM可能是个好主意,但我不同意——MVVM利用了WPF中提供的数据绑定,尽管Winforms在某种程度上支持绑定,但它不像WPF体系结构/对象模型那样以绑定为中心

“模型”层可以由许多类组成,当在体系结构的这一层中建模类时,我总是使用“单一责任原则”以及其他可靠原则

有用链接:

  • SRP-
  • 固体-)
  • MVP-

    • 对于Winforms,我建议学习MVP(模型/视图/演示者)和MVC模式。尽管其他人认为MVVM可能是个好主意,但我不同意——MVVM利用了WPF中提供的数据绑定,尽管Winforms在某种程度上支持绑定,但它不像WPF体系结构/对象模型那样以绑定为中心

      “模型”层可以由许多类组成,当在体系结构的这一层中建模类时,我总是使用“单一责任原则”以及其他可靠原则

      有用链接:

      • SRP-
      • 固体-)
      • MVP-

      您可能需要考虑将“Model”类作为接口。然后,您的所有特定模型都实现了该接口,但共享通用方法(如更新、删除等)


      它们肯定可以写在同一个程序集中。您的文件夹结构(严格地说)应该遵循模型/视图/控制器结构,并将代码文件分别放在它们下面。

      您可能需要考虑将“模型”类作为接口。然后,您的所有特定模型都实现了该接口,但共享通用方法(如更新、删除等)


      它们肯定可以写在同一个程序集中。您的文件夹结构(严格地说)应该遵循模型/视图/控制器结构,并将代码文件分别放在它们下面。

      如果您决定尝试MVP模式,这是Winforms的一个不错的选择,请签出一个用于构建MVP应用程序的框架。它简单又好

      如果您决定尝试MVP模式,这对于Winforms来说是一个不错的选择,请查看一个用于构建MVP应用程序的框架。它简单又好

      也许您对我要介绍的将MVC/MVP模式与具有流畅接口的数据绑定相结合的方法感兴趣


      在我看来,如果使用MVC、MVP或MVVM,这是一个观点问题。它们都将导致数据的抽象、逻辑和数据的可视化。

      也许你对我将MVC/MVP模式与流畅接口的数据绑定相结合的方法感兴趣


      在我看来,如果使用MVC、MVP或MVVM,这是一个观点问题。它们都将导致数据的抽象、逻辑和数据的可视化。

      为什么是Winforms的MVC?为什么不是MVVM?我从来没有听说过。我现在就查……你有什么好的链接吗?谢谢。为什么是Winforms的MVC?为什么不是MVVM?我从来没有听说过。我现在就查……你有什么好的链接吗?谢谢。在Winforms中,我发现更多的是模型视图演示器(MVP),因为数据绑定不如WPF或Silverlight好。但我想这只是语义学。100%正确-我也会更新我的MVP答案-谢谢提醒。我不认为MVC通常适用于winforms。谢谢,我会检查一下。我刚刚发现了这个Martin Fowler链接,它看起来是一个非常好的读物……我可以再问一个相关的问题吗?如果我的Winform有一个动态创建的树视图,在单击节点时显示更多数据。视图基本上会通知演示者它是哪个节点,然后演示者会从这里开始吗?在Winforms中,我发现它更符合模型-