VFP2IIS Documentation Support Société

Débuter

Begin with VFP2IIS
 

Pour débuter, vous n'avez pas besoin de classes particulières. Vous pouvez essayer VFP2IIS directement avec un formulaire (form) simple.

 

Voici quelques conseils utiles, pour 3 types d'essais :

A.   Essai avec un nouveau form

B.   Utilisation de VFP2IIS_DEMO comme exemple

C.   Essai avec un projet existant

 

Vous devez bien prendre en compte une dernière contrainte globale de VFP2IIS : VFP2IIS fonctionne en mode dll multithread et est "extérieur" à votre application.

Vous devez donc gérer dans votre code les questions suivantes (avec une clause conditionnelle "IF _VFP.STARTMODE=5 ........ ELSE votre code existant ENDIF") :

 

  • Limitation dans VFP9T des dialogues en état modal, tels que LOCFILE(), MESSAGEBOX,WAIT, INPUT etc...
  • Les forms gérés par VFP2IIS doivent être enregistrés dans VFP2IIS (connus par VFP2IIS). Les forms doivent être créés en appelant la méthode VFP2IISROOT.CREATEFORM(...) ou bien par l'URL de commande http:// .../...?CMD=CREATEFORM
  • Pour les contrôles VFP de classe "Control", vous devez implémenter manuellement votre propre code HTML, car les contrôles dérivés de cette classe ne sont pas gérés par VFP2IIS.
  • Vérifiez si les propriétés standard des contrôles VFP ne sont pas cachées (hidden) ou protégées (protected), et notamment les propriétés visuelles comme la police, la position, etc...
    Durant la génération VFP2IIS ajoute des propriétés supplémentaires à certains contrôles (form, grid). Assurez-vous que ces contrôles ne sont pas protégés.

Si vous créez un form à partir d'une classe par la syntaxe VFP NEWOBJECT(...), vous devrez utiliser la syntaxe VFP2IISROOT.CREATEFORM(cName, cClass, cModule, cInApplication,...)
à la différence du mode local, vous devez inclure inclure les paramètres cModule et cInApplication avec le chemin complet si nécessaire.

par exemple:

Vous avez une application MYAPP.EXE, comprenant une librairie de classes MYCLASS.VCX qui contient une classe de Form MYFORM. Dans votre application en mode bureau (mode local), vous pouvez créer un form en utilisant une des commandes suivantes:

x = NEWOBJECT("MYFORM", "MYCLASSLIB.VCX")
ou bien
x = NEWOBJECT("MYFORM", "MYCLASSLIB.VCX",.null.)
ou bien (si tout est contenu dans MYCLASSLIB.VCX)
x = NEWOBJECT("MYFORM", THIS.CLASSLIBRARY)

VFP trouve les modules nécessaires dans l'application. Mais comme VFP2IIS est externe à l'application, VFP cherche les modules dans VFP2IIS et ne les trouve pas. Vous devez donc utiliser une des méthodes suivantes:

VFP2IISROOT.CREATEFORM("x","MYFORM", "MYCLASSLIB.VCX",FULLPATH("MYAPP.EXE"))
ou bien
VFP2IISROOT.CREATEFORM("x", "MYFORM", JUSTFNAME(THIS.CLASSLIBRARY), FULLPATH("MYAPP.EXE"))

 

  • Pour la même raison (VFP2IIS est externe à l'application APP ou EXE), vous ne pouvez pas lancer de Forms compilés depuis VFP2IIS. Dans VFP2IIS, si les forms sont instanciés avec la commande DO FORM ..., ils seront trouvés si cette commande est interne à l'application, mais ils ne seront ni connus, ni trouvés par une application externe.
    Vous pouvez:

     

    o        Exclure les forms du projet, comme fichiers SCX et SCT indépendants, et les lancer par:

    VFP2IISROOT.CREATEFORM("x",FULLPATH"MYFORM"))

 

o        Sauver ces forms en tant que classe et les lancer par :

VFP2IISROOT.CREATEFORM("x","MYFORM", "MYCLASSLIB.VCX",FULLPATH("MYAPP.EXE"))

 

  • Il y a quelques incohérences (bugs?) dans VFP9T lors du passage de valeurs de propriétés visuelles héritées (par exemple le BackColor d'un form, le ColumnWidth d'un grid). Si vous constatez ce problème, donnez une valeur explicite à la propriété dans la classe ou le SCX.
  • Pour les autres problèmes de compatibilité, reportez-vous au chapitre Compatibilité.
  • Il y a quelques incohérences (bugs?) dans VFP9T lors du passage de valeurs de propriétés visuelles héritées (par exemple le BackColor d'un form, le ColumnWidth d'un grid). Si vous constatez ce problème, donnez une valeur explicite à la propriété dans la classe ou le SCX.
  • Pour les autres problèmes de compatibilité, reportez-vous au chapitre Compatibilité.

 

