gpt4 book ai didi

c# - MVVM 相对于 MVC 的优势

转载 作者:IT王子 更新时间:2023-10-29 03:54:33 26 4
gpt4 key购买 nike

终于开始做一些 Silverlight 开发,我遇到了 MVVM。我熟悉 MVC,我正在阅读的文章说,由于 XAML,MVC 无法正常工作。没有太多的 XAML 经验显然是我没有明白这一点的原因。

谁能解释为什么 MVC 不适合以及为什么 MVVM 更适合 Silverlight 开发?

谢谢京东

最佳答案

这是一个非常细微的区别,我可以通过比较 ASP.NET 中的 MVC 和 WPF 中的 MVVM 来最好地解释这一点。

在 ASP.NET MVC 中,请求来自 Web 服务器并由 Controller 直接处理。 Controller 确定合适的 View 并用模型填充它。 Controller 然后将这些实例释放到底层系统,该系统将结果呈现给客户端。您可以看到 Controller 是第一个也是最后一个执行操作的。

在 MVVM 中,UI( View )面向用户并直接接受用户输入。在 View 中,ViewModel(它是 View 的 DataContext)中的命令由此事件触发。控制流向 ViewModel,它解释 V​​iew 发送给它的内容并准备它的 Models。在控制流回 View 后,它会根据模型中的更改进行 self 更新。如果需要新 View ,ViewModel 会与 NavigationService(或您的应用程序使用的任何导航方法)进行通信,这是 Window 或 Frame--UI 组件的权限。您可以看到 ViewModel 不是第一个也不是最后一个采取行动; View 比在 MVC 中发挥更大的作用。

WPF/Silverlight 的体系结构是这样做的原因。命令、绑定(bind)和导航基础设施不能由 Controller 控制/替换;它们与 UI 紧密集成。因此,Controller 必须位于 View 之下,扮演更被动的角色。

关于c# - MVVM 相对于 MVC 的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1593976/

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