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

Eclipse Platform Discussion :

Développement d'applications RCP - Marche à suivre


Sujet :

Eclipse Platform

  1. #1
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut Développement d'applications RCP - Marche à suivre
    Bonjour,

    J'ai lu quelques tutoriels sur le développement d'applications RCP et j'ai décidé d'essayer de développer un logiciel de gestion d'heures grâce à cette technologie.

    Par logiciel de gestion d'heures, j'entends un logiciel qui permet aux employés de s'identifier et de saisir les heures qu'ils ont passées dans la journée sur différents projets, avec à la fin du mois un rapport détaillé à imprimer. Par la suite j'aimerais intégrer des tarifs de facturation et pouvoir ainsi sortir des données prêtes à facturer en fonction des tarifs et du nombre d'heures passées par les employés sur un projet donné.

    N'étant pas encore du tout à l'aise avec RCP, j'aurais besoin d'un petit coup de main pour définir une marche à suivre.

    Typiquement, faut-il créer un seul plugin qui gère l'application entière ? Ou faut-il découper le plus possible chaque fonctionnalités en un plugin ?

    Pour ce qui est de la base de données, quand faut-il effectuer la connexion ? Faut-il créer une classe utilitaire qui permet de récupérer la connexion ou de la créer si elle n'existe pas encore ou y a-t-il une meilleure façon de faire ?

    De plus, j'aimerais au final avoir également une application RAP de manière à ce que mon application soit accessible via internet, y a-t-il des choses importantes auxquelles il faut penser déjà maintenant ?

    D'avance un grand merci pour votre retour d'expériences

  2. #2
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 469
    Points : 2 997
    Points
    2 997
    Par défaut
    Citation Envoyé par doons Voir le message
    Typiquement, faut-il créer un seul plugin qui gère l'application entière ? Ou faut-il découper le plus possible chaque fonctionnalités en un plugin ?
    En general, il est preferable de separer l'application en blocs de fonctionnalites a peu pres independantes, et de mettre dans chaque plugin un bloc de fonctionnalites.
    Mais pour demarrer, tu peux tout faire dans un seul plugin, et tu pourras le refactorer plus tard. La maniere d'organiser le project devient vraiment importante si tu fournis des API, ou que tes plugins sont embarques dans d'autres applis RCP. Tant que tu n'as pas ca, ce n'est pas super grave de tout faire dans 1 seul plugin.

    De plus, j'aimerais au final avoir également une application RAP de manière à ce que mon application soit accessible via internet, y a-t-il des choses importantes auxquelles il faut penser déjà maintenant ?
    Oui, RAP n'est pas vraiment miraculeux, c'est pratique, mais au final l'ergonomie d'une appli RCP sur RAP n'est pas vraiment adaptee au Web, et encore moins au mobile, et RAP a quand meme des lacunes de performances. Je te conseille d'essayer les demos RAP et de les acceder a distance (pas juste sur un reseau local) pour tester si ca te convient ou non avant de l'adopter.
    En autre truc rigolo pour montrer des applis RCP dans un browser, tu as Guacamole, qui fait un pont entre Xvnc et HTML5, et qui permet de rendre des applis RCP dans un navigateur. Exemple: https://github.com/rlucente-se-jboss/jbds-via-html5 et la video: http://vimeo.com/95063680#t=5m8s
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

  3. #3
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Hello,

    Merci beaucoup pour tes réponses.

    Finalement, pour ce qui est de RAP, effectivement, les performances sont à prendre en compte. Du coup tu privilégierais plutôt guacamole ?
    J'y ai juste jeter un œil en vitesse mais ça à l'air pas mal.

    Sais-tu par contre s'il y a des adaptations de code à faire de l'application RCP, des principes de fonctionnement à tenir compte pour utiliser cette techno, comme pour RAP ?

    Encore merci

  4. #4
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 469
    Points : 2 997
    Points
    2 997
    Par défaut
    Je n'ai pas vraiment utilise ni RAP, ni guacamole, j'ai juste essaye des demos. Le fait que RAP ne scale pas vraiment a l'echelle d'Internet (mais peut faire l'affaire sur un reseau local avec quelques utilisateurs) s'applique surement aussi a guacamole en fait. Le probleme est que ce genre de mechanisme de mapping Web browser sur une appli distante peut entrainer un grand nombre de communications client-serveur et si tu as un gros ping ou un petite bande passante, ca induit un decalage genant entre les evenements dans le browser et le moment ou ils sont receptionnes par l'appli distante.

    J'imagine qu'avec guacamole, il n'y a pas du tout de changement a faire sur ton application. C'est en fait les evenements du browser qui sont transformes en evenement Xvnc, et l'image que tu recois et quasiment comme du streaming d'un ecran distant. En fait, guacamole semble etre une "simple" passerelle vnc en HTML5. Il doit marcher pour a peu pres toute les applis qui tournent sous Linux. Bref, tout cela est sur des couches bien en dessous de SWT ou de ton application, ce qui ne doit rien changer dans ton appli.

    Au final, ces mechanismes sont pratiques pour permettre de tester ou dans un reseau local pour eviter a des utilisateurs occasionnels d'installer l'appli, mais si tu veux vraiment un truc fonctionnel, efficace et qui scale dans un browser, il vaut mieux developper dans un veritable techno web que mapper des technos desktop.
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

  5. #5
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    ok merci bien.

    Je trouvais cool de pouvoir avoir une UI sympa dans une appli web (style RAP).
    J'ai pas l'impression qu'avec une appli web standard on puisse avoir une UI aussi élaborée et
    j'ai un peu le sentiment que les fonctionnalités doivent aussi être revue à la baisse.

    En même temps j'ai pas encore d'expériences dans le dev web, je me trompe surement.

    Qu'en dis-tu ?

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Points : 484
    Points
    484
    Par défaut
    Voici un lien vers une présentation d'une application Single Source : RCP ( Client Riche) + RAP (RIA) + Tabris (Mobile)
    http://www.eclipsecon.org/europe2012...Web_Mobile.pdf

    Tu devrais trouver la vidéo de cette présentation quelques part sur le Web.

    Tu as là le cas d'une appli de gestion assez abouti qui marie les technos Client Riche (Eclipse RCP) + les technos Web et mobiles.

    Regardes-bien l'historique de cette application :
    - Ils ont commencé avec un seul client et une appli RCP.
    - Avec le temps ils ont eu besoin d'évoluer vers des technos web et mobiles.

    Dans ce cas l'utilisation des technos RAP et Tabris se justifie.
    - L'éditeur capitalise sur ses devs en Eclipse RCP
    - Les clients gardent pratiquement la même IHM sur les 3 supports.
    - Nombres de clients Web limités: quelques dizaines, peut-êtres quelques centaines pas plus.

    Les technos RAP et Tabris viennent en complément d'une première application Eclipse RCP.

    Regardes aussi les dates dans le .ppt:
    - création de l'appli RCP : 2007.
    - création des applis web : 2010.

    Est-ce que la société ferait les mêmes choix technologiques aujourd'hui pour les parties web et mobile ?
    Sur ma dernière application Eclipse RCP, la partie Web & Mobile a été développée en angularJs et absolument pas en RAP ni en Tabris.

    Dans ton cas quels sont tes besoins :
    - Est-ce que tu as besoin de faire un client riche, et d'avoir en complément un client web ?
    - Est-ce que tu as besoin de faire uniquement un client web ?

    Dans le premier cas tu peux tester le couple RCP + RAP. Pour RAP tu devras regarder les problèmes de performance.

    Dans le second cas, laisse tomber RAP, et intéresse toi aux stacks pures Web.

    En tant que développeur Eclipse RCP, allergique au JS et au HTML (et oui ça existe encore), j'aurai adoré que Eclipse RAP soit une techno prometteuse pour le développement d'application RIA.
    RAP reste une techno d'accompagnement d'un projet Eclipse RCP principal.

  7. #7
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonsoir doons,

    Ca date un peu mais j'avais écris pas mal d'article sur RCP/RAP :

    • http://angelozerr.wordpress.com/about/rap/ : explique pas a pas comment mettre en place une application RAP.
    • http://angelozerr.wordpress.com/about/eclipse_spring/ : explique pas a pas comment mettre en place une application RCP et RAP basé sur Spring DM, Spring Data (avec JPA) et Spring Remoting. A la fin des articles, tu as une petite application RCP, RAP qui affiche une liste de données pagniées dans une ViewPart 3.x. L'application RCP peut aussi être utilisé en mode client lourd ou client serveur (sans changer un seul morceau de code, mais en ajoutant un plugin de remoting au lancement d'Equinox).


    Comme je l'ai dit ca date un peu, mais peut etre que ca pourra t'aider.

    Angelo

  8. #8
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Bonjour,

    Merci beaucoup pour toutes ces réponses.

    J'ai réfléchi aux besoins. Ma société comporte différents locaux, dans des villes différentes et tout le monde doit pouvoir accéder à l'application le plus simplement possible et
    sans avoir de problèmes de lignes / connexions.

    Je vais donc partir sur des technos web.
    Pour avoir un minimum de notions avant de faire des choix, j'ai lu un livre, pour au moins savoir un peu de quoi est fait une appli web.

    Il parle de servlet, javabean, JSP, JSF entre autres.

    Quelles technos me conseillez vous pour développez mon appli ? J'ai pas mal développé en Java, je partirais sur cette base.
    Après, struts, JSF, Primesfaces sont des termes que j'ai entendu, mais de là à faire un choix... j'aurais besoin de votre expérience

    Merci pour votre aide

  9. #9
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 469
    Points : 2 997
    Points
    2 997
    Par défaut
    Ma stack préférée (et celle de mon employeur à priori, donc je te suggère d'aiguiser ton esprit critique avant de lire la suite):
    * Data dans une base de données SQL
    * Persistance avec JPA/Hibernate (ou en bon vieux javax.sql si tu fais une belle base de données bien intégré avec de belles contraintes et de belles opérations, qui démonte JPA)
    * des ressources et services métiers exposes en Jax-RS pour les fonctionnalités.
    * Et pour l'UI, un site en JSP est sûrement le plus simple pour démarrer si tu connais Java, ensuite tu peux envisager un site plus moderne avec du HTML5/JavaScript/AngularJS et autres frameworks de hipsters , et des applis Android/OSX soit natives soit avec Cordova/PhoneGap.
    Ce qui me semble important, c'est que les sites dynamiques (JS) et applis mobiles utilisent bien les ressources et services Jax-RS comme ça tu capitalises bien dessus, et tu peux facilement changer de techno d'UI sans avoir à repenser ta couche "métier". Vu que la mode en terme d'UI change toutes les 2 semaines, il faut se faire a l'idée que le site que tu commences va surement devoir être refait bientôt...

    Je recommande donc un serveur JEE qui contient le nécessaire pour la partie JPA/Jax-RS/JSP, et niveau outils, JBoss Tools (plugins pour Eclipse) qui contient ce qu'il faut pour les technos listées ci-dessus.
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

Discussions similaires

  1. Développer une application RCP en mode 3.x sous Eclipse 4 ?
    Par canop dans le forum Eclipse Platform
    Réponses: 7
    Dernier message: 18/07/2012, 16h48
  2. Marche à suivre développement ruban Office 2010
    Par steve.bru dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 09/05/2012, 13h44
  3. Réponses: 16
    Dernier message: 12/11/2004, 00h05
  4. [RCP] Devrais-je développer une application RCP ou un plugin ?
    Par arN34 dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 23/09/2004, 17h09

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