WDScript v2.5.0 Version Finale

Voilà, WDScript Server 2.5.0 (v15) est finalement au point, que ce soit sous Windows ou sous Linux.

Biensûr la version linux ne dispose pas de toutes les possibilités offertes par la version Windows, car le framework linux est encore limité (pas de génération d'image par exemple)

Néanmoins, ceci peut être fait avec l'aide d'un autre outil sous linux, comme PHP, un cgi ou une ligne de commande... (Il est possible d'extraire des images d'une base de données sur le disque avec WDScript et de les lier ensuite sur un site via un script PHP par exemple, voir directement)

Mais cela ne limite par réellement WDScript, la plupart des sites PHP ne générent pas les images, elles sont simplement placées dans un répertoire du site...

Voici un schéma concernant le protocole FastCGI, travail effectué depuis la pré-version 2.4.8 :

ProtocoleFastCGI640.png

La version 2.5.0 apporte une nouveauté très utile, la nouvelle page générée par la commande WDScriptInfo() qui résume l'état de la configuration d'un site WDScript.

large_wdscripinfo.png

SQLManagerX a été de nouveau intégré en partie à WDScript dans cette version finale, j'ai choisi SQLite4WD et PHP4WD comme échantillons pour 2 raisons :
1. Ils n'existe pas d'équivalent pour le moment (meme si la constante d'acces natif SQLite vient d'apparaitre en Windev 15)
2. SQLite utilise une DLL comme les autres accés natifs, il est donc simple de modifier les sources pour y ajouter un autre module SQLManagerX similaire

PHP4WD, quant à lui n'a pas besoin de DLL, ce qui n'alourdit pas la taille des sources de WDScript...

Comment mettre à jour une classe SQLManagerX dans WDScript ?

1. Remplacez la classe.wdc SQLManagerX dans le sous-répertoire SQLX de wdscript.
2. Sélectionner la configuration SQLManagerX sur le tableau de bord du projet
3. Recompiler le projet
4. Créez la librairie SQLX.wdl en ne cochant que les classes C_XXX4WD.wdc

Comment ajouter un module SQLManagerX dans WDScript ?

C'est un peu plus compliqué, et il faut recompiler l'exécutable wdscript pour cela :

Vérifier d'abord que la configuration WDScript Win32 est bien sélectionnée sur le tableau de bord du projet.

1. Ajouter la classe SQLManagerX dans le projet, elle doit etre incluse dans la configuration (WDScript Win32)
2. Ajouter une variable globale d'acces dans le code d'initialisation du Projet (nécessaire pour l'utilisation dans les scripts)
3. Créer les 2 procédures d'allocation d'objet dans la collection de procédures globales SQLX
4. Créer l'executable en décochant les classes c_XXXXX4WD (vérifiez que SQLX.wdg est bien coché)
5. Sélectionner la configuration SQLManagerX sur le tableau de bord du projet
6. Recompiler le projet
7. Créer enfin la librairie SQLX.wdl en cochant toutes les classes C_XXX4WD
8. Placer les DLL d'acces natif au meme endroit que SQLX.wdl

Rappel : les sources (qui contiennent aussi les executables windows et les dlls) sont disponibles ici :
https://sourceforge.net/projects/wdscript/files/

Le package EWS intégre cette version de WDScript avec des exemples prêt à l'emploi, voir http://tanguy.ath.cx/EWS250

Il reste maintenant du travail annexe à effectuer concernant WDScript :
1. Mettre à jour les fichiers de coloration syntaxique pour cette nouvelle version (et donc recenser toutes les fonctions WLangage depuis Windev 10 ! ouch)
2. Mettre à jour les documentations (re ouch)
3. Trouver et corriger les nouveaux bugs :)

Correctifs présents dans la prochaine version (2.5.1)

v2.5.1 (xx-01-2010) - WD15 039g
 + Ajout Fonction SQLQuote() pour protèger une valeur chaine dans une requête SQL.
 + Ajout Fonction EnModeWDL()/InWDLMode()
 + Ajout Fonction HExecSQL(sRequete), en mode étendu HExecSQL(_sRequete [, _DataSource , _Connexion, _Options])
 + En mode "SECURE", GetToken() renvoie une chaine "" si la session n'a pas été créée correctement
 * Correctif sur chemin relatif du répertoire de sessions (Token)
 * Correctif Caract(10) pour les fonctions Info/Erreur
 * Correctif CGI:REQUEST pour les URL
 * Correctif EnvoiFichier, 4e parametre comme SendBinary(), déterminé selon l'extension si le fichier est renseigné
 * GetTokenInfo(), ajout valeur par défaut

Commentaires

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

ajout au wdscript

Bonjour,

Jamerais pouvoir benificier du web 2.0 avec wdscript et pour cela il me faudrait des fonctions supplémentaires

- serialise json
- json vers xml
- xml vers json

Jai trouver en sigma-ajax un ide qui conviendrait tres bien a rajouter a EWS

ajax-sigma contient IDE, widjet web2.0, une grille

Je compte reprendre votre exemple dans EWS et le faire en ajax

pourriez-vous me signaler si cela vous conviendrais, merci

Oui, j'ai regardé la démo est

Oui, j'ai regardé la démo est ca m'a l'air d'être un bon point de départ pour la partie Ajax...

Pour la sérialisation ca ne devrait pas être un probleme avec la version 15 :) le XML est super efficace, dans tous les sens...
reste à trouver un connecteur JSON efficace...

