May 22

Je viens d’acheter un smartphone: le Qtek S200. Je décide alors de m’intéresser au développement sur ce genre de plateforme, et j’en profite pour installer Orcas dans l’idée de regarder ce que SilverLight donne sur un smartphone. Première déception, il me faut 62 Mo pour installer ce qu’il faut sur le smartphpone, et je n’en ai que 47 car je n’ai pas pris d’extention mémoire. Je décide donc de me restreindre à un développement “classique” d’une application .Net windows forms sur le smart phone en utilisant bien entendu le .Net Compact Framwork 2.0.

J’opte pour le développement d’une application de gestion de cave…et oui le vin est aussi une de mes passions. L’intérêt du Qtek S200 est sa compatibilité wifi: afin d’avoir l’application la plus légère possible, je décide d’utiliser la liason wifi entre le smart phone et un web service hostant la base de donnée. Premier problème: l’environnement de développement que j’utilise ne permet pas d’exposer le web service a autre chose que “localhost”. J’avais déjà voulu installer IIS il y a 1 an, mais j’avais eu des problèmes d’installation. Je m’y remet et bien sur IIS refuse toujours de s’installer car il ne trouve pas staxmem.dl_. Je décide de rechercher a nouveau sur internet si une solution existe (il y a 1 an, je n’avais rien trouvé)…et là, quelqu’un a enfin la solution. Donc merci a reyluv qui a trouvé la ligne de commande qui récréée la métabase de sécurité:

esentutl /p %windir%\security\database\secedit.sdb

Il est assez déplorable que Microsoft n’a jamais documenté cette solution (ou alors elle est bien cachée) et propose de réinstaller XP SP2…rien que cela! Chose intéressante, il semble que CriketMaster (lire le thread sur la solution) ai un desktop HP…ce qui mon cas…est-ce une mauvaise installation de l’OS d’origine sur ce genre de matériel..???

Bref, mon IIS fonctionne…sauf que .Net 2 ne fonctionne pas! En cherchant un peu (merci google encore), il semble que .Net ne fonctionne correctement au dessus d’IIS uniquement s’il a été installé après IIS. Il suffit donc de faire un “repair” sur l’installation de .Net Framework 2.0 pour que tout roule.

En conclusion: google est peut être le support microsoft non officiel le plus efficace que je connaisse.

May 04

Avec l’émergence de l’AOP (Aspect Oriented Programming) et l’IoC (Invertion of Control), on voit fleurir de plus en plus de développement reposant sur l’utilisation d’XML au plus près du code. L’inconvénient majeur (d’où ce billet) que j’y vois est l’utilisation abusive de XML (voire HTML…je vais détaillé un peu plus loin) pour remplacer du code Java ou d’un autre langage. Je ne nie absolument pas la valeur que représente l’IoC, ce qui m’interroge c’est: Pourquoi vouloir utiliser un support tel que le XML pour fraire de la programmation alors qu’il n’est absolument pas fait pour cela. Cela va au delà du couple XML/IoC, on peut parler de HTML/Fit ou encore XML/BPELJ. Lier des composants ou process de haut niveau entre eux de manière découplée avec une configuration en XML à tout a fait du sens. Cependant, plus l’intégration entre ces composant devient intriquée, plus la configuration devient complexe, in-maintenable, sensible aux moindres changement. Pour le BPEL, c’est la même chose, quand l’interaction entre les process devient complexe au point de devoir faire des boucles, il est temps de se demander si on ne doit pas plutôt utiliser un vrai langage de programmation qui se chargera de masquer cette complexité. Dernier exemple: HTML/Fit, qui est un framework de test permettant a des “business analyst” ou “Ingénieurs Qualité” d’écrire des tests en HTML pour valider une fonctionnalité. Cela fonctionne très bien, jusqu’a moment ou une voit apparaitre quasiment des lignes de code dans les ligne de tableau Fit. Il est alors grand temps d’écrire une fiterie de plus haut qui va masquer ce pseudo-code, sinon il faudra être développeur pour pouvoir écrire un test…et c’est exactement l’inverse qui est recherché.

D’une manière générale, laissons aux langages de programmation la responsabilité de cacher la complexité…ou tout simplement les détails d’implémentation, et laissons au XML (ou HTML) la configuration de haut niveau compréhensible à tout le monde.