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

Langages de programmation Discussion :

Quel language choisir pour un logiciel métier


Sujet :

Langages de programmation

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Points : 26
    Points
    26
    Par défaut Quel language choisir pour un logiciel métier
    Bonjour,


    Nous avons au sein de notre société de négoce un logiciel spécifique développé par une personne seule, sous AS400. Il y a 100 utilisateurs et nous faisons beaucoup de devis, de bon de prépa, de bon de livraison, de consommations clients (statistiques), d'achats fournisseurs, des suivies clients,et de la gestion de stock de plus de 20 000 références. L'AS400 fonctionne très bien mais a des lacunes au niveau de l'ergonomie de travail car tout est en mode console. Avec le développeur de notre AS400, nous avons le projet de rajouter une couche supplémentaire pour que l'utilisation se fasse en mode fenêtrée et qu'on puisse extraire les données rapidement en format PDF, word, excel...

    Pour cela je me pose une question cruciale sur le langage de développement à utiliser. J'ai deux pistes car je connais ses langages :

    1) En PHP
    Avantage : l'application se trouve sur un seul serveur (facilité des mise à jour quasi quotidienne au début de développement), possibilité d'attaquer une base DB2 rapidement, accès de n'importe où par un simple navigateur.

    Inconvenants : il faut utiliser plusieurs langages (PHP, JS, Ajax, CSS, Template) pour afficher correctement une page. Ce qui alourdie le développement et l'évolution de la solution. Incompatibilité avec les nouveaux navigateurs qu'il faut toujours tester et debuger. Difficulté pour gérer les impressions (étiqueteuses).

    2) VB.net
    Avantage : On créait rapidement des formulaires avec des actions. Il y a plein d'outils en natif (datagrid avec filtrage des colonnes, export rapide vers excel ou word, treeview...). Compatible avec tous les PC (100% de notre parc) et au pire on met à jour le framework.

    Inconvénient : Il faut installer un lien ODBC vers l'AS400 sur tous les PC car je n'ai pas trouvé de connecteur DLL à un AS400. Il faut mettre en place un système de mise à jour des postes clients car le logiciel sera déployé sur tout les PC (je ne pense pas que les 100 utilisateurs puissent accéder au logiciel en lançant tous le même executable qui serait sur un serveur de fichier).

    3) J'ai vu sur votre forum que beaucoup de développeurs utilisaient JAVA. Je ne connais pas du tout ce langage et je ne me suis jamais penché dessus car je trouve souvent les programmes développé dans ce langage assez lent (dû à la console Java qui tourne en font de tâche). Mais peut-être y a-t-il d'autres avantages ?

    Je cherche une solution rapide (type vb.net) et assez puissante (j'ai développé un soft de publishing de catalogue (1300 pages) sous vb.net, je trouve que c'est assez bien réactif). Mais surtout souple à maintenir (je serait seul à le développer, et surtout je dois continuer à administrer le réseau en parallèle). Si ça marche bien, on risque de migrer tout l'AS400 vers la nouvelle solution à long terme (comme par exemple VB + sql server, ou PHP et Mysql). J'ai vu aussi que vous parliez beaucoup de python et de "C++", et ce que ça serait aussi une piste ? (je ne suis pas un développeur hors paire, mais je connais bien le PHP pour avoir développer plusieurs site web et vb.net). J'ai longtemps développé en procédurale et je souhaiterait profiter de ce grand projet pour le faire en POO (que je commence à maitriser).

    Si vous avez des conseils à me donner je suis preneur car il ne faut pas que je me trompe dans la pose de la première pierre de l'édifice ;-)

    Merci.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 222
    Points : 28 210
    Points
    28 210
    Par défaut
    Citation Envoyé par le_binr Voir le message
    Inconveniant : Il faut installer un lien ODBC vers l'AS400 sur tous les PC car je n'ai pas trouvé de connecteur DLL à un AS400. Il faut mettre en place un système de mise à jour des postes clients car le logiciel sera déployé sur tout les PC (je ne pense pas que les 100 utilisateurs puissent accéder au logiciel en lancant tous le même executable qui serait sur un serveur de fichier).
    Si tu met l’exécutable dans un dossier partagé (ou un lecteur réseau monté sur chaque machine), lancé par un simple raccourcis depuis chaque machine, l’exécutable sera certes sur le serveur, mais automatiquement transféré et exécute dans la mémoire de chaque machine. Cela ne devrait, à priori pas posé de problème. Par contre il te faudra quand même installé le framework (si tu fais l'appli en VB) sur chaque machine.

    Par contre, tu auras des problèmes pour déployer les mises à jours. En effet, tous les utilisateurs sans exception devront avoir fermé l'application pour que tu puisse écraser l’exécutable. 2 solutions principales s'offre à toi à ce moment-là :
    - Gueuler à travers toute la boite "Tout le monde ferme l'application XXX, Merci !"
    - Programmer la copie du fichier à une heure (la nuit ?) ou l'appli n'est pas utilisée.


    Si tu fais l'appli en .Net, et que tu l'installe sur chaque machine, tu peux put-être t’intéresser aux méthodes de mises à jours automatiques soit par le code, soit en faisant un déploiement par ClickOnce. Il existe des tutos et quelques bouts de code, ici et sur le net.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    Merci pour ta réponse sevyc64.

    L'installation de l'executable dans un dossier partagé est effectivement la solution la plus simple. Mais est-ce que cette méthode peut s'appliquer si j'ai 100 utilisateurs qui l'utilisent (il faut bien sur 100 CAL windows, mais est-ce que le serveur pourra gérer tout ça ?).

    Merci pour vos conseils.

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    beaucoup plus simple => ASP.Net. ca peut utiliser du C# ou du VB.Net (beurk).

    tu as les avantages du .Net, sa puissance, ses outils, et l'avantage d'une appli Web avec un seul point de connexion au serveur AS400. et tu es sûr que chaque utilisateur utilise toujours la bonne version de ton appli.


    il faut utiliser plusieurs langages (PHP, JS, Ajax, CSS, Template) pour afficher correctement une page. Ce qui alourdie le développement et l'évolution de la solution
    c'est un peu gros ca. d'abord parce que l'ajax c'est une partie du Javascript, ensuite parce que html/css, c'est mine de rien la chose la plus simple au monde.
    Par contre, je suis d'accord pour la compatibilité des navigateurs mais si tu fais une appli d'entreprise:
    - tu ne cibles QUE le navigateur officiel et reconnu par le SI de la société
    - tu utilises les standards W3C et tu verras que les navigateurs (à part IE6) afficheront les choses à 99,8% de la même façon


    moi, vu ta problématique, le serveur web me semble clairement la solution la plus simple. sinon, comme dit plus haut, un client lourd + clickonce

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    Je ne connais pas du tout ASP.net, je vais y jetter un oeil. Par contre j'ai l'impression que VB.net n'est pas souvent bien accueilli. J'ai développé une grosse application de publishing avec VB.net et une base SQL. Grâce à ce language simple simple d'utilisation j'ai pu réaliser convenablement le projet. L'application tourne bien (rapide) et j'ai pu me consacrer plutôt à la conception qu'à l'apprentissage du language. Est-ce que j'aurai gagné en rapidité avec du C++ ou du C# ? Ca m'interesse pour l'avenir de savoir si je dois continuer mes développement futurs (il s'agit essentiellement d'applications "métier") sous VB, ou je dois en profiter pour migrer vers un autre language (C# a l'aire plus simple que C++ ou C) ?

    Quand je parle de plusieurs languages (PHP, JS, Ajax, CSS, Template), c'est pas que ce soit forcément difficile de les utiliser, mais plutôt de les faire cohabiter. Il faut souvent plusieurs fichiers pour afficher une seule page et ses actions alors qu'en VB on va directement à l'essentiel. Par exemple pour afficher des donnes dans un tableau (on en fais souvent dans un logiciel métier ;-) ), il faut une page PHP pour interroger la base SQL, du javascript pour "filtrer les données", de l'AJAX si le chargement est trop long (prévoir un loading, et qui dit AJAX dit de créer un deuxième fichier PHP (celui qui interroge la base Mysql) ), un fichier CSS pour les styles, un fichier template si par la suite on sera plusieurs à déveloper l'application. Alors qu'en vb (ou C# ;-) ) ça prend 2 secondes à créer un FORM et d'y insérer un Datagridview. Par contre c'est vrai qu'en PHP on y gagne vraiement beaucoup en maintenance car tout est sur le serveur. On peut aussi rapidement créer des "moulinettes automatiques" en "CRON". Le language parfait n'existe pas, mais j'essaye quand même de trouver celui qui sera le plus adaptés pour ne pas perdre trop de temps dans la maintenance, le déploiement ou la conception.

    Merci pour vos aides précieuses en tout cas.

  6. #6
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 222
    Points : 28 210
    Points
    28 210
    Par défaut
    VB est décrié et mal aimé pour des raisons historiques. Il est issu des héritages divers des versions précédentes et surtout des divers Basics qui ont pu exister.
    Il a, de ce fait toujours véhiculer une image de langage pour débutant, amateur, voire non développeur.
    Mais le VB.Net actuelle n'a vraiment rien à voir avec les anciens Basic, et même avec VB6, le gouffre est énorme entre les 2.

    C# est actuellement encensé, a de plus en plus de notoriété, tout comme l'a été le C, il y a pas si longtemps, tout comme l'est le C++ et le Java encore actuellement.

    Mais ceux qui tapent sur le VB et encense le C# oublient de dire que, hors mis les spécificités des 2 langages qui doivent pas représenter plus de 5% des langages, VB et C# c'est exactement la même chose.

    A fonctionnalités équivalentes, et codées de façon équivalentes, un code VB compilé sera à plus de 99% identique au code C# compilé équivalent.
    De plus, le code VB est directement traduisible à plus de 80% en C# et réciproquement (il existe des robots convertisseurs qui le font automatiquement)

    Et s'il existe des spécificités entre les 2 langages actuellement, au fils des versions futures, elles disparaitront puisque les 2 langages doivent évoluer parallèlement et de manière synchrone.

Discussions similaires

  1. Quel language choisir pour debuter ?
    Par gwlegion dans le forum Débuter
    Réponses: 11
    Dernier message: 11/01/2013, 10h34
  2. Quel language choisir pour mon application?
    Par cassegrain dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 17/05/2008, 11h22
  3. Réponses: 1
    Dernier message: 16/11/2007, 12h14
  4. Quel SGBD embarqué robuste choisir pour un logiciel en C# ?
    Par helmout dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 06/03/2007, 20h41

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