使用本地数据库的WPF应用程序的最佳部署方法是什么?

时间:2009-10-21 16:24:17

标签: sql-server wpf application-design mdf

  • 我想制作一个 WPF 应用程序,该应用程序存在于一个目录中,包括所需的所有文件: .exe 。 mdf 数据库, .xml 配置文件等
  • 应用程序应该无论它在哪个目录中,以便它支持此方案
    • person 1 c:\temp\wpftool.exe
    • 中执行应用程序
    • 应用程序读取并写入c:\temp\wpftool.mdf 数据库
    • person 1 拉链上该目录并通过电子邮件发送给第2个人
    • person 2 解压缩它到c:\Users\jim\documents\checkout\wpftool.exe,应用程序读取并写入该目录中的同一个数据库(c:\Users\jim\documents\checkout\wpftool.mdf
    • person 2 拉链该目录再向上发送给第1个人继续对其进行更改

创建支持上述场景的WPF应用程序的最佳方法是什么?,考虑到:

  • 应该有没有 硬编码数据库连接字符串
  • 什么是最好的部署 方法,点击一次?或者只是将.exe文件从/ release目录中复制出来?
  • 合理的安全性,以便用户必须根据数据库中的密码登录,如果第三个人碰巧拦截了电子邮件,他就无法轻易查看数据库中的数据

2 个答案:

答案 0 :(得分:1)

数据库方面的一些要点:

假设“新用户”已经安装了SQL,他们需要附加(新复制的)数据库。除了具有足够的访问权限来附加数据库之外,您的应用程序还需要配置调用以包含包含数据库文件的drive \文件夹。如果您的.exe可以动态识别它的“新主文件夹”,您应该能够解决这个问题。

定义“合理的安全性”。我得到的任何数据库文件,我都可以打开,审查并最终弄清楚(取决于内容的模糊程度)。您可以混淆数据,例如使用表“A”而不是“客户”吗?你真的想要吗?最好的安全性涉及数据加密,并且管理它 - 特别是加密密钥 - 可能是一个非常高级的主题,具体取决于您希望数据的安全性。

答案 1 :(得分:1)

对于数据库,我将研究在SQL Express中使用"user instance" feature。结合| DataDirectory |替换字符串支持它使您的应用程序很容易被连接起来。

说实话,我已经没有部署了一个ClickOnce应用程序,我自己也采用了这种方法,但我只是想我会引起你的注意,因为如果我正在构建一些东西,那就是我自己会看到的东西就像你描述的那样。