我到底在使用什么?

18 浏览
0 Comments

我到底在使用什么?

非常抱歉标题不明确。很不好意思,我非常需要现在搞清楚这个问题。我无法确定我是在遵循MVC模式还是MVVM模式。\n在我之前的实习中,我们使用了C#代码(.NET),其中有一个控制器直接连接到数据库(没有服务层)。控制器会获取信息,将其格式化为JSON,并将其传递给Angular的控制器,然后在视图上显示出来。\n在我的当前实习中,我们不使用Angular,而是使用.cshtml文件。服务层将其信息提供给控制器,控制器会对MODEL进行格式化,并将其传递给.cshtml视图来显示内容。\n我的问题是:\n哪个是MVC,哪个是MVVM?请以我能理解的方式解释一下。我在网上读到的大部分内容似乎更加让我困惑。\n在工作中,大家都称它们为MVC,我真的很困惑。如果两者都是MVC,它们之间有什么区别呢?

0
0 Comments

你使用的是什么东西?这个问题的出现是因为在不同的情况下,你使用了不同的MVC(或者至少是类似MVC的模式)。当你使用.cshtml文件时,你使用的是服务器端MVC。当你使用Angular时,你使用的是客户端MVC(可能更像是MVVM)。最大的区别在于模型是在客户端还是服务器端渲染成HTML元素。

在我看来,这是更好地了解你所做的区别的一种方式。

解决方法如下:

- 如果你想使用服务器端MVC,你可以继续使用.cshtml文件。这种方法适用于传统的Web应用程序,其中整个页面都是由服务器生成的。

- 如果你想使用客户端MVC,你可以使用Angular。这种方法适用于现代的单页应用程序(SPA),其中大部分页面的渲染是在客户端完成的。

无论你选择哪种方法,都有一些相同的原则需要遵循:

- 模型:你需要定义和管理你的数据模型,无论是在服务器端还是客户端。

- 视图:你需要定义和管理你的用户界面,无论是在服务器端还是客户端。

- 控制器(或视图模型):你需要定义和管理你的业务逻辑,无论是在服务器端还是客户端。

使用服务器端MVC或客户端MVC(或MVVM)的选择取决于你的应用程序的需求和架构。服务器端MVC适用于传统的Web应用程序,而客户端MVC适用于现代的单页应用程序。无论你选择哪种方法,你都需要定义和管理模型、视图和控制器(或视图模型)来构建你的应用程序。

0
0 Comments

什么是MVVM? 为什么我正在使用它?如何确定我是否正在使用MVVM?

在这段对话中,一个人询问了关于MVVM和MVC的问题。另一个人解释了MVVM的概念和工作原理,并解释了MVVM与MVC的区别。这个问题的出现是因为提问者想要了解自己当前使用的是什么模式。解决方法是通过观察UI的行为和数据绑定来确定使用的是哪种模式。

MVVM是一种特殊的模式,其中UI状态封装在ViewModel中,因此最终UI的呈现相对简单,只是数据绑定。显示这个按钮或隐藏这个区域的状态逻辑都封装在ViewModel中。其中一个好处是,这允许构建单元测试来测试ViewModel,并隐式地测试所有UI行为。MVC中,视图本身有能力控制其行为,根据提供的数据(模型)来决定显示/隐藏等。这意味着在MVC中,如果不测试UI本身,就无法测试UI行为(例如,根据数据更改正确显示或隐藏某些内容)。

所以总结一下,MVVM中,ViewModel控制UI行为,而UI本身是愚蠢的,只使用数据绑定并根据ViewModel中的逻辑执行它们所要做的事情。MVC中,UI是“智能的”,根据从模型接收到的数据重新形状和呈现自己。通过观察UI的渲染方式,如果看到UI渲染逻辑根据决策做出许多自己的决定,那么基本上可以确定正在使用MVC。如果只看到很多数据绑定,几乎每个行为都由一个单独的类驱动,该类封装了显示和隐藏UI的所有逻辑,并通过数据绑定将这些数据传递给UI,那么可能是MVVM。

希望这可以帮助解决疑问。

0