On pourrait croire à un conte mythologique mais pas du tout.
Si vous aimez les webservices et si vous êtes enthousiaste à propos d'Ajax, apprenez à travers cet exemple comment coupler les deux pour créer des applications riches orienté services :)
jeudi 20 mai 2010
mercredi 28 avril 2010
Performances comparées Axis2, Metro, CXF
Si vous hésitez entre Axis2, Metro et CXF pour choisir une API d'utilisation de webservices, les performances de chacune des 3 peut être un argument supplémentaire.
mercredi 17 mars 2010
PMD - vérifier si une variable est null
Au cours d'un projet, j'ai eu pour tâche de vérifier le code avec PMD afin de l'améliorer et ainsi de diminuer les bugs (grossiers pour la plupart).
Et là je me suis rendu compte qu'il n'existait aucune règle PMD qui permettait de vérifier si avant d'appeler une méthode d'un objet, un test de nullité de cet objet avait été fait.
En gros est-ce que j'avais des blocs de code comme ca :
Objet obj=getObjectFromAnotherMethod();//potentially null !
obj.doSomething();
Alors qu'il faudrait mieux avoir :
Objet obj=getObjectFromAnotherMethod();//potentially null !
if(obj!=null)
obj.doSomething();
J'ai donc remonté mes manches et suis assez fier de vous présenter la règle PMD XPath qui permet de vérifier cette bonne pratique !
//MethodDeclaration/Block/BlockStatement/Statement//StatementExpression/PrimaryExpression
/PrimaryPrefix/Name
[substring-before(@Image,".")=
./ancestor::Block/BlockStatement/LocalVariableDeclaration//VariableDeclaratorId
[not (../VariableInitializer/Expression/PrimaryExpression/PrimaryPrefix/Literal)
and not(../..//PrimitiveType)
and not (../VariableInitializer/Expression/PrimaryExpression/PrimaryPrefix/AllocationExpression)]
/@Image
and
not( substring-before(@Image,".")=
./ancestor::BlockStatement/Statement/IfStatement/Expression//EqualityExpression
[../../..//NullLiteral]
/PrimaryExpression/PrimaryPrefix/Name/@Image )
]
N'hésitez pas à me faire des commentaires si la règle n'est pas satisfaisante, si vous avez des cas où elle marche pas !
Et là je me suis rendu compte qu'il n'existait aucune règle PMD qui permettait de vérifier si avant d'appeler une méthode d'un objet, un test de nullité de cet objet avait été fait.
En gros est-ce que j'avais des blocs de code comme ca :
Objet obj=getObjectFromAnotherMethod();//potentially null !
obj.doSomething();
Alors qu'il faudrait mieux avoir :
Objet obj=getObjectFromAnotherMethod();//potentially null !
if(obj!=null)
obj.doSomething();
J'ai donc remonté mes manches et suis assez fier de vous présenter la règle PMD XPath qui permet de vérifier cette bonne pratique !
//MethodDeclaration/Block/
/PrimaryPrefix/Name
[substring-before(@Image,".")=
./ancestor::Block/
[not (../VariableInitializer/
and not(../..//PrimitiveType)
and not (../VariableInitializer/
/@Image
and
not( substring-before(@Image,".
./ancestor::BlockStatement/
[../../..//NullLiteral]
/
]
N'hésitez pas à me faire des commentaires si la règle n'est pas satisfaisante, si vous avez des cas où elle marche pas !
vendredi 12 mars 2010
XPath et JQuery
XPath et JQuery sont 2 "expression language" permettant de manipuler du XML pour par exemple retrouver des éléments selon leur type, leur attribut, etc....
Mais comment choisir entre XPath et JQuery? Cet article peut vous aider.
Plus spécifiquement que JQuery, cet article vous explique comme l'utiliser depuis le navigateur web.
Pour Xpath, voici un explication de l'API et 3 tutoriels d'introduction pour apprendre à la manipuler :
Mais comment choisir entre XPath et JQuery? Cet article peut vous aider.
Plus spécifiquement que JQuery, cet article vous explique comme l'utiliser depuis le navigateur web.
Pour Xpath, voici un explication de l'API et 3 tutoriels d'introduction pour apprendre à la manipuler :
jeudi 11 mars 2010
Les frameworks PHP qui valent le coup
Voici dans cet article une liste de frameworks PHP qui permette de faire du code beau, intelligent (à voir la compatibilité avec l'interface chaise <-> clavier) en un minimum de temps.
C'est beau la technologie.
C'est beau la technologie.
mercredi 24 février 2010
De Excel au XML, en Java
Voici un exemple d'utilisation de l'API Apache POI pour lire des documents Excel (et autres) depuis du code Java.
Ensuite, l'auteure aborde la transformation Excel <-> XML : utile pour stocker des données et re-générer à la volée des nouveaux fichiers Excel.
Ensuite, l'auteure aborde la transformation Excel <-> XML : utile pour stocker des données et re-générer à la volée des nouveaux fichiers Excel.
mardi 16 février 2010
Introduction à Google SideBricks
Et si créer des applications web dynamiques (j'ai pas dit des applications web RIA hein mais bien dynamique c'est à dire qui se servent de données stockées en base par exemple) devenait simple ?
Google Sidebricks apporte une réponse :
Google Sidebricks apporte une réponse :
- expression language simple
- annotations permettant la mise en place de paramètre dynamique
- Modèle MVC et principalement les parties View et Controller
lundi 11 janvier 2010
Accessibilité et web 2.0
Bonne année à tous !
Et pour comment cette nouvelle année, voici de quoi redonner espoir à ceux qui considère que le web 2.0 n'apporte aucune évolution valable en terme d'accessibilité des applications. Souhaitons que le projet WAI-ARIA et la librairie WCAG 2.0 deviennent des standards !
Et pour comment cette nouvelle année, voici de quoi redonner espoir à ceux qui considère que le web 2.0 n'apporte aucune évolution valable en terme d'accessibilité des applications. Souhaitons que le projet WAI-ARIA et la librairie WCAG 2.0 deviennent des standards !
lundi 9 novembre 2009
Le bon, le mauvais et le franchement pénible
SOA est sur beaucoup de lèvres à l'heure actuelle. Ce concept apparaît comme la solution à la course aux produits innovants, à la sécurité des données, à la réduction des coûts, à la flexibilité.
Or toute belle chose a un côté moche. Voici quelque aspect niveau business déclinait en SOA avec :
A méditer !
Or toute belle chose a un côté moche. Voici quelque aspect niveau business déclinait en SOA avec :
A méditer !
jeudi 29 octobre 2009
Mise à jour dynamique d'une page web
En complément du précédent article, voici un cas d'école sur la mise à jour d'une page web via des composants dynamiques. Tout ça reposant sur du JSF et de l'Ajax.
A noter un schéma ultra intéressant voir vital qu'il faudrait toujours avoir accroché au mur pour se souvenir de "comment doit fonctionner une application à interface dynamique ?".
Le voici reproduit pour vous mettre l'eau à la bouche :
A noter un schéma ultra intéressant voir vital qu'il faudrait toujours avoir accroché au mur pour se souvenir de "comment doit fonctionner une application à interface dynamique ?".
Le voici reproduit pour vous mettre l'eau à la bouche :
Introduction à RichFaces
Dans le monde des RIA (Rich Internet Application), il existe l'API RichFaces qui permet de mutualiser la puissance d'une application JEE, la richesse des JSF et la flexibilité du modèle Ajax.
Et tout ça d'une manière assez souple et sympa. Allons-y donc pour une petite introduction !
Et tout ça d'une manière assez souple et sympa. Allons-y donc pour une petite introduction !
lundi 28 septembre 2009
Tests en charge de webservices
Voici, expliqué succinctement, comment générer des plans de tests en charge de webservices avec JMeter et avec SoapUI.
mardi 22 septembre 2009
Le "Server Push" ou comment notifier d'un événement
Vous vous demandez comment faire en sorte que votre serveur notifie ces clients riches d'une nouvelle information, sans que ce soit les clients qui interroge régulièrement le serveur ?
Vous avez besoin d'implémenter le "server push" pour maintenir à jour une interface de suivi de commande ?
Cet article est fait pour vous : démonstration pour Flex et OpenLazlo, ainsi que des solutions alternatives (mais consommatrice de ressources réseaux) pour les API Ajax.
Vous avez besoin d'implémenter le "server push" pour maintenir à jour une interface de suivi de commande ?
Cet article est fait pour vous : démonstration pour Flex et OpenLazlo, ainsi que des solutions alternatives (mais consommatrice de ressources réseaux) pour les API Ajax.
jeudi 17 septembre 2009
L'expérience utilisateur
Cet article est très intéressant car il permet de faire la part des choses entre le look, le feel et le model utilisateur qui sont présentés au travers d'une application, web ou desktop.
On se rend compte qu'en termes d'expérience utilisateur, le look and feel ne compte que pour 40%.
De gros efforts doivent donc être mené au niveau du modèle, c'est à dire ce que peuvent faire les utilisateurs plutôt que l'apparence que cela peut avoir.
On se rend compte qu'en termes d'expérience utilisateur, le look and feel ne compte que pour 40%.
De gros efforts doivent donc être mené au niveau du modèle, c'est à dire ce que peuvent faire les utilisateurs plutôt que l'apparence que cela peut avoir.
mercredi 9 septembre 2009
Java NIO et NIO 2
Vous développez en Java et vous voulez manipuler des fichiers, des sockets ou des buffers en mémoire de manière non bloquante et ultra rapide ?
NIO et NIO 2 sont faits pour vous !
Maj du 16/09/09 :
Un autre article détaillant les fonctionnalités de Java NIO et les nouveautés apportées à ce sujet par Java 7 Dolphin
NIO et NIO 2 sont faits pour vous !
Maj du 16/09/09 :
Un autre article détaillant les fonctionnalités de Java NIO et les nouveautés apportées à ce sujet par Java 7 Dolphin
mercredi 19 août 2009
Securité avec Axis2
Voici 2 articles de complexité croissante qui expliquent :
Ca peut être utile :)
- comment mettre en place des flux sécurisés de webservices par authentification
- comment mettre en place des flux sécurisés de webservices par signature et encryption
Ca peut être utile :)
mercredi 15 juillet 2009
Outil de test pour Flex
Le Flex c'est bien.
Mais le Flex testé c'est mieux :)
Voici un outil de test qui permet de capturer et de rejouer des scénarios de tests d'interface Flex.
via : http://www.infoq.com/news/2009/07/flex-monkey-1.0-released
Mais le Flex testé c'est mieux :)
Voici un outil de test qui permet de capturer et de rejouer des scénarios de tests d'interface Flex.
via : http://www.infoq.com/news/2009/07/flex-monkey-1.0-released
mercredi 8 juillet 2009
Agile dans la vrai vie
"Nous sommes agiles ! Nous travaillons par itérations".
Ok. C'est super.
Mais qu'est-ce que ca veut dire "travailler par itération" ? Quelle est la durée d'une itération ? Comment sont découpés les besoins du client et comment les différentes taches sont-elles priorisées dans chaque itération ? Comment estimer la charge de réalisation d'une tache ?
Tous les éléments de réponses au bout du clic.
Ok. C'est super.
Mais qu'est-ce que ca veut dire "travailler par itération" ? Quelle est la durée d'une itération ? Comment sont découpés les besoins du client et comment les différentes taches sont-elles priorisées dans chaque itération ? Comment estimer la charge de réalisation d'une tache ?
Tous les éléments de réponses au bout du clic.
mardi 7 juillet 2009
Pertinence des webservices
Est-ce que les webservices sont toujours la bonne solution pour une architecture orientée services (SOA) ?
La réponse est mitigée mais tend vers le non. Du moins, quand des applications hétéroclites de plusieurs sociétés doivent proposer et consommer des services, c'est la solution à retenir. En revanche, pour des applications d'une même société, voire au sein même d'une application, des solutions plus simples comme RMI / Corba, voire même l'échange direct de commandes brutes est plus avantageux et plus rapide.
Tous les détails au bout du clic.
La réponse est mitigée mais tend vers le non. Du moins, quand des applications hétéroclites de plusieurs sociétés doivent proposer et consommer des services, c'est la solution à retenir. En revanche, pour des applications d'une même société, voire au sein même d'une application, des solutions plus simples comme RMI / Corba, voire même l'échange direct de commandes brutes est plus avantageux et plus rapide.
Tous les détails au bout du clic.
Flex et le CSS
Toutes les subtilités de l'utilisation du CSS dans Flex vous sont enfin dévoilées !
A vos souris! Prêt ! Bookmarkez !
A vos souris! Prêt ! Bookmarkez !
Inscription à :
Commentaires (Atom)