从Windows客户端下载内容 - 最佳实践

时间:2010-10-28 15:33:41

标签: c# sql-server client-server

我们的应用程序是一个Windows客户端(C ++ / MFC迁移到C#),它使用SQL Server Express作为其数据存储。我们定期更新应用程序使用的数据。 (我们的用户使用我们提供的内容数据作为他们自己使用客户端构建的项目的基础;数据库也存储他们的项目,以实现跨网络的协作。

有一段时间我们使用了古老的方法来提供包含所有最新数据的巨大“更新包”。 updater必须在服务器上运行,并将数据库文件与包中包含的数据库文件交换出来。是的,可怕的做法有很多原因。我们想要废除它。

具体来说,我们将提供一个更新对话框,其中用户检查他们想要更新的项目,然后单击“更新”。然后,后台进程从内容服务器中提取所选项目并将其插入用户的数据库中。

从Windows客户端内部提取这些数据的安全方法是什么,因为他们可能会选择加入或退出数百个单独的项目?

我考虑过:

  • 与SQL Server的远程连接。直接查询数据。易于实施,但不安全。寻找更好的方法来实现这一点,提出了使用VPN或SSH的建议,对我们的客户来说,这两种设备在客户端计算机上设置都不是特别方便。
  • 提供每个单独内容项的zip文件的HTTP内容服务。或者它根据用户的请求动态构建。 (例如,我们提交一个列出所需项目的XML文件,然后服务器端进程从sql server导出数据并将其压缩到一个包中。)

其他以节目内容更新为特色的应用是如何做到的?是否有正确方向(或至少是一个好方向)的建议?

谢谢, d

编辑:我们不一定关心数据传输是否安全(内容不是敏感数据);在这种情况下,通过“安全”,我的意思是“有一种比在中国暴露远程SQL服务器更好的方式”。

1 个答案:

答案 0 :(得分:0)

直接公开SQL Server通常是一个坏主意。请改用Web服务,WCF。