WinForms客户端与远程SQL Server通信和共享数据文件的最佳方式

本文关键字:数据 共享 文件 方式 最佳 通信 客户端 Server SQL WinForms | 更新日期: 2023-09-27 17:52:48

在Google上搜索了很多之后,冒着问一些愚蠢问题的风险,我需要一些帮助。我正在使用ADO开发一个c# WinForms客户端应用程序。从位于Internet上的SQL Server 2012数据库中读取/写入数据。同样的应用程序还需要上传/下载数据文件。客户端应用程序将仅由少数员工使用(永远)。员工都在不同的地方。数据库只有大约20mb。将有大约100个数据文件,总计约300mb,定期单独访问。SQL Server 2012运行在一台(非虚拟的)我们完全控制的Windows Server 2008 R2机器上。客户端应用程序将在Win-XP和Win-7机器上运行。

优先级为1。互联网安全——防止黑客进入Windows服务器机器和客户端/服务器通信。2. 性能。3。简单。企业安全性和可伸缩性不是问题。此外,如果解决方案非常复杂,性能也不那么重要。

两个相关的问题我真的需要帮助:

  1. 给定上述优先级,与数据库通信的最佳方式是什么?我找到的唯一两个选择是独家;

  2. 考虑到上述优先级,上传/下载数据文件的最佳方式是什么?我相信有很多选择使用VPN, WCF, FTP;但我不知道具体细节。此外,使用SQL Server 2012 FileTable看起来很有希望,但我不确定如何在网络上工作。备份/恢复加上能够对数据进行全文搜索将是很好的功能,但不是要求。

我知道VPN是什么,但从来没有使用过一个用于这些目的。我知道PPTP有一些安全问题,但我们暂时不会升级XP机器。我知道WCF服务是什么,但从来没有写过。我也不知道在这种情况下SOAP和REST哪个更好。我在SQL Server中建立了一个FileTable,但我不知道如何远程访问数据。我对c#, ADO有一定的了解。. NET和SQL Server。

我知道这些都是有主观答案的大问题。不过,我还是希望大家能给我一些建议,或者给我一些建议。

WinForms客户端与远程SQL Server通信和共享数据文件的最佳方式

保持简单并使用标准机制。我的建议如下:

  • 构建一个能够执行所需操作的WCF服务。您可以构建SOAP或RESTful服务。我在这里的一般指导是构建RESTful服务,因为您要传输文件,这与REST集成得更好。使用SOAP,您需要修改一些设置来传输大文件。
  • 使用SSL保护服务,保持简单。VPN是一个额外的复杂性层,在这个场景中很可能不需要。此外,它只会让用户的体验变得不那么友好。
  • 我将不建议在SQL Server 2012中使用FileTable来满足您的需求。您拥有服务器,所以当您发送和接收文件时,处理文件系统将更加直接。
  • 您还可以构建一个简单的表单身份验证过程,该过程为用户创建会话密钥并将其传递回去。我不确定这是否必要,但如果你需要额外的一层,就把它作为一个操作。然后,可以将该会话密钥传递到每个方法中,并在执行操作之前进行验证。

这是一个教程,将帮助您完成构建RESTful WCF服务,它是相当新的。

我的建议是部署一个VPN服务器来提供您正在寻找的安全性。有许多好的VPN服务器可用,谷歌搜索应该提供许多不同价格点的选择。

一旦你部署了VPN服务器(和客户端到所有不在你的本地网络上,你希望能够访问数据库的计算机),你可以使用ADO。. NET访问数据库。ADO。. NET将在VPN后面无缝地工作。

从你的问题的上下文中,我假设文件存储在数据库之外的文件系统中,数据库仅仅引用这些文件。如果是这种情况,您可以使用任意数量的选项来下载文件,但是FTP是一种久经考验且易于实现的解决方案。在您的情况下,还有其他方法可能会更好,也可能不会更好(请参阅这里的一些选项)。