FONCTIONNALITÉS OBSOLÈTES 4D v12 et ultérieures Rév. 03 Jun 2010
2 Sommaire Introduction 3 Liste des fonctionnalités obsolètes 4 4D Chart (dans une zone de plug-in) 5 4D Draw 5 4D Open 6 PICT 6 Motifs QuickDraw 6 Ressources Mac 7 Anciennes interfaces de plateforme 8 Altura Mac2Win 8 Sous-tables 9 Web en mode contextuel 9 Mode non-unicode 9 Langage : commandes obsolètes 10
3 Introduction Depuis 25 ans, 4D s enrichit continuellement (de nouveaux concepts, de nouvelles technologies) tout en assurant la compatibilité ascendante. Comme les premiers développeurs peuvent en témoigner, nous avons toujours investi beaucoup d efforts et de ressources dans le maintien de la compatibilité ; preuve en est que des applications 4D créées il y a longtemps, avec d anciennes versions de 4D et des systèmes d exploitation, fonctionnent toujours avec les versions les plus récentes. Malheureusement, il devient de plus en plus difficile, en 2010, de mélanger anciennes et nouvelles technologies : 4D doit évoluer et permettre aux développeurs d utiliser les nouvelles technologies, les nouvelles APIs, les nouveaux paradigmes de développement ; Les OS changent au quotidien et, parfois, abandonnent d anciennes APIs. C est pourquoi nous devons parfois indiquer que telle ou telle fonctionnalité ou commande devient obsolète : cela signifie qu un jour ou l autre, dans une version majeure du produit, elle pourra disparaître ou ne plus fonctionner correctement. Indiquer maintenant aux développeurs ce qui devient obsolète, et donner des solutions de remplacement, leur octroie plus de temps pour appliquer les changements à leurs applications existantes (et leur permet de ne pas utiliser les parties obsolètes dans les nouveaux développements) : les modifications se font sans urgence, sans pression, les développeurs ont le temps qu il faut devant eux. Nous commencerons par une rapide liste des fonctionnalités obsolètes, puis nous entrerons dans le détail de chacune d entre elle. Enfin, le document se termine par une liste des commandes du langage qui deviennent obsolètes.
4 Liste des fonctionnalités obsolètes Les valeurs possibles pour la colonne «Statut» sont : Bientôt Plus tard OS Nous pensons retirer la fonctionnalité dans la prochaine version majeure (après 4D v12, donc) Sera retirée dans une version majeure ultérieure, bien qu indéterminée à l heure actuelle. Est intimement liée à des technologies système elles mêmes déclarées obsolètes (par exemple, le format PICT). Le statut est en fait le même que Plus tard, mais un OS pourrait retirer la fonctionnalité du système avant que nous la retirions de 4D. Thème Remplacer par Statut 4D Chart SVG / WebArea / PHP Plus tard (zone de plugin) 4D Draw SVG (retiré depuis 4D v11 SQL) 4D Open Synchronisation, WebServices, SQL Pass Thru (retiré depuis 4D v11 SQL) PICT Formats modernes OS Motifs QuickDraw SVG / Image au format Mosaïque» Bientôt (propriété des objets de formulaire) Ressources Mac Utiliser le dossier Resources de la base OS Nous retirerons dans un premier temps (Bientôt) les accès en écriture Interface de Utiliser l interface Système Bientôt plateforme Altura Mac2Win Développeurs de plug-ins: utiliser du code natif Bientôt Windows Sous-Tables Utiliser des relations N<->1 Plus tard Web Mode Contextuel Utiliser le mode non contextuel Bientôt Mode non Unicode (bases pré-v11 converties) Utiliser le mode Unicode Plus tard
5 4D Chart (dans une zone de plug-in) Note Nous recommandons de créer les graphes dans des images SVG (nouvelle syntaxe de la commande GRAPHE depuis 4D version 11). L obsolescence concerne l utilisation d une zone de plugin 4D Chart. Depuis la version 11 de 4D, il est possible d appeler la commande GRAPHE en lui passant en premier paramètre une variable de type image au lieu d une référence de zone de plug-in 4D Chart. Ainsi, les développeurs qui utilisent GRAPHE pour simplement afficher ou imprimer un graphique peuvent facilement migrer vers le SVG : il suffit d utiliser une image au lieu d une zone de plug-in. Il y a de nombreux avantages à utiliser le SVG : Très puissant : gradients, transparence, niveaux, rotations, ombres, Format vectoriel : le redimensionnement ne provoque pas de pixellisation Utilise les APIs de dessin modernes SVG, c est du texte! Du xml qui peut être facilement manipulé Toutes les commandes du thème «Images» fonctionnent avec les images SVG Une image SVG peut s afficher dans une zone web (et Internet Explorer ayant rejoint le SVG Group en 2010, il a été annoncé qu IE 9 pourra afficher des images SVG sans plug-in) Des commandes 4D et des méthodes du composant 4D SVG permettent à l utilisateur d interagir avec l image. L utilisation du SVG permet de créer des graphiques d aspect professionnel. Si la zone de plugin était utilisée pour permettre à l utilisateur de manipuler le graphe (changer les couleurs, modifier les lignes, ajouter un commentaire, ), le SVG reste une excellente solution de remplacement : en utilisant les produits fournis avec 4D, les développeurs pourront créer des graphes dynamiques. En dehors du SVG construit en langage 4D, il existe d autres façons de générer des graphes (la plupart du temps, le résultat reste un graphe SVG) : zone web + JavaScript, la nouvelle commande PHP Executer, qui ouvre la porte à une source inépuisable de code (par exemple, on pourra se référer à la démonstration «Flash Your Charts With PHP», montrée lors du 4D Summit 2009). Le 4D Web 2.0 Pack fournit également des commandes permettant de générer des graphes SVG. 4D Draw Note 4D Draw est obsolète depuis la version 11, et n est plus disponible depuis la version 12 4D Draw devrait être remplacé par SVG. Comme il a été dit au chapitre précédent, l utilisation du SVG présente beaucoup d avantages. Le langage 4D et le composant 4D SVG peuvent être utilisés à ces fins. Dans les bases de démonstration (téléchargeables depuis notre site web) pour trouverez des exemples d interaction avec une image SVG (la démonstration SVG Theater par exemple). Il est possible de créer des images dynamiques avec 4D. Une solution alternative à 4D Draw peut également se trouver en combinant JavaScript et une Zone Web (le framework Raphael, par exemple).
6 4D Open Note 4D Open n est plus disponible depuis 4D version 11 4D Open était un plug-in qui pouvait se connecter à 4D Server et accéder directement à la base de données. Depuis 4D v11 SQL et la réécriture du moteur de base de données, 4D Open ne fonctionne plus. 4D Open était utilisé essentiellement dans deux contextes : Synchronisation/Réplication de données multi-sites Administration/Maintenance (lancer l exécution de méthodes de maintenance par exemple) Quel que soit le type d utilisation, 4D v12 propose trois façons de remplacer 4D Open : Les nouvelles commandes SQL permettant de répliquer/synchroniser plusieurs bases de données L optimisation des Web Services L utilisation du SQL Pass-Thru (depuis la version 11.5), qui permet d échanger des données entre plusieurs bases 4D via le SQL PICT Le format PICT est un très ancien format d image Mac OS. Avant la version 11, 4D stockait toujours les images dans ce format, sur Mac comme sur Windows. Il y a toutefois une notion qui doit être bien comprise au sujet du format PICT. Il peut stocker deux grandes catégories d informations : Les primitives de dessin de l image (BitMap ou vectorielles) Ou un format d image plus moderne (jpeg par exemple), encapsulé dans du PICT en utilisant QuickTime. L usage typique est le suivant : le développeur appelle COMPRESSER IMAGE en utilisant le sélecteur QT Compresseur photo. Cela signifie que même si toutes les images stockées dans les données avant 4D v11 étaient des PICT, ces images pouvaient, en fait, contenir du JPEG. Il est important pour les développeurs d arrêter d utiliser le format PICT, surtout parce que 4D a besoin d Altura + QuickTime pour lire une image sur Windows : cela n est pas toujours efficace, et il est parfois difficile d installer QuickTime sur des machines Windows (les Services Informatiques des entreprises ne sont pas toujours d accord). Lors de la migration des données depuis une version antérieure, les développeurs devraient utiliser CONVERTIR IMAGE sur chaque champ image de la base de données. Si le champ image contient en fait les données d une zone de plugin (4D Write/4D View), on utilisera CONVERTIR IMAGE avec un codec spécifique (cf. documentation de la commande). Motifs QuickDraw Ils sont parfois utilisés dans les propriétés d un objet de formulaire. Encore une fois, le remplacement pourra passer par le SVG : en utilisant une image SVG affichée au format «mosaïque», et en lui ajoutant de la transparence, les développeurs devraient pouvoir remplacer ces anciennes QuickDraw Patterns.
7 Ressources Mac Note La documentation contient un chapitre au sujet de l obsolescence et la compatibilité des ressources «Mac». Encore une ancienne technologie Mac OS, déclarée obsolète par Apple depuis Mac OS X.4 (Tiger, 2005). Les ressources Mac sont utilisées pour stocker des données structurées telles que des textes et des chaînes de caractères. En pratique, on peut dire que ce ne sont pas les ressources en tant que telles qui sont obsolètes mais leur support sur disque, le Resource fork. Ce dernier fait partie du système de fichiers de Mac OS, et depuis la sortie de Mac OS X, Apple tente de retirer le support du Resource Fork, entre autres parce que ce format de fichiers n est pas compatible avec d autres systèmes (Unix, Windows), et qu il est source de problèmes lorsqu il est transféré sur un réseau. Sur Windows, ce mécanisme est émulé par 4D et les ressources sont stockées dans un fichier.rsr. Cependant, même s il existe toujours des routines système pour gérer les ressources (et Mac OS reconnaît les ressources stockées dans le data fork d un fichier), il est déconseillé d utiliser ce mécanisme pour différentes raisons : Textes et chaînes de caractères sont stockés au format Mac-Roman. Il n est pas possible de stocker de l Unicode dans des ressources de type TEXT ou STR#. Les ressources PICT stockent des données obsolètes (cf. plus haut) Le nombre de ressources et la taille des ressources sont limités (2 700 ressources ou 16Mo) Dans un premier temps, nous prévoyons de supprimer la possibilité d écrire/créer des ressources. Il s avère que la plupart des applications 4D utilisant les ressources prenaient en charge essentiellement les ressources «STR#». 4D fournit des outils simplifiant la migration de ce type de ressource : Le composant 4D Pop peut créer automatiquement les fichiers XLIFF Toutes les méthodes et expressions qui référencent une STR# fonctionnent sans avoir à modifier le code existant. Par exemple, si le libellé d un bouton ou d un menu est «:15000,3» (ce qui signifie «utiliser le troisième item de la STR# ID 3»), 4D chargera la XLIFF appropriée (si elle existe). Pour les autres types de ressources : Déplacer vos ressources dans des fichiers distincts à l intérieur du dossier Resources, situé à côté de la structure. Si besoin, créer des sous-dossiers : o Déplacer les ressources TEXT dans des fichiers XLIFF ou dans des fichiers «.txt» (ou autre) sur disque o Convertir chaque PICT en fichier image (jpeg/png/ ) o Convertir les ressources PICT + MASK en fichiers png o o Utiliser (Mac) des fichiers «icns» ou des images (png, jpeg) au lieu de ressources d icônes Stocker vos ressources privées de la façon la plus appropriée (par exemple, transférer des données binaires dans un document sur disque) Utiliser le nouveau (depuis 4D v11) dossier «Resources» pour stocker vos ressources. Utiliser Dossier 4D(Dossier ressources courant) pour lire le chemin d accès dynamiquement, en mode exécution.
8 Anciennes interfaces de plateforme Ce terme regroupe les interfaces de type Système7, Windows 3.11, Depuis plusieurs versions, 4D utilise les contrôles natifs des systèmes d exploitation. Gérer le dessin d objets correspondant à l interface d anciens systèmes n est plus possible. Nous pensons également que les utilisateurs de Windows 7 ne veulent pas voir de boutons Mac OS 7, et que les utilisateurs Mac sont allergiques à l interface Windows 3.11. En effet, de plus en plus souvent, les utilisateurs veulent travailler dans leur environnement natif, et chaque nouvelle version majeure de 4D apporte le support de nouveaux objets natifs (par exemple, les «Steppers» de la version 12). Nous pensons également que les utilisateurs finaux méritent de travailler dans un environnement moderne. C est pourquoi : Depuis 4D 2004, ces anciennes interfaces sont obsolètes. Les structures nouvellement créées ne peuvent pas les utiliser, l aspect est soit «Système» soit «Impression». Les structures converties peuvent toujours utiliser ces anciennes interfaces, mais les objets sont dessinés en utilisant QuickDraw (au lieu de dessins natifs), la gestion des événements (clic par exemple) ne peut utiliser les routines système natives, etc. Nous pensons retirer le support de ces anciennes interfaces à partir de la prochaine version majeure (après la v12, donc). Les développeurs 4D devront modifier leurs formulaires, et appliquer l apparence «Système» ou «Impression» aux objets (la plupart du temps, au formulaire lui-même). Altura Mac2Win Altura a été utilisé pour faciliter le portage de 4D vers Windows. Il s agit de librairies de code facilitant la «traduction» de code Mac OS (avant Mac OS X) vers Windows, en émulant les APIs : système de fichier, QuickDraw, Ressources, PICT, etc. Cela a été très utile, et les développeurs de plugin s en sont également servis pour porter leurs plugins Mac sur Windows. Malheureusement, Altura émule de vieilles (lire «obsolètes») APIs Mac et n utilisent pas les routines modernes de Windows. Il est nécessaire pour 4D de retirer Altura de son propre code. Cela représente un travail de très longue haleine, commencé il y a quelques temps déjà, et à chaque version de 4D, du code moderne remplace l ancien. Encore aujourd hui, 4D a besoin d Altura, essentiellement pour assurer la compatibilité des bases de données (celles utilisant des ressources et/ou affichant des PICT notamment), mais également pour assurer le fonctionnement de plug-ins de tierce parties reposant eux-mêmes sur Altura. En retirant les ressources du.rsr et en n utilisant plus le format PICT (cf. plus haut), les développeurs 4D seront prêts une fois que le code Altura Mac2Win aura été retiré. Les premières personnes concernées par cette étape importante sont les développeurs de plugins : il est nécessaire de ne plus utiliser Altura le plus tôt possible, d écrire du code spécifique Windows, et d utiliser le nouveau 4D Plugin SDK fourni depuis 4D v11 (cette information quant au retrait progressif d Altura a déjà été fournie aux développeurs de plug-ins).
9 Sous-tables Depuis plusieurs versions, 4D a déconseillé aux développeurs d utiliser les sous-tables. Depuis la version11, il n est plus possible de créer des champs de type sous-table. Par ailleurs, les sous-enregistrements ont des limitations connues : ils sont tous chargés en mémoire, et ils ne sont pas gérés par les commandes ENVOYER ENREGISTREMENT ou DUPLIQUER ENREGISTREMENT. Nous ne prévoyons pas de supprimer le support des sous-tables prochainement, mais il est temps pour les développeurs de convertir leurs sous-tables en plus usuelles liaisons N<->1., car le support des sous-tables sera un jour retiré de 4D. Les développeurs qui utilisaient les sous-tables pour des raisons de performance (circonstances particulières dans lesquelles charger des enregistrements liés pouvait être lent) peuvent être rassurés, notamment avec la version 12 : la vitesse est au rendez-vous et utiliser la classique relation N<->1 est très rapide. Sans entrer dans les détails techniques, il y a deux principales approches pour remplacer les sous-tables : Avant conversion d une structure pré-v11 : avec 4D 2004, créer la table N et les champs de liaison (si nécessaire), puis changer le code partout ou c est nécessaire (cf. plus loin) Après la conversion : dans cette situation, 4D a remplacé la sous-table par une table N utilisant une relation spéciale (identifiable dans l éditeur de structure), permettant au langage de fonctionner avec les sous-sélections et les sous-enregistrements. Le développeur 4D devra supprimer ce lien spécial, le remplacer par un lien «normal», puis changer le code partout où c est nécessaire (cf. plus loin) Voici ce que nous entendons par «puis changer le code partout où c est nécessaire» : Créer/adapter les formulaires, mettre à jour les formulaires inclus Dans les méthodes (projet, formulaire, ) : o Remplacer les commandes du thème «Sous-enregistrement» par les commandes correspondantes du thème «Sélection» ou «Enregistrement». Par exemple, remplacer CREER SOUSENREGISTREMENT par CREER ENREGISTREMENT avec remplissage correct du champ de liaison. o Charger explicitement les enregistrements N quand cela est nécessaire Web en mode contextuel Ce mode n est pas compatible avec un serveur web moderne (les boutons «Back/Forward» des navigateurs ne sont pas gérés, l interface est obsolète, ). Nous réfléchissons à intégrer un nouveau serveur web dans la prochaine version majeure, et il ne sera pas compatible avec le mode contextuel. C est pourquoi nous conseillons vivement les développeurs 4D utilisant le mode web contextuel à passer au mode non contextuel, ce qui implique de modifier le code (y compris celui de pages html) Mode non-unicode Le support du mode ASCII (synonyme de «Mode non Unicode) est source de mauvaises performances, car pour assurer la compatibilité avec une ancienne structure, le texte doit sans arrêt être converti de/vers le Mac Roman. Nous prévoyons de ne plus supporter le mode ASCII dans une prochaine version majeure. Notez que le mode ASCII n est pas supporté pour les structures compilées tournant avec 4D Server v12 64-bits Windows. Les développeurs 4D devraient pour les structures converties activer le mode Unicode. Le document Conversion vers 4D v11 SQL.pdf (accessible depuis la section «v11» de la documentation, http://doc.4d.com) donne des informations sur le sujet.
10 Langage : commandes obsolètes Conséquence logique des fonctionnalités obsolètes : les commandes qui leur sont liées sont également obsolètes. La liste suivante inclut aussi des commandes plus anciennes, obsolètes depuis la version 11. Nous conseillons aux développeurs 4D de remplacer ces commandes par les nouvelles fonctionnalités et commandes. La documentation détaillée (http://doc.4d.com) de chaque commande donne des détails sur les solutions de remplacement. Thème Commande Remplacement Chaînes de caractères Compilateur Documents système Environnement 4D Evénement formulaires Convertir caracteres ISO vers Mac Mac vers ISO Mac vers Win Win vers Mac C_ALPHA C_ENTIER C_GRAPHE TABLEAU ALPHA Type document AJOUTER SEGMENT DE DONNEES LISTE SEGMENT DE DONNEES Dossier 4D et la constante Dossier Extras Activation Appel exterieur Apres Avant Desactivation En entete En pied En rupture Pendant GRAPHE (avec zone de plugin) GRAPHE SUR SELECTION CONVERTIR DEPUIS TEXTE / Convertir vers texte si nécessaire. Supprimer l appel à la commande si la conversion n est pas nécessaire (la base est en mode Unicode) C_TEXTE dès que la base est en mode Unicode C_ENTIER LONG (Utiliser le SVG avec la commande GRAPHE) TABLEAU TEXTE Cf. documentation (un seul segment depuis 4D v11) Déplacer les documents du dossier Extras vers le dossier Resources. Modifier le code en conséquence Utiliser Evenement formulaire et la constante appropriée Graphes Utiliser une image SVG Transférer les données dans des tableaux et utiliser GRAPHE Images ENREGISTRER IMAGE ECRIRE FICHIER IMAGE LISTE TYPES IMAGES LISTE CODECS IMAGES QT COMPRESSER IMAGE CONVERTIR IMAGE QT COMPRESSER FICHIER IMAGE ECRIRE FICHIER IMAGE / IMAGE VERS BLOB QT CHARGER ET COMPRESSER LIRE FICHIER IMAGE / CONVERTIR IMAGE IMAGE Interface FIXER INTERFACE Cf. chapitre Anciennes interfaces de utilisateur Lire interface plateforme Listes REDESSINER LISTE Retirer du code (ne fait rien depuis la version 11) hiérarchiques Propriétés des ACTIVER / DESACTIVER BOUTON OBJET FIXER ACTIVATION objets Ressources (toutes les commandes) Cf. le chapitre Ressources Mac
11 Saisie AJOUTER SOUS ENREGISTREMENT Modifie MODIFIER SOUSENREGISTREMENT SQL UTILISER BASE EXTERNE UTILISER BASE INTERNE Serveur web Commandes : Contexte web FIXER LIMITES AFFICHAGE WEB FIXER TEMPORISATION WEB AJOUTER ENREGISTREMENT dans la table N d une relation N->1 Fonction Evenement formulaire et constante Sur donnees modifiees MODIFIER ENREGISTREMENT dans la table N d une relation N->1 SQL LOGIN SQL LOGOUT Cf. Mode web contextuel Sousenregistrements Autres : Url 4DBLANK Tag 4DMETHOD Sélecteur Conversion Mode Web pour FIXER/LIRE PARAMETRE BASE AP SET WEB FILTERS (depuis la version 11, la conversion des caractères par le serveur web est améliorée) Fonctionnalités du Serveur Web : Serveur HTTP en mode CGIapplication, utilisant 4DISAPI.DLL et NPH- CGI4D.exe Encapsulation JavaScript Tout ce qui peut avoir un lien avec WebStar (4D Link, 4D Connect, 4D SSI, Welcome, WEBINCLUDE) (toutes les commandes) Cf. chapitre Sous-tables Remplacer les commandes nnn SOUSENREGISTREMENT et nnnsousselection par des actions sur la table N.
4D SAS 60, rue d Alsace - 92110 Clichy - France Tel: +33 1 40 87 92 00 - Fax : +33 1 40 87 92 01 info-fr @4d.com - www.4d.com 4D SAS 4D, Inc 4D Deutschland GmbH 4D Japan France USA & Canada Germany & Austria Japan +33 1 40 87 92 00 +1 800 785 3303 +49 8165 95 19 0 +81 3 5433 3461 info-fr@4d.com info@4d.com info-de@4d.com info-jp@4d.com 4D UK Ltd 4D Hispano 4D Sweden AB 4D Australasia United Kingdom Spain, Portugal & Latin America Sweden & Denmark Australia & New Zealand +44 1625 536 178 +34 91 414 92 90 +46 8 750 63 00 +61 2 9499 9544 info-uk@4d.com info-es@4d.com info-se@4d.com info-au@4d.com info-pt@4d.com info-br@4d.com Copyright 4D SAS 2010 all rights reserved. 4D and related logos are registered trademarks of 4D SAS. All other quoted trademarks and products names are trademarks and/or registered trademarks of their respective owners.