Hauts de France

Développement de client Riche avec Netbeans RCP

netbeans-rcpLe développement d’applications du type « Client Riche »

Le développement de ce type d’application, consiste à apporter un cadre et un framework pour augmenter la productivité et la richesse de l’expérience des utilisateurs finaux. En général, les méthodes de déploiements font aussi partie de ces solutions.

Netbeans est une excellente plateforme pour cela !
Malgré une faible reconnaissance auprès d’autres solutions sur le marché… Tout n’est pas toujours juste ! 🙂

 

Les avantages de Netbeans :

  • Un éditeur simple, intuitif, et léger, stage.
  • Une continuité dans son évolution ( malgré le rachat par Oracle de la plateforme initialement développée par Sun )
  • L’utilisation de technologies non propriétaires ( Ant ou Maven, Swing )
  • La compatibilité avec OSGi ( extensions hybrides )

Mais tout de même comme inconvénient :

  • L’application stricte des concepts objets ! Vous devrez être bien aiguisé dans les concepts, et avoir une bonne capacité d’abstraction des domaines pour savoir prendre en main les différents patterns à appliquer. Cela commence par l’écriture d’une table JTable personnalisée, à la compréhension du lien entre fichiers de données-objets de données-factories-nodes de présentation-objets de présentation des nodes, et ce n’est qu’une partie du tout !
  • Très peu de ressources. Il existe un Excellent bouquin : Beginning NetBeans IDE par contre les ressources en ligne sur le site ne sont pas structurées : Tutos, films, Javadoc… Par une référence exploitable comme un débutant comme il se doit. Quelques articles du type Question/Réponse généraliste…
  • Une assez faible communauté et choix de plugins

Comparé avec Eclipse :

Eclipse est une vraie usine à Gaz. Bénéficiant d’une grande réputation, je l’utilise également pour mes interventions, mais dans la pratique, je fais face à ce genre de situations :

  • Tout se passe bien ( quand même… 🙂 )
  • Mes clients acceptent de découvrir Netbeans… et repartent ravis. Avec un étrange sentiment qu’il doit manquer quelque chose, car c’est trop simple et fluide.
  • Je dois intervenir sous Eclipse, et certaines démonstrations ne passent pas ! Recherche, Tutos, bugs, perte de temps… et de patience. Jusqu’à ce que je décide de faire ma démonstration sous Netbeans qui se fait en deux coups de cuillère à pot, pour un résultat qui en final semble magique !
  • Des plugins parfois horribles, qui plantent, et cela semblant presque normal pour les utilisateurs… Alors que les solutions fournies par IBM RAD ( Rational Application Developer ) fonctionnent parfaitement bien… mais sont payantes…
  • Concernant la partie RCP : Eclipse utilise SWT, qui n’est pas Swing. Aussi vous aurez beaucoup de mal à réutiliser la foultitude de composants standard Java sous Eclipse.

Bref, vous aurez compris, je fais partie de ceux qui préfèrent NetBeans. Mais la n’est pas le sujet.

Pour synthétiser et vous mettre au développement Netbeans RCP, vous aurez besoin de :

  • Connaître Java 😉
  • Bien connaître les concepts Objets, et plusieurs patterns conventionnels
  • Avoir une certaine connaissance de Swing, ou être prêt à vous y mettre ( Netbeans et la seule plateforme qui offre un éditeur graphique swing, indisponible sous Eclipse ), avec les joies que cela comporte ( La productivité est très mauvaise comparé aux solutions du Type Delphi ou Visual Studio .Net )
  • Synthétiser toutes les sources d’information, être bien organisé car vous allez souvent avoir du travail de recherche récurent !
  • Etablir des PoC concernant tous les concepts que vous allez mettre en oeuvre, et les garder en tant que recettes de cuisine afin de revenir dessus à n’importe quel moment ( Fournisseur/consommateur de service via les Lookup, DataObject et DataNode, … )
  • Faire la liste de tous les concepts que vous pourrez mettre en oeuvre, et c’est peu dire que tout est personnalisable via les surcharges !
  • Travailler avec un gestionnaire de sources et un indexeur de documentations que vous centraliserez !
  • Récupérer tous les fichiers d’exemple auprès des ouvrages disponibles. Certains dédiés à NetBeans, d’autres à JavaFX, et d’autres à OSGI

Les solutions alternatives :

Le développement de client riche étant soit sur plateforme ciblée, soit multi plateforme, vous avez également la possibilité d’utiliser la base de Visual Studio, voir Visual Studio community. Vous bénéficierez de toute la puissance du .Net Framework, les solutions Microsoft ayant toujours été les plus productives dans le cadre de développent de type Desktop, avec, disons-le, un rapport de productivité supérieur à 10, et de performance supérieur à… cela dépendra de votre matériel, un entier supérieur à 2 et inférieur à 1000, et oui ! 😉 ( certaines fonctions Swing sont des centaines de milliers de fois moins performantes que WPF )

Leave a comment