IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

DLL et gestion de données


Sujet :

C#

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 89
    Par défaut DLL et gestion de données
    Bonjour à tous,

    je suis confronter à un problème de taille :p

    j'aimerai stocker dans une dll une petite base de données clients contenant des informations comme:

    -ID client
    -Nom Client
    -Prenom Client...

    Cette dll sera utilisé par la suite par un autre programme qui viendra récupérer les informations...

    Aujourd'hui je ne sais pas comment structurer tout ça:

    -faire une liste ? mais le problème c'est que j'ai peur de saturer la ram lors du chargement de la dll.
    -créer un objet pour chaque client ? cela va faire énormement d'objet sachant que la base est constitué de quelque milliers de clients.

    Pouvez vous me donner votre point de vue sur ce problème ?

    merci

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Citation Envoyé par movlw Voir le message
    j'aimerai stocker dans une dll une petite base de données clients contenant des informations comme:

    -ID client
    -Nom Client
    -Prenom Client...
    Il y a peut-être une confusion sur l'utilité et l'utilisation d'une dll... Une dll est un bout de code qui peut-être partagé entre plusieurs applications. On ne stocke pas de données à l'intérieur ! sauf peut-être des icônes... à la rigueur. Tu ne peux pas enregistrer d'éléments dans une dll. Enfin je ne sais pas si c'est ton intention mais c'est ce que raconte ton message. Peut-être que je comprends mal ta pensée.

    Citation Envoyé par movlw Voir le message
    Cette dll sera utilisé par la suite par un autre programme qui viendra récupérer les informations...
    Oui on partage une dll avec un ou plusieurs assembly

    Citation Envoyé par movlw Voir le message
    -faire une liste ? mais le problème c'est que j'ai peur de saturer la ram lors du chargement de la dll.
    -créer un objet pour chaque client ? cela va faire énormement d'objet sachant que la base est constitué de quelque milliers de clients.
    Dans ta dll tu peux créer une classe qui permet d’interroger ta base de données.
    Tu peux également créer une classe qui représente un client (nom, prénom, société, adresse, etc...). En fait toutes les colonnes de la table client dans ta base de données.
    Une méthode qui te permet de récupérer tes clients dans une autre classe qui utilise ta classe de pilotage de la base et qui te retourne une liste de clients.

    Question RAM cela dépend vraiment de ce que tu as dans ta base de données.
    Si ça se limite à 15 colonnes type string ou int ne t'inquiète pas on a de bon PC maintenant et puis 15 * (int)8 octets * 5000 clients = 585 Ko. Ça devrait passer. Sauf si pour chaque client tu stockes une vidéo de présentation du client; là je dis attention.
    Bref peut-être que tu peux récupérer de façon "intelligente" certains clients au moment où tu souhaites afficher ? Libérer la RAM une fois l'affichage ou la modification effectuée ? Dans le sens où il est inutile de te brimbaler 5000 clients tout au long de l'exécution de ton logiciel.
    Tout dépend après de la représentation graphique que tu veux donner à des clients. Question de la pertinence de l'affichage de 5000 clients ? Tout ça tout ça...

    Je ne sais pas si j'ai répondu à ta question ? C'était assez ouvert donc voilà au moins mon point de vue

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 89
    Par défaut
    malheureusement je ne peux pas interroger la base de données.

    Lorsque je fais appelle à la dll, elle est chargée en mémoire ?

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    C'est à dire tu ne peux pas interroger la base de données ?
    Pas de BDD = pas de données

    Lorsque tu fais appel à la Dll, la Dll est chargée en mémoire. La base de données non.
    La dll te donne accès à un ensemble classes, attributs et de fonctions. Non pas aux données de ta base de données.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 89
    Par défaut
    disons que j'aimerai embarquer une application et la dll dans une clé usb pour lire les données directement dessus, je vais également mettre en place une clé pour protéger les infos.

    D'ou la question

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par movlw Voir le message
    disons que j'aimerai embarquer une application et la dll dans une clé usb pour lire les données directement dessus, je vais également mettre en place une clé pour protéger les infos.

    D'ou la question
    Tu peux peut-être ajouter une ressource à ton projet, genre un fichier XML qui ferait office de base de données?

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 89
    Par défaut
    Bonne idée ! du coup le fichier xml est lui aussi compilé avec la dll donc protégé ?

  8. #8
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    bonsoir,

    nul besoin de tergivercer..... cherche du côté de la serialisation xml.
    Il y a des exemples dans des discussions recentes sur les forums vbnet et c#

    @+

  9. #9
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Je m'excuse mais je n'ai jamais entendu parler d'un fichier ressource dans lequel on peut lire et écrire et qui est compilé dans une dll...

  10. #10
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Tu as aussi l'option d'embarquer une base de données fichier avec SQL Compact Edition.

    Tu auras un fichier .sdf et tu peux complètement tout faire tourner sur une clé USB. C'est facile, simple, rapide... Et si tu veux vraiment du SQL, beh tu seras servi...

    Un coup de nuget, et basta !!!

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 89
    Par défaut
    il n'y a donc aucun moyen stocker intelligemment une "base de donnée" dans une dll ?

  12. #12
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Ce n'est pas fait pour ça. Ça sert à stocker du code : https://msdn.microsoft.com/fr-fr/lib...(v=vs.90).aspx

    De plus les données d'application sont les bienvenues dans le répertoire AppData depuis > XP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	var repAppDataApplication = new DirectoryInfo(
    						Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
    						, Application.CompanyName
    						, Application.ProductName));
    Là tu peux placer ton fichier de base de données (SqlCe, SQLite, MongoDBn, Firebird, etc...) l'utilisateur ne viendra pas y farfouiller par hasard

  13. #13
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 89
    Par défaut
    Il donc impossible d'accompagner un logiciel d'une "base de données" qu'on pourrait stocker dans un fichier dont l'accès est sécurisé et controlé ?

  14. #14
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    le problème vient que tu pars du principe qu'une dll c'est sécurisé
    mais ca ne l'est pas du tout, on peut voir ce qu'il y a dedans, et même s'il est possible techniquement d'avoir une base de données dans une dll, on peut décompiler la dll facilement ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 89
    Par défaut
    A bon ? Je pensais qu'une dll était impossible à décompiler

  16. #16
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    en .net ca se fait en un clic
    sur d'autres langages ou sur .net native c'est un peu plus compliqué mais c'est faisable
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  17. #17
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 89
    Par défaut
    En un clic il est peut être possible de récupérer le nom des classes les attributs les fonctions mais pas le contenu des fonction

  18. #18
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Je rejoins Pol63 que je salue au passage, des outils comme :

    - Dnspy (editeur d'assembly, decompileur et debugger)
    - Reflector (decompileur et debugger)
    - DotPeek (decompileur)

    ...etc ...et j'en oublie certainement ....

    permettent aisément d'accéder en clair au code source d'une application ou d'une librairie de classes.

    Les obfucateurs comme :

    - Confuser
    - ConfuserEx
    - Smart assembly
    - DotFuscator
    - AppFuscator

    ...et j'en oublie bien d'autres ...

    sont deobfuscable grâce au renommé outil :

    - De4Dot
    - et bien d'autres outils home made by CodeCracker

    Voilà en somme à quoi se résume la sécurité en DotNet !
    Si tu veux une application sécurisé il faut soit :

    - changer de langage de programmation (exclure le DotNet ou un langage interprété)
    - conserver le langage DotNet mais opté pour un échange de données sécurisé type client/serveur, protocole de cryptage avec hébergement du noyau de ton code source côté serveur
    - coder un obfuscateur maison (j'en avais codé un perso que j'ai rendu publique : DotNetPatcher c'est pour cela que je parle de tout ça en connaissance de cause) combiné au protocole de sécurisation Server side (ligne précédente)

    A+

  19. #19
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 89
    Par défaut
    Tout est beaucoup plus clair merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/01/2007, 10h41
  2. Dll et tableaux de données
    Par paradise dans le forum Delphi
    Réponses: 4
    Dernier message: 03/07/2006, 19h05
  3. Réponses: 9
    Dernier message: 09/05/2006, 16h11
  4. Réponses: 9
    Dernier message: 17/04/2004, 16h32
  5. Réponses: 3
    Dernier message: 24/11/2003, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo