2009-10-21 13 views
0
  • Je veux faire une application WPF qui existe dans un répertoire y compris tous les fichiers dont il a besoin: .exe, .mdf base de données, .xml fichiers de configuration, etc.
  • l'application devrait fonctionner peu importe quel répertoire il est en ce qu'il prend en charge ce scénario :
    • personne 1 exécute l'application dans c:\temp\wpftool.exe
    • l'application lit et écrit à la c:\temp\wpftool.mdfbase de données
    • personne 1 zips jusqu'à ce répertoire et il envoie à personne 2 par e-mail
    • personne 2 unzips à c:\Users\jim\documents\checkout\wpftool.exe, l'application lit et écrit dans la même base de données dans ce répertoire (c:\Users\jim\documents\checkout\wpftool.mdf)
    • personne 2 zips le répertoire à nouveau et le renvoie à personne 1 à continuer apporter des changements sur ce

Quelle est la meilleure façon de créer une application WPF qui prend en charge le scénario ci-dessus?, considérant:Quelle est la meilleure approche de déploiement pour les applications WPF avec base de données locale?

  • il devrait y avoir aucune chaînes de connexion base de données codées en dur
  • ce qui est le meilleur déploiementméthode, cliquez une fois? ou copiez-vous simplement le fichier .exe hors du répertoire/release?
  • sécurité raisonnable afin que les utilisateurs doivent se connecter en fonction des mots de passe dans la base de données, et si une tierce personne arrive à intercepter le regard e-mail, il ne pouvait pas facilement les données dans la base de données

Répondre

1

Certains points du côté de la base de données:

En supposant que le «nouvel utilisateur» a déjà installé SQL, ils doivent attacher la base de données (nouvellement copiée). En plus d'avoir les droits d'accès suffisants pour attacher une base de données, votre application doit configurer l'appel pour inclure le dossier drive \ contenant les fichiers de base de données. Si votre fichier .exe peut identifier à la volée son "nouveau dossier de départ", vous devriez être en mesure de le faire.

Définir "sécurité raisonnable". N'importe quel fichier de base de données que je reçois, je peux ouvrir, revoir, et finalement comprendre (dépend de l'obscurité du contenu). Pouvez-vous obscurcir vos données, telles que l'utilisation de la table "A" au lieu de "Client"? Voudriez-vous vraiment? La meilleure sécurité possible implique le cryptage des données, et la gestion de ces données - et en particulier des clés de cryptage - peut être un sujet très avancé, en fonction de la sécurité de vos données.

1

Pour la base de données, je voudrais utiliser le "user instance" feature dans SQL Express. Combiné avec le | DataDirectory | support de chaîne de substitution, il est très facile pour votre application de se brancher.

En toute honnêteté je pas déployer une application ClickOnce tirant parti moi-même approche, mais je pensais juste que je porterais à votre attention car il est ce que je regardais en moi-même si je construisais quelque chose comme vous avez décrit.

Questions connexes