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

Windows Forms Discussion :

Base de données accéssible par internet


Sujet :

Windows Forms

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Points : 0
    Points
    0
    Par défaut Base de données accéssible par internet
    Bonjour tout le monde

    Il y a environ 6 mois j'ai commencé une très grosse application.
    Cette application permet de gérer des stocks, des salaires, des commandes et plein de données d'une entreprise.

    J'ai fini de développer l'application il y a environ une semaine.
    Je l'ai faite en langage C# sous visual studio 2010 ultimate en Winforms.
    L'application fonctionne avec une base de données sous SQL server 2005 et j'ai créer une classe de connexion avec comme chemin de connexion ceci:
    connectionString = "Data Source="nomDuPC/SQLEXPRESS";Initial Catalog=BASE_DB;User ID=user;Password=motDePasse";
    (les mot en orange ne sont pas les vrai données, je ne préfère pas les donner )

    Le problème c'est que l'entreprise devient une chaîne, l'application sera donc utilisée dans plusieurs établissements.

    Il faut donc que je passe l'application d'un fonctionnement local à un fonctionnement avec une base de données accessible par internet.

    Je souhaite donc passer l'application en mode internet mais je ne sais vraiment pas comment faire. On m'a déja parlé d'application web avec ASP mais je n'y comprend absolument rien et je ne peux pas me permettre de refaire toute l'application dans un autre langage, je dois rester en Winform.

    Pour information mon programme est structuré avec des classes contenant que des requêtes SQL, d'autres des calculs, d'autre les fenêtre et une classe de connexion utilisé à chaque fois pour effectuer les requêtes SQL sur la base.

    Merci d'avance à tous ceux qui se pencheront sur mon problème

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Il faut alors que la base de données soit accessible de l'extérieur.
    L'ip locale/nom de machine dans le connectionstring doit être (pour l'extérieur) remplacée par l'ip internet/domaine.
    connectionString = "Data Source="xxx.xxx.xxx.xxx/SQLEXPRESS";Initial Catalog=BASE_DB;User ID=user;Password=motDePasse";

    Il faut également rediriger les ports du modem (exposé à internet) vers la machine où la db se trouve.

    Mais à côté de ça il y a la sécurité et le fait que l'application n'est sans doute pas adaptée pour l'internet (gros dataset de données qui transitent sur internet (en clair) -> lenteur etc)

    Peut-être que ça serait mieux dans un premier temps de travailler en terminal server...

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Merci pour ta réponse,

    Citation Envoyé par kchrel Voir le message
    Il faut également rediriger les ports du modem (exposé à internet) vers la machine où la db se trouve.
    Comment faut t'il faire pour effectuer cette action svp ? mes compétences en réseaux sont....nulle

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Sql server écoute les connexions par défaut sur le port 1433.
    Il faut donc que le port du modem (ou l'application essayera de se connecter) redirige vers le port 1433 du la machine où se trouve sql server.

    Tu dois aller dans la configuration du modem avec ton navigateur sur une adresse de type : http://192.168.0.1
    là il doit y avoir une option genre "virtual server" ou "port forwarding" (redirection?) qui permet de faire cela...

    Ca doit ressembler à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ID  	Public Port 	Private Port 	Port Type 	Host IP Address 	
    1   	1433        	1433               	TCP        	192.168.0.45
    où 192.168.0.45 est l'ip de la machine sql server.

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Pour cette problématique, on utilise généralement une solution basée sur un VPN.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    encore merci pour vos réponse plus que claires (on voit les connaisseurs)

    En revanche c'est un autre monde pour moi (mes compétences réseaux se sont arrêtées a brancher des câbles ethernet sur des switch et calculer un adressage IP).

    Quelle section du forum me conseillez vous pour que quelqu'un puisse m'expliquer le protocole à faire pour réaliser la solution ?

    Merci d'avance

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    le serveur web est t'il une solution ?

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par SkateAndDestroy Voir le message
    le serveur web est t'il une solution ?
    Cela impliquerait de refaire toute l'IHM, donc, raisonnablement non.

    En revanche, le web service peut en être une bonne.

    Tu gardes ton IHM existante, mais tu expose ta BLL via un web service; si ton appli a été proprement écrite, c'est de très loin la solution la plus économique.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Tu gardes ton IHM existante, mais tu expose ta BLL via un web service; si ton appli a été proprement écrite, c'est de très loin la solution la plus économique.
    Merci de ta réponse mais ce n'est toujours pas ce que je cherche,
    Il faut: un ordinateur dit "serveur" qui possède la base de données sous sql serveur et il faut que les applications des clients se connectent sur cette base.
    Pour le moment cela fonctionne mais uniquement en réseau local, il me faudrai une solution pour me connecter dessus en dehors du réseaux (donc en modifiant la classe de connexion avec l'adresse IP du serveur je suppose).

    N'y a t'il pas un moyen pour un programme C# de se connecter sur une base SQL serveur distante sans passer par des webServices sans retoucher tout le code ?

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par SkateAndDestroy Voir le message
    N'y a t'il pas un moyen pour un programme C# de se connecter sur une base SQL serveur distante sans passer par des webServices sans retoucher tout le code ?
    Si, un VPN, mais je crois que cela a déjà été dit.

    Il n'y pas 36 solutions; sans retouche de l'appli il y en a 2 :

    - mettre l'appli sur un serveur Citrix sur le même reséau que le serveur de base de données et faire de l'"export-display". via un VPN.

    - metttre l'appli chez les clients et accéder à la base via un VPN.

    Dans tous les cas, tu passes par la case VPN.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    ok merci, il y a des tutos pour utiliser les VPN ? Car pour moi c'est du chinois malheureusement :/

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par SkateAndDestroy Voir le message
    ok merci, il y a des tutos pour utiliser les VPN ? Car pour moi c'est du chinois malheureusement :/
    Pour cela je te conseille d'aller poser tes questions dans la partie adaptée du forum, celle concernant les réseaux.

    Tu auras beaucoup plus de chances d'avoir une réponse qu'ici sur le comment de la mise en place d'un VPN.

    Ce qui est certain c'est que si tu n'as aucune compétence en réseau, cela me parait quand même un peu difficile.

    Il faudra sans doute que ta boite fasse comme tout le monde et utilise ponctuellement des compétences externes.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Il y a un truc qui me chiffone: c'est le fait d'avoir finis l'application et de ne pas avoir réflechis à comment acceder aux données.

    Tu sembles être seul sur le projet, mais est ce qu'il n'y a personne d'autre("informaticien") dans l'entreprise?

    Pourquoi ton application nécessite d'acceder à une BDD par internet? L'entreprise devient une chaine, et donc possède plusieurs site. Mais même dans ce cas il y a normalement un réseau interne et devrait être transparent pour toi.
    J'ai du mal à cerner cette entreprise qui te laisse chercher des solutions tout seul dans ton coin, à une application qui d'apres ta description est plutôt critique...
    J'ai un peu peur que les dirigeants ne sont pas bien au courant, sur la partie informatique, des gros impacts qu'il peut y avoir sans maitrise de sa croissance...

  14. #14
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par micka132 Voir le message
    Il y a un truc qui me chiffone: c'est le fait d'avoir finis l'application et de ne pas avoir réflechis à comment acceder aux données.
    Ca m'a aussi frappé. Il semble seul à avoir travailler sur cette appli, sans se poser de problèmatique de dépenance d'architecture et de "scalability".

    Mais même dans ce cas il y a normalement un réseau interne et devrait être transparent pour toi.
    Auquel cas, un VPN existe peut être déjà.

    @SkateAndDestroy : tu n'as pas un respondable informatique dans ta boite pour te donner les infos sur l'évolution prévue de l'architecture réseau ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par micka132 Voir le message
    Il y a un truc qui me chiffone: c'est le fait d'avoir finis l'application et de ne pas avoir réflechis à comment acceder aux données.
    J'ai fini l'application qui fonctionne parfaitement en local, c'est après que l'ont m'a expliquer le changement à faire.
    Citation Envoyé par micka132 Voir le message
    Tu sembles être seul sur le projet, mais est ce qu'il n'y a personne d'autre("informaticien") dans l'entreprise?
    Je suis en effet seul sur le projet, seul le cahier des charges à été rédigé avec des employés.
    Citation Envoyé par micka132 Voir le message
    Pourquoi ton application nécessite d'acceder à une BDD par internet? L'entreprise devient une chaine, et donc possède plusieurs site. Mais même dans ce cas il y a normalement un réseau interne et devrait être transparent pour toi.
    Niveau réseau comme je l'ai déja expliqué, je n'y connais rien, donc un réseau interne je ne connais pas :/


    Mes compétences en développement sont largement suffisante pour l'application, seule cette partie me bloque mais c'est une des plus importantes.

  16. #16
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Citation Envoyé par SkateAndDestroy Voir le message
    Mes compétences en développement sont largement suffisante pour l'application, seule cette partie me bloque mais c'est une des plus importantes.
    Ce qu'il faut bien comprendre c'est que ce nest pas du tout la même chose de développer un soft local, qui ne communique avec et rien, et un soft instancié sur x postes, qui accedent à x ressources, avec x paramétrage.
    En gros il y un univers entre un ERP et une calcultatrice.
    (Je grossis volontairement le trait...).
    Schématiquement, ici tu as fait une calculatrice, et le souhait de ton entreprise c'est d'aller vers l'ERP.Il n'est pas raisonnable de penser une fois l'application terminé que tu vas pouvoir mettre ta calculatrice en réseau, et qu'elle va s'amuser à faire des opérations partagés sur plusieurs ordinateurs.

    Là ou je veux en venir, c'est que même si ton application est surement plus compliquée qu'une calculatrice et que tu l'as réalisé de la meilleur facon qui soit, ton entreprise souhaite autre chose que ce tu as conçus à l'origine.

    Partant de ce constat, tu vas commencer par faire une rustine et l'application va pouvoir fonctionner, mais jusqu'a quand? Les utilisateurs vont augmenter, certains vont se plaindre de lenteur, d'autre vont juré d'avoir sauvegardé des données et pourtant ne les trouvent pas...
    Scénario catastrophe dans 1 ou 2 ans on jette tout et on recommence.

    Je pense pas que tu as quelque chose à te reprocher, c'est plutôt l'inconscience des responsables qui est à blamer!

    Enfin bon j'en sais finalement peu sur ce qui se passe vraiment mais c'est mon ressentis par rapport à ce tu demandes .

    Sinon un réseau interne c'est simplement le fait de pouvoir acceder aux autre machines de ton entreprise. Tu peux voir la liste dans les favoris réseaux[...]. Dans ce cas là il faudra simplement changé le nomduPc de ta chaine de connexion par le pc (serveur) ou se situera l'instance de ta BDD.

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Septembre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2012
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Effectivement, ouvrir une solution réseau via le Net est pas aisée.

    Dans ma boite la solution retenue pour les accès distant a été un accès 'Remote ', qui ouvre le réseau Lan à l'extérieur. C'est basé sur une technologie VPN. Outre les applicatifs, nous avons aussi accès aux ressources du réseau, comme des répertoires partagés par exemple.

    L'avantage est qu'une fois la route tracée avec une sécurité d'authentification (nous avons chacun une clé USB qui mélangent une accréditation 'au porteur' + un code personnel 'utilisateur') , la sécurité devient identique à celle du réseau.

    Autre avantage te concernant, c'est que cette technologie est répandue, dépendant de compétences réseaux que vous pouvez sous-traiter. Et donc par ce fait, te dégager du facteur 'risque' de l'ouverture par le Net à ton applicatif, enfin surtout à tes données.

    C'est assez étrange, voire d'un autre temps, qu'un entrepreneur à dimension nationale capitalise son système d'informations sur une seule tête d'une part, et un seul volet de compétences d'autres part... Dev et Tech sont vraiment deux métiers.

  18. #18
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Merci de vos réponses, je vais terminer l'application en local en commentant mes codes sources pour qu'une personne qualifiée puisse reprendre le projet et faire un système d’accès aux données par internet.
    Dommage qu'il n'existe pas une chaîne de connexion dans laquelle il faudrait juste marquer l'adresse IP publique du serveur, cela serai tellement simple....

  19. #19
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par SkateAndDestroy Voir le message
    Dommage qu'il n'existe pas une chaîne de connexion dans laquelle il faudrait juste marquer l'adresse IP publique du serveur, cela serai tellement simple....
    Ce serait surtout une catastrophe en terme de sécurité.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

Discussions similaires

  1. Partage base de données access par internet
    Par juicy4291 dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 13/03/2011, 14h05
  2. Envoi d'une base de données MySQL par e-mail
    Par Paulinho dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/12/2005, 00h22
  3. Delphi Connexion à une base de donnée distante par TCP/IP
    Par viecel dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/01/2005, 19h19
  4. Exécutable gérant une base de données distante via internet
    Par paulgiot dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/07/2004, 14h00
  5. Synchronisation de base de données locale/distante Internet
    Par StefC30 dans le forum Développement
    Réponses: 3
    Dernier message: 25/07/2003, 14h47

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