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

Administration SQL Server Discussion :

Installer application Visual Studio Community 2015 avec base SQL Server 2014 Express sur poste vierge [2014]


Sujet :

Administration SQL Server

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Installer application Visual Studio Community 2015 avec base SQL Server 2014 Express sur poste vierge
    Bonjour,
    Je souhaite développer une application VB (Visual Studio Community 2015) qui utilise une base de données (SQL Server 2014 Express) sur un poste de développement.
    J'ai terminé la base de données comprend 16 tables (avec relations), 5 tables principales et 10 tables de type liste de valeurs ainsi que 4 vues et contiendra quelques milliers d'enregistrements pour certaines tables.
    Cette application sera utilisée par une seule personne et sur un autre poste (toujours le même) qui utilisera la base de données en lecture et écriture

    Je voudrais installer cette application sur ce poste"utilisateur" avec le minimum de composants, tout en prévoyant des mises à jour (corrections et évolutions)

    Avez-vous des conseils ? Par exemple, composant ou méthode utilisés pour l'accès à la base de données ?
    Pouvez-vous m'indiquer la marche à suivre pour l'installation ?

    D'avance, merci pour vos retours

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    J'ai pas très bien compris : "sera utilisée par une seule personne et sur un autre poste"
    => Une seule personne qui accède à l'application depuis deux postes différents ?
    => Deux postes qui accèdent à la même base de données en simultané ?

    Pour ce qui est du programme VB, une fois compilé, vous pouvez générer un setup dans lequel vous pouvez mettre en dépendance SQL Server Express.

    Ainsi, il n'y aura rien à installer de plus que le setup.exe généré par Visual Studio.
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci pour ce premier retour.
    Ce que je voulais dire : L'application sera utilisée par une seule personne et toujours sur le même poste (différent du poste de développement)

    De plus ce poste ne sera pas connecté au poste sur lequel la base de données à été créé à l'initial.
    Donc que faut-il prévoir pour la base de données ? Faut-il la créer (ou l'installer) sur le poste cible ?
    Faut-il prévoir l'installation de SQL Server Express sur le poste cible ?

    De plus avez-vous des conseils de développement ? Par exemple, composant ou méthode utilisés pour l'accès à la base de données ?

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Plutôt que SQL Server Express, optez plutôt pour LocalDB : SQL Server et la base ne seront chargés en mémoire que durant l'utilisation du programme.
    => Légèrement plus lent au démarrage du programme, charge inférieure du poste, surtout si le programme n'est pas utilisé en permanence.

    Les fonctionnalités sont les mêmes entre LocalDB et Express : la seule différence c'est que LocalDB ne répond pas sur le réseau, et que l'instance est chargée "à la demande" plutôt qu'à l'aide d'un service.

    Pour ce qui est de la création de la base, il y a deux solutions.
    Les deux ont leur avantages et leurs inconvénients.

    1/ Déployer un backup de la base de données, ou carrément les fichiers *.mdf et *.ldf prêts à être montés.
    => Plus simple. En revanche, en cas de mise à jour du modèle des données, vous perdez tout le contenu de la base.

    2/ Déployer des fichiers SQL "version par version" contenant les instructions pour créer/modifier les objets de la base de données. Par exemple, en V1, vous avez que des "create table ..." et dans la V2, vous avez quelques "create", quelques "drop" et surtout beaucoup de "alter".
    => L'avantage c'est que vos scripts peuvent transformer les données existantes pour les adapter de l'ancien modèle au nouveau modèle. En contre-partie, le boulot est un peu plus fastidieux car vous devez écrire et maintenir ces scripts, et soit les lancer à la main au moment de l'installation, soit intégrer un module de patch dans votre programme (au démarrage, le programme vérifie la version de la base de données, et joue les scripts de modification si nécessaire).
    On ne jouit bien que de ce qu’on partage.

  5. #5
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Sinon, mise à part choisir C# en lieu et place de VB.NET, je n'ai pas trop de conseil de développement si ce n'est :
    - Utilisez absolument le connecteur natif .NET plutôt que OLEDB ou autre ODBC (plus performant et meilleur support)
    - Si demain vous devez travailler avec d'autres bases (Oracle, MySQL, Postgre, Access, DB2, osef) optez pour l'utilisation des interfaces plutôt que les classes directement dans toutes les couches "consommatrices".
    - Optez sans aucune hésitation pour des requêtes paramétrées, et usez et abusez de vues et procédures stockées (cf. l'article dans mon blog)
    - A chaque accès à la base de donnés, ouvrez et fermez explicitement la connexion à la base : .NET va faire du pooling automatiquement derrière, et ça évitera de conserver des sessions inutiles dans la base quand l'utilisateur part en pause déjeuner (bon, sur un LocalDB, c'est moins critique que sur un serveur centralisé)
    - Gérez vos transactions le plus bas possible (dans une procédure stockée par exemple) plutôt qu'à travers les couches métier de votre programme : vous éviterez les dead lock
    - J'oubliais : utilisez le compte Windows de l'utilisateur pour accéder à la base plutôt qu'un login/pass stocké en clair dans une chaîne de connexion (puis un autre stocké dans une table pour savoir qui est connecté à l'application)
    On ne jouit bien que de ce qu’on partage.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Re bonjour et re merci pour ces conseils et infos.
    Quelques questions, avant de déclarer le sujet "résolu", sur votre conseil suivant :

    Plutôt que SQL Server Express, optez plutôt pour LocalDB

    - J'ai déjà installé SQL Server 2014 Express sur le poste de développement, dois-je installer autre chose (LocalDB par ex.) et faut-il désinstaller SQL Server 2014 Express ?
    - La base de données est déjà créé, que faut-il faire pour la "passer" en LocalDB ?

    A propos des vues, je pensais n'accéder à la base qu'au travers de vues et seulement à des tables dans le cas de gestion de tables secondaires comme des listes de valeurs (code - libellé).
    - Est-ce la bonne méthode ?

    N'étant pas du tout spécialiste, je vais lire votre article sur les procédures stockées, car j'avais bien l'intuition que cela permet de regrouper le code sur la partie données !
    - Avez-vous un lien ?

  7. #7
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Michel Trebor Voir le message
    - J'ai déjà installé SQL Server 2014 Express sur le poste de développement, dois-je installer autre chose (LocalDB par ex.) et faut-il désinstaller SQL Server 2014 Express ?
    - La base de données est déjà créé, que faut-il faire pour la "passer" en LocalDB ?
    Si vous avedz déjà installé SQL Server Express, vous pouvez laisser comme ça.
    L'intérêt de LocalDB, c'est surtout de pouvoir le packager plus facilement (et réduire les soucis d'installation).
    Citation Envoyé par Michel Trebor Voir le message
    A propos des vues, je pensais n'accéder à la base qu'au travers de vues et seulement à des tables dans le cas de gestion de tables secondaires comme des listes de valeurs (code - libellé).
    - Est-ce la bonne méthode ?
    La méthode préconisée est avant tout de ne jamais accéder aux tables directement.
    Ceci pour la simple raison que si demain :
    - Vous voulez mettre en place une gestion des droits avancée (par exemple donner accès à certaines colonnes et pas à d'autres)
    - Votre modèle de données évolue
    - Vos règles de gestion et d'intégrité évoluent
    => Alors il vous faudra réécrire la moitié du code de votre programme, y compris au niveau de la couche métier.

    Si vous passez par des vues et des procédures stockées/triggers pour accéder en CRUD (create / retrieve / update / delete) à vos données, alors vous n'aurez pas autant de code à modifier en cas de changements, y compris importants au niveau de la structure des données.

    Citation Envoyé par Michel Trebor Voir le message
    N'étant pas du tout spécialiste, je vais lire votre article sur les procédures stockées, car j'avais bien l'intuition que cela permet de regrouper le code sur la partie données !
    - Avez-vous un lien ?
    Mon article n'est pas spécialement à propos des procédures stockées. Il traite surtout de la mise à jour du modèle des données sans réécrire une ligne de l'application cliente. Il explique donc comment faire abstraction du modèle physique des données (agencement des tables et des colonnes dans la base) pour exposer les objets spécifiquement nécessaires à l'application sous forme de vues et de triggers.
    Le lien, vous devriez le trouver sous mon avatar (ou au dessus, là où y'a marqué "blog" ^^)
    On ne jouit bien que de ce qu’on partage.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Petite précision, j'ai déjà installé SQL Server Express sur mon poste de développement mais aucune installation sur le poste cible.
    Je pensais avoir compris que LocalDB devait faciliter l'installation de l'application et de la base de données sur le poste cible et je veux privilégier une installation simple et minimale sur ce poste cible et donc d'utiliser LocalDB.

    Mes dernières questions concernait les modifications que je dois apporter au poste de développement :
    - Faut-il réinstaller SQL Server Express avec l'option LocalDB ou ajouter simplement LocalDB ou ... ?
    - Une fois LocalDB installé ou activé, faut-il refaire la création de la base de données ? dans ce cas je peux peut-être modifier (si nécessaire) et exécuter les scripts SQL que j'ai enregistré

  9. #9
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Non, rien besoin de toucher sur le poste de développement.
    Seule la chaîne de connexion change entre une instance et LocalDB.

    Pour ce qui est de la base, le plus simple est de distribuer avec ton application les fichiers MDF et LDF (les deux) puisque lors du démarrage de LocalDB, on peut lui indiquer d'attacher une base (en indiquant le nom du fichier MDF) :
    https://www.connectionstrings.com/sq...fic-data-file/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Server=(localdb)\v11.0;Integrated Security=true;AttachDbFileName=C:\MyFolder\MyData.mdf;
    On ne jouit bien que de ce qu’on partage.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2016
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci pour ces réponses

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/06/2016, 09h02
  2. Visual Studio Community 2015 & Blend ?
    Par Unkof dans le forum Visual Studio
    Réponses: 2
    Dernier message: 24/03/2016, 14h25
  3. Installation de Visual Studio Community Problème
    Par itecaxuodel dans le forum Visual Studio
    Réponses: 0
    Dernier message: 20/12/2015, 22h42
  4. Expiration de licence dans Visual Studio Community 2015
    Par evil duke dans le forum Visual Studio
    Réponses: 4
    Dernier message: 07/12/2015, 19h51
  5. Réponses: 3
    Dernier message: 18/11/2015, 15h42

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