在 MVC 中,模型可以有多个视图,在 WPF 中,XAML 代码隐藏模型仅限于 1 个 XAML(视图),WPF/XAML 从一开始就 MVC 而言不是有缺陷吗?
我建议查看 MVVM 以与 WPF 一起使用。
您正在将带有 Windows 窗体的 MVC 与带有代码隐藏的 WPF 进行比较 - 即将架构模式与技术进行比较(不使用模式)。这是一个不公平的比较。
我写了一个关于 MVVM 从 Windows 窗体角度开始 的系列文章,可能有助于理解这一点。您会发现,使用 WPF 实现视图和视图模型的分离比 MVC 的控制器更清晰、更容易实现。它实际上允许更多解耦的架构,并且实现工作更少。
问得好!
在 MVC 中,您声明一个模型可以有多个视图,这是事实。但是,每个视图都有自己的控制器。
在 MVVM 中,一个模型可以有多个视图,在这种情况下,每个视图都可以有自己的视图模型。
但是,实际上,如果 ViewModel 没有任何特定于某个视图的概念,则完全可以重用视图模型。事实上,我写了一篇关于跨平台 XAML 应用程序的文章,其中我在三个应用程序之间重用了代码,一个在 WP7 上,一个在 Silverlight 中,另一个在 WPF 中:
http://blogs.msdn.com/b/mikeormond/archive/2010/12/09/writing-cross-platform-xaml-applications.aspx
每个应用程序的视图非常不同,但是我能够重复使用所有三个应用程序的模型和视图模型。
WPF/XAML 是一种技术,而 MVC 是设计模式,当技术不将您限制于特定模式并允许开发人员选择使用哪种模式时,它是很好的。与编程语言相同,您可以使用任何设计模式。
您可以将 MVC、MVP、MVVM 或 YourMegaPattern 与 XAML\WPF 结合使用。技术应该高于模式,它的框架通常绑定到特定的模式。
例如您可以采用ASP .NET技术,以及基于它的MVC框架。