在MVVM架构中,模型应该在哪里?客户端是否必须具有单独的模型(我们可能称之为客户端模型),或者我们是否可以将客户端与之通信的Web API视为MVVM中的“M”。
通过一个例子解释它可能更有帮助。假设我们有一个用于购物的WPF应用程序(它与服务器紧密集成,而不是像应用程序那样的计算器)。当客户将产品添加到购物车时,通过Web API调用“AddProductToCart(product)”,并在成功完成操作后返回“OK”。那么,我们是否应该在客户端保留购物车对象并将新添加的产品对象添加到购物车?或者不是保持这种状态,我们应该只更新UI,通知客户成功的操作,当用户导航到需要购物车中产品知识的另一个页面时,客户端查询Web API并获得新鲜数据?
如果客户端上不存在这样的模型,则服务器可以返回可以用作视图模型的DTO。但除此之外,我想我需要在客户端保留某种商业模式的修改版本(因为将业务模型实体用于客户端模型是不对的)。这会更符合MVVM架构吗?如果是这样,是否有最佳实践来形成该模型?因为我猜它需要展平,并且还要求保持一些视图特定字段。