首页 > 解决方案 > 使用 HTTP 同步表并最终更新进度条

问题描述

我有一个 WPF 应用程序,登录后需要从某些表中获取一些数据。有一些表格,例如国家只需要加载一次,而其他表格需要在每次登录/同步时更新。

由于它将通过 HTTP 工作,我想知道什么是请求数据并取回数据的最佳方法。

我正在考虑将我需要的表发送到 HTTP WebApi 端点,然后通过 json/jsonp 提供数据。这样好吗?有没有办法可以通过 HTTP 更新客户端?为了向 WPF GUI 提供同步操作的进度。

谢谢

标签: c#.net

解决方案


对于一些架构建议,您应该始终提供一些有关您将要设置的环境的更详细信息。

例如:

目前数据在哪里?

  • a) 数据存储在数据库实体中
  • b) 数据存储在本地 json 文件(或类似文件)中
  • c) 数据存储在外部 json 文件(或类似文件)中
  • ...

数据如何提供给客户?

  • a) 数据由现有的 REST API 提供
  • b) 数据将由需要开发的 REST API 提供
  • ...

等等。这将使您更容易理解您打算做什么。

但无论如何我是这样理解的:

您正计划开发一个 WPF 客户端应用程序来可视化数据。要可视化的数据需要在客户端应用程序中的每次登录时刷新。数据当前放置在可访问的数据库实体中。

为了达到这个目标,我将使用 .Net Core 创建一个 REST API。如果您的数据库实体存在于 Microsoft SQL 或 Orcale SQL 服务器中,您可以通过 NuGet 在您的 .net Core 项目中安装它们,从而将 EntityFramework for .net Core 与相应的托管数据库提供程序一起使用。

安装实体框架后,您可以轻松地将数据作为实际的 .net 对象访问。这些对象可以很容易地序列化为 json 并由 .Net Core Framework 交付。您通过在后端服务中实现所谓的控制器来提供 json。

在您的客户端应用程序中,实现一个 HttpClient 以使用您新创建的 .Net Core 后端 API。您可以轻松实现某种进度条来等待您的请求完成。

也就是说,这里有一些链接供您查找和研究我之前描述的技术:

.Net-Core 后端示例:

https://docs.microsoft.com/de-de/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.0&tabs=visual-studio

实体框架核心:

https://docs.microsoft.com/de-de/ef/core/

WPF 客户端使用 REST API 示例:

https://somedeveloperblog.com/2018/05/22/cosuming-rest-api-in-a-wpf-application/

我希望这会有所帮助。如需更详细的答案,请提供更具体的问题。

问候


推荐阅读