Je ne suis pas tres familier (pour le moment) avec JSON, mais ca devrait être beaucoup plus simple que les API FastCGI ;p

A propos, de ca (FastCGI), il y aura certainement de nouvelles fonctions a implementer pour effectuer des connexions en stream (à lire sur le site de Ligttpd, la version 1.5.0 qui arrive sous peu)

En tout cas, on a le choix pour l'inspiration : cf. http://www.json.org/

A bientot :) ... Sinon, je pense que le nouveau Forum WDScript/EWS n'était pas bien configuré... je n'ai pas eu le temps de le tester mais pouvez vous y creer un compte et m'envoyer un message dessus pour me prévenir ? On pourra partager des fichiers plus facilement par ce biais que par Mail :p

Le lien est en haut à droite de la page http://wdscript.ath.cx

Bonjour, Un exemple

Bonjour,

Un exemple relativement efficace pour la transformation JSON est fourni dans la LST 78.

J'en profite également pour vous encourager dans vos travaux, je suis de prêt WDSCRIPT depuis quelques temps. Dans le même esprit, j'ai moi-même mis au point un moteur sous WebDev pour la génération de page dynamique. J'en avais assez des frustrations connu sous WebDev, et dorénavant je crée enfin des pages conformes aux normes W3C et légères en chargement et exécution. Dès que j'aurais le temps et que le moteur sera suffisant mur, je lancerais un blog pour communiquer à ce sujet.

Cordialement,
Xavier.

Merci pour l'info et les

Merci pour l'info et les encouragements, j'ai travaillé récemment avec les versions 12 et 14 de Webdev sur des petits sites chez IFOP (dizaine de pages dynamiques) et c'est vrai que j'avais envie a chaque fois envie de tout jeter par la fenêtre...

Combien de fois j'ai été obligé de revoir toutes les pages en voulant simplement ajouter une image dans l'entête d'un modèle de page...

Je n'ai pas regardé de près comment fonctionne AWP... à part ce que j'en sais au niveau des fichiers de configuration

Il serait peut être intéressant de voir comment brancher WDScript avec Webdev... pour partager des informations...

Serialisation JSON

J'ai fini cette partie, je me suis basé sur les sources de la lst 78, mais je l'ai quasiment complétement réécrit...
C'est deux fois plus rapide, mais pas encore parfait... La partie lente est la traduction XML vers JSON...

Voir : https://sourceforge.net/apps/trac/wdscript/wiki/Fonctions/JSON

Pour le reste, pourquoi traduire de JSON vers XML ? Est-ce Vraiment utile ?

utile ?

cela depand des pages du site déjà construite et qui fonctionne avec xml.

il a de nombreux système qui fonctionne avec xml tel les service web

mais en général les bibliothèques ajax dojo,jquery,sigma... fontionne avec json car a primabord il

fonctionne avec du javascript et le json est intégré au javascript.

Bien...

On verra l'utilisation... j'étais curieux de voir ce que ca donnait sur wdscript :p je commence a voir l'interet de proteger les membres de classes windev...

Mais comme je m'y attendais tout est transformé en tableau associatif a plusieurs niveaux, comme les requetes ou les parsers XML en PHP...

En tout cas, la traduction XML n'est pas forcement tres rapide 400ms ici pour traduire un fichier XML de 60Ko (le fichier json fait 29Ko)... C'est utile pour des objets complexes.... mais pour des données brutes il y peut etre de meilleurs moyens...

Apres la traduction des tableaux simples pourra être améliorée en passant pas par du XML... A suivre...