Note : si vous utilisez Component Gallery, vous vous exposez à de nombreux problèmes. Component Gallery contient beaucoup d'objets basés sur la classe VFP "Control", qui n'est pas supportée dans VFP2IIS. Vous devrez utiliser la classe Container à la place de la classe Control.

Essai avec un nouveau Form

 

Il vous suffit simplement de créer votre nouveau formulaire en le basant sur la classe de base ou sur une de vos classes, de le tester en mode normal, puis de démarrer..

 

- dans VFP, créez un Form ordinaire avec des contrôles et des données

- enregistrer-le en fichier SCX dans le dossier de VFP2IIS (appelez-le par exemple TEST.SCX)

- démarrez IE, et dans la barre d'adresse saisissez http://localhost/vfp2iis/default.asp?cmd=createform&class=test.scx

 

Utilisation de VFP2IIS_DEMO comme exemple

 

L'application VFP2IIS_DEMO est installée en même temps que VFP2IIS, et le fichier VFP2IIS.INI est configuré pour démarrer VFP2IIS_DEMO par défaut. Vous pouvez démarrer VFP2IIS_DEMO en mode bureau ou en mode Web pour en comparer les comportements.

Le projet et les sources sont inclus, pour vous permettre de voir les techniques utilisées. VFP2IIS_DEMO présente les techniques de base et les possibilités de VFP2IIS. VFP2IIS_DEMO contient les bibliothèques VFP2IISDEMO.VCX et VFP2IISBASE.VCX, avec les nouvelles propriétés et méthodes IExxx utilisées par VFP2IIS_DEMO.EXE sous VFP2IIS.

 

 

Note : ces bibliothèques VCX servent à l'application DEMO, et les classes et propriétés ne sont pas obligatoires. VFP2IISBASE.VCX est un exemple, dont on a défini les méthodes et propriétés pour une démonstration plus facile des fonctions étendues.

 

Si vous voulez voir les différences entre les modes Web et Desktop, recherchez dans les sources "_vfp.startmode". Un test sur "_vfp.startmode=5 est effectué là où le mode Web requiert une gestion spécifique.

La plupart des fonctions WEB (génération, liaison d'évènements, gestion des données) sont contrôlées par de nouvelles propriétés et méthodes. Le nom de ces propriétés et méthodes est préfixé par IE ; ces propriétés et méthodes ne sont utilisées que si elles sont définies.

 

Note : dans les sources de VFP2IIS_DEMO, vous trouverez la classe BAR (qui ressemble aux menus Outlook), qui gère les sous-fenêtres  mobiles et les raccourcis, le glisser-déposer (drag-drop) et la création de raccourcis système par glisser-déposer. Ce code est libre de droits, mais à ce jour il n'est ni définitif, ni documenté, ni supporté par l'auteur.

 

En mode normal (desktop), vous démarrez VFP2IIS_Demo de la façon habituelle. Dans IE, vous avez le choix de démarrer par :

http://localhost/vfp2iis/default.asp?cmd=createform&class=exlorer&classlib=vfp2iisdemo.vcx&module=vfp2iisdemo.exe

 

ou bien (si vous avez correctement configuré IIS et vfp2iis.ini)

http://localhost/vfp2iis

 

Essai avec un projet existant

 La meilleure approche pour démarrer une nouvelle application est de créer la couche visuelle en prenant en compte les spécificités et possibilités du Web depuis le mode desktop, puis de tester l'interface Web par une démarche d'essais et erreurs, et ensuite (si nécessaire) d'ajouter du code conditionnel pour l'extension "bureau" (sur la condition if _vfp.startmode...), par exemple les menus et barres d'outils.

 

Note : Si vous voulez convertir un projet existant en application Web sous VFP2IIS, vous devrez étudier certaines techniques en VFP2IIS telles que le rafraichissement des forms, etc...

 

La conversion d'un projet existant vers le Web passe donc par les étapes suivantes :


- passez en revue votre projet, et excluez tous les forms compilés (SCX)
- modifiez vos ordres de création de forms, en utilisant la syntaxe VFP2IISROOT.CREATEFORM
- recherchez les dialogues en état modal dans tout votre projet, et ajoutez du code pour les gérer
- implémentez le code pour les messagebox, qui sont supportés moyennant modification

 

Astuces :


- créez une méthode commune pour instancier vos formulaires
- pour les messagebox, créez une méthode commune sur le formulaire et des méthodes pour gérer la valeur retournée.

Reproduction totale ou partielle strictement interdite • KitWeb : générateur de sites internetWan Again : fournisseur d'accès à Internet