【问题标题】:What is the best deployment approach for WPF applications with local database?具有本地数据库的 WPF 应用程序的最佳部署方法是什么?
【发布时间】:2010-12-08 18:53:03
【问题描述】:
  • 我想创建一个 WPF 应用程序,该应用程序存在于 一个目录 中,包括它需要的所有文件:.exe。 mdf 数据库、.xml 配置文件等
  • 应用程序应该无论在哪个目录中都可以工作,这样它才能支持这种场景
    • person 1 执行c:\temp\wpftool.exe中的应用程序
    • 应用程序读写c:\temp\wpftool.mdf 数据库
    • 第 1 个人 压缩该目录并通过电子邮件将其发送给第 2 个人
    • person 2 解压缩c:\Users\jim\documents\checkout\wpftool.exe,应用程序读取和写入该目录中的同一个数据库(c:\Users\jim\documents\checkout\wpftool.mdf
    • 第 2 个人 压缩 再次打开目录并将其发送回第 1 个人以继续对其进行更改

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

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

【问题讨论】:

    标签: sql-server wpf application-design mdf


    【解决方案1】:

    数据库端的几点:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2010-11-02
        • 2010-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-05
        • 2023-03-29
        • 2016-08-01
        • 1970-01-01
        相关资源
        最近更新 更多