C# “的定义是什么?”;ViewModel行为“;?

C# “的定义是什么?”;ViewModel行为“;?,c#,asp.net-mvc,design-patterns,dto,asp.net-mvc-viewmodel,C#,Asp.net Mvc,Design Patterns,Dto,Asp.net Mvc Viewmodel,我一直在阅读DTO和Viewmodels之间的区别,其中最主要的区别是Viewmodels中存在行为,而DTO只是通过层传输数据,但据我所知,没有明确说明行为的定义 Viewmodels可以将属性中传递的数据从DTO转换为特定视图的特定格式,也可以将WPF中的事件添加到VM中,从而丰富其用途。那么“行为”在这个案件中到底意味着什么呢?谢谢。通常,DTO就是它的名字所暗示的,一个没有任何行为的简单对象,用于跨系统边界传输数据。 然而,Viewmodel的目的是分离关注点。视图模型的责任是将视图与模

我一直在阅读DTO和Viewmodels之间的区别,其中最主要的区别是Viewmodels中存在行为,而DTO只是通过层传输数据,但据我所知,没有明确说明行为的定义


Viewmodels可以将属性中传递的数据从DTO转换为特定视图的特定格式,也可以将WPF中的事件添加到VM中,从而丰富其用途。那么“行为”在这个案件中到底意味着什么呢?谢谢。

通常,DTO就是它的名字所暗示的,一个没有任何行为的简单对象,用于跨系统边界传输数据。
然而,Viewmodel的目的是分离关注点。视图模型的责任是将视图与模型分离。它可以执行许多操作,如切换视图元素。验证运行DTO无法执行的一些自定义逻辑。这就是您的Viewmodel行为。

通常DTO是其名称所暗示的,没有任何行为的简单对象,用于跨系统边界传输数据。
然而,Viewmodel的目的是分离关注点。视图模型的责任是将视图与模型分离。它可以执行许多操作,例如切换视图元素。验证运行DTO无法执行的一些自定义逻辑。这就是您的Viewmodel行为。

正如您将要阅读的那样,DTO是一个“数据传输对象”

粗略地说,
数据
是对象的一个方面,另一个方面是
行为。”行为
也可以笼统地说,只是一组相关的动作(方法)和事件,作用于该数据

因此,一个对象是一些数据和一系列与该数据相关的行为的容器
DTO
ViewModels
都是对象,但它们在生活中有不同的目的,因此对它们所包含的行为有不同的强调

DTO
仅与
在流程边界、应用层或网络之间传输
数据有关

因此,
dto
通常几乎没有任何行为,因为行为就是动作,而动作只有在我们想对数据做一些事情时才有用

由于传输/序列化有一个传输成本,我们通常只希望这些
DTO
s更精简、更平均

然而,一旦
DTO
到达它的目的地,我们通常会想对它包含的数据做些什么。因此,我们将数据从
DTO
中剥离出来,非常感谢您在这里完成了出色的工作,并将其填充到
ViewModel
中,以便我们可以通过行为(方法和事件)以某种方式与数据交互,通常是通过一些UI

因此,行为是指在编辑/保存时格式化值,根据propertyA中更新的值触发propertyB中的更改等

INotifyingPropertyChanged
(INPC)接口通常会在
ViewModel
上实现,以帮助实现这一点


所以,由于行为只是和数据(属性、方法、事件)交互的选项,
ViewModels
具有此功能,因为这就是我们构建视图的目的,与数据交互。另一方面,DTO通常/通常没有(很多)行为,因为它们的功能是传输而不是交互。

正如您将读到的那样,DTO是一个“数据传输对象”

粗略地说,
数据
是对象的一个方面,另一个方面是
行为。”行为
也可以笼统地说,只是一组相关的动作(方法)和事件,作用于该数据

因此,一个对象是一些数据和一系列与该数据相关的行为的容器
DTO
ViewModels
都是对象,但它们在生活中有不同的目的,因此对它们所包含的行为有不同的强调

DTO
仅与
在流程边界、应用层或网络之间传输
数据有关

因此,
dto
通常几乎没有任何行为,因为行为就是动作,而动作只有在我们想对数据做一些事情时才有用

由于传输/序列化有一个传输成本,我们通常只希望这些
DTO
s更精简、更平均

然而,一旦
DTO
到达它的目的地,我们通常会想对它包含的数据做些什么。因此,我们将数据从
DTO
中剥离出来,非常感谢您在这里完成了出色的工作,并将其填充到
ViewModel
中,以便我们可以通过行为(方法和事件)以某种方式与数据交互,通常是通过一些UI

因此,行为是指在编辑/保存时格式化值,根据propertyA中更新的值触发propertyB中的更改等

INotifyingPropertyChanged
(INPC)接口通常会在
ViewModel
上实现,以帮助实现这一点

所以,由于行为只是和数据(属性、方法、事件)交互的选项,
ViewModels
具有此功能,因为这就是我们构建视图的目的,与数据交互。另一方面,DTO通常没有(很多)行为,因为它们的功能是传输而不是交互