小编Ben*_*Tan的帖子

使用 MVVM 了解应用程序流程

我很难理解在更复杂的应用程序中如何使用 MVVM。我能找到的所有示例都是非常基本的应用程序。

假设我有一个“包裹递送”应用程序。要执行交付,我必须执行 3 个步骤:

  1. 扫描包裹
  2. 输入包裹的任何损坏或问题
  3. 让收件人在设备上签名

所有这些信息都会在设备上进行验证,然后发送到后端。

在 MVC 中我会这样实现:

MVC实现

处理DeliveryController所有逻辑。这包括页面之间的导航、获取 API 数据以及在收集完所有数据后验证所有数据。

控制器充当视图之间的“连接”,收集所有信息并将其组合在一起。

但是这在 MVVM 中是如何完成的呢?所有数据将在哪里汇集?我能找到的大多数 MVVM 实现都是这样的:

在此输入图像描述

在这种情况下,每个视图中输入的数据必须传递到下一个视图,ViewModel直到到达链的末尾。此时将SignatureViewModel进行验证并进行 API 调用。这看起来很奇怪,而且会变得非常混乱,因为数据只是“传递”多个,ViewModels只是为了将其放在链的末尾。

我看到的另一个选择是每个 ViewModel 处理它自己的数据:

在此输入图像描述

例如,这里DamagesViewModel将验证并发送它自己的视图句柄的数据。这样做的一个大问题是数据没有作为一个整体发送。此外,在发送之前无法对整个数据进行任何验证。

我最后的想法是这样的:

在此输入图像描述

这增加了一个DeliveryViewModel要点,其作用类似于DeliveryControllerMVC 中的作用。它将处理哪个ViewModel下一步导航到哪个、处理要进行哪些 API 调用并在输入数据后验证所有数据。

对于我(作为一个主要使用 MVC 的人)来说,最后一个选项似乎是最明智的。但我也觉得它可能没有抓住 MVVM 的重点。

这在 MVVM 中通常是如何完成的?我真的很感激任何指点。非常感谢能够很好地解释这一点的文章链接。

另外,如果有人知道任何公开可用的存储库或项目中有这种模式,我很乐意看到它们。

c# mvvm

7
推荐指数
1
解决办法
441
查看次数

连接到其他PC上的SQL Server

我试图让我的程序,使用SQL Server,在另一台机器上可用.我知道该机器需要安装SQL Server客户端才能工作,但我想知道我的ConnectionString是否可以在我自己的PC之外工作.

我是否需要将数据库附加到项目中?如果是这样,我怎么能这样做?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=.\BENESQL;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=123qwe;" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

c# sql-server

3
推荐指数
2
解决办法
91
查看次数

标签 统计

c# ×2

mvvm ×1

sql-server ×1