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 :

C# et database locale


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Par défaut C# et database locale
    Bonjour à tous,

    Alors voilà j'ai une interrogation sur une appli que je vais démarrer.
    Je sais utiliser C# avec une base de données Sql Server ou autre, çà c'est pas le soucis.
    Ce que j'aimerais cette fois-ci c'est utiliser avec une base locale, car je ne pourrai pas installer de serveur sur la machine qui va héberger l'appli.
    Donc, est-ce possible d'utiliser une base locale sous forme de fichier par exemple, sans sql server ou express ou sqlite ou autre (bref, sans serveur :-)) et la cerise serait que ce soit multi-utilisateurs simultanés ?
    Bien évidemment, si oui, comment ?
    Merci d'avance

  2. #2
    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
    Bonjour

    SQLite ne demande pas de serveur...

    Sinon, SQL Compact Edition (mais certains ici n'aiment pas du tout)...

    sinon, avec la dernière version de VS 2012 (ou 2013, je ne sais plus), il y a la possibilité d'ajouter une base locale (sans SQL Server ou autre).

    Pour le multi-utilisateurs, à toi de gérer la concurrence (comme pour SQL Server).

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    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 202
    Par défaut
    le choix dépend de ta base
    si elle doit faire 500Mo et mono utilisateur, alors oui une base fichier irait
    si c'est pour du multi user, il faut une base réseau, certaines bases fichiers peuvent s'utiliser en partageant un dossier (comme access)
    sqlite est censé être bien, je ne sais pas s'il faut multi accès par contre

    après sql server (le vrai) ne nécessite pas forcément d'avoir un serveur physique, tu peux l'installer sur un poste client et dire de ne pas éteindre le pc car il sert de serveur pour les autres

    donc il faudrait détailler un peu (taille, nb tables, utilisation locale ou réseau, nb requetes minutes, etc...)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Par défaut
    Merci pour vos conseils.
    Pour être un peu plus précis : une 15aine de tables, 100Mo Max, à la louche 200 requêtes/h, multi-user impératif
    En fait l'accès à l'appli se fera via RDP.
    J'aurais donc voulu un .exe avec un fichier comme base, car c'est un peu compliqué à expliquer, mais j'aimerais éviter l'installation d'un quelconque SGBD et c'est là que je ne sais pas si c'est possible.
    Si je ne trouve pas de solution assez souple et sans trop de contraintes, ben tant pis, j'en ferai mon deuil et passerai comme d'hab sur Sql Server.

  5. #5
    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
    d'un autre coté, vu que le multi-user est impératif, il me semble raisonnable de mettre un SQL Server en face pour couvrir les besoins...

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    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 202
    Par défaut
    les 3/4 des bases de données fichiers ne requiert qu'une dll (à côté de l'exe par exemple)
    c'est le cas d'sqlite
    concernant access, msjet est en général fournit avec windows (dll x86 permettant d'accéder à une base access) ; en x64 il faut installer ace ole db

    d'après un post sur sqlite de 2011 (à vérifier aujourd'hui car tout évolu) il verrouillerait toute la base pendant un accès, ce qui ne serait pas forcément génial pour du multi user, à ma connaissance access n'a pas se comportement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre très actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    Bonjour

    SQLite ne demande pas de serveur...

    Sinon, SQL Compact Edition (mais certains ici n'aiment pas du tout)...
    C'était pourtant un bon composant mais il est "deprecated" maintenant.

    SQL Server compact edition is in deprecation mode with no new releases planned near future

  8. #8
    Membre très actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Par défaut
    Bonjour
    Citation Envoyé par gadsweb Voir le message

    Je sais utiliser C# avec une base de données Sql Server ou autre, çà c'est pas le soucis.
    Ce que j'aimerais cette fois-ci c'est utiliser avec une base locale, car je ne pourrai pas installer de serveur sur la machine qui va héberger l'appli.
    La solution évitant l'installation est d'utiliser LocalDb. (c'est un serveur mais local à l'application, contrairement à Sql Server CE qui est une base "in process").

    http://blogs.msdn.com/b/sqlexpress/a...l-express.aspx

    Mais de quel type d'applicaition s'agit-il ? une application "client lourd" en multi-utilisateurs ? Dans ce cas, je ne vois pas d'autres solution que Sql Server Express (a minima).

    Bref, il faudrait plus d'infos.

  9. #9
    Membre chevronné Avatar de pascalCH
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut
    Citation Envoyé par gadsweb Voir le message
    Merci pour vos conseils.
    Pour être un peu plus précis : une 15aine de tables, 100Mo Max, à la louche 200 requêtes/h, multi-user impératif
    En fait l'accès à l'appli se fera via RDP.
    J'aurais donc voulu un .exe avec un fichier comme base, car c'est un peu compliqué à expliquer, mais j'aimerais éviter l'installation d'un quelconque SGBD et c'est là que je ne sais pas si c'est possible.
    Si je ne trouve pas de solution assez souple et sans trop de contraintes, ben tant pis, j'en ferai mon deuil et passerai comme d'hab sur Sql Server.
    vu la volumétrie, si tu t'en sens capable, ça tient en mémoire, tu coupe l'appli en deux un service avec la base, l'appli dessus, en ouvrant le service tu fais tu concurent

  10. #10
    Membre très actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Par défaut
    Citation Envoyé par pascalCH Voir le message
    vu la volumétrie, si tu t'en sens capable, ça tient en mémoire, tu coupe l'appli en deux un service avec la base, l'appli dessus, en ouvrant le service tu fais tu concurent
    Ca peut être une solution mais il faudra bien qu'il gère la persistance à un moment donné, et on ne connait pas son niveau de criticité de ce coté.

  11. #11
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    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 202
    Par défaut
    Citation Envoyé par François M. Voir le message
    La solution évitant l'installation est d'utiliser LocalDb.
    ca n'évite en rien une installation, c'est un setup de quelques centaines de Mo

    la question serait surtout pourquoi il ne veut pas installer sql server ?
    il nous manque aussi le nombre de user max (et si le nombre de requetes /h est par user ou tout user confondu)

    j'aime pas access, mais il semble pouvoir convenir (même si sql server serait mieux, le meilleur n'étant pas toujours nécessaire)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre très actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    ca n'évite en rien une installation, c'est un setup de quelques centaines de Mo
    Oups, exact.

    j'aime pas access, mais il semble pouvoir convenir (même si sql server serait mieux, le meilleur n'étant pas toujours nécessaire)
    Oui, mais Access doit être installé aussi.
    Dans ce cas, autant installer Sql Server Express (et ça évite les bizarreries d'Access en terme de SQL, etc ..)

  13. #13
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    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 202
    Par défaut
    access n'a pas besoin d'être installé, comme dit précédemment jet (x86) est présent avec windows
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Membre très actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    access n'a pas besoin d'être installé, comme dit précédemment jet (x86) est présent avec windows
    C'est vrai; mais comme il ne m'était jamais venu à l'idée d'utiliser ce machin (sauf pour accéder en mode Db à des classeurs Excel), je l'avais quelque peu oublié.

    Ce ne change rien au fait que son accès concurrent est quand même très bricolo. (on est en mode fichier)

  15. #15
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    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 202
    Par défaut
    Citation Envoyé par François M. Voir le message
    C'est vrai; mais comme il ne m'était jamais venu à l'idée d'utiliser ce machin
    c'est vrai qu'autant des trucs qu'on ne connait pas, on ne pense pas à les utiliser, mais là même en le connaissant c'est difficile d'y penser quand même ^^

    Citation Envoyé par François M. Voir le message
    sauf pour accéder en mode Db à des classeurs Excel
    en .net on peut accéder directement à un fichier excel avec system.data.oledb, comme pour une base access (tout le CRUD fonctionne, create table créé une feuille ...)
    et c'est d'ailleurs énormément plus performant que de l'interrop
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  16. #16
    Membre très actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    en .net on peut accéder directement à un fichier excel avec system.data.oledb, comme pour une base access (tout le CRUD fonctionne, create table créé une feuille ...)
    Je parlais de l'accès en utilisant une connexion Jet OleDB, bien sur, pas de l'interop. (qui de plus ne peut - enfin ne doit pas ... - être utilisé sur une appli serveur du fait de ses problèmes récurrents de stabilité).

  17. #17
    Membre chevronné Avatar de pascalCH
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut
    Citation Envoyé par François M. Voir le message
    Ca peut être une solution mais il faudra bien qu'il gère la persistance à un moment donné, et on ne connait pas son niveau de criticité de ce coté.
    Perso sur une liste de liste d'objet, je prend la serialisation XML associée à un timer.

  18. #18
    Membre très actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Par défaut
    Citation Envoyé par pascalCH Voir le message
    Perso sur une liste de liste d'objet, je prend la serialisation XML associée à un timer.
    Ce qui suppose un niveau faible de criticité (tu ne vas pas persister 100 Mb toutes le secondes).

Discussions similaires

  1. [MySQL-5.1] Database connection local instance MySql55
    Par janyoura dans le forum Installation
    Réponses: 0
    Dernier message: 08/07/2013, 23h26
  2. Réponses: 6
    Dernier message: 30/09/2010, 11h49
  3. Publier siteweb avec database(sqlserver) on local
    Par Namson dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/07/2009, 12h08
  4. Commande "backup database" sur une base locale mdf
    Par boby62423 dans le forum Administration
    Réponses: 3
    Dernier message: 02/04/2009, 10h50
  5. Travailler avec les "Local Database" de .net 2008
    Par Faladin dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/05/2008, 17h33

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