Delphi XE2 tour Paris - John COLIBRI. |
- résumé : Résumé de ce que nous avons appris à la conférence "Delphi XE2 World Tour" qui s'est déroulée à Paris le 8 Septembre 2011
- mots clé : Delphi XE2 - FireMonkey - Compilateur 64 bits - Max OsX -
moblies iOs - DataBindings
- logiciel utilisé : Windows 34 et 64 bits, Mac osX, iOs
- plan :
1 - Delphi XE2 - World Tour à Paris
Nous avons publié sur ce site les informations disponibles sur Delphi XE2 le 18 Août 2011, à partir de ce qui était publié sur le Web. Le 31 Août le produit a été lancé commercialement.
le 8 Septembre a eu lieu à Paris la présentation par Embarcadero, lors du "Delphi XE2 World Tour". Cet article est un résumé de ce que nous avons appris de plus que ce qui était
disponible dans notre présentation Delphi XE2
Compilateur 64 Bits - la propriété Tag de chaque contrôle est codée sur 4 octets pour les
applications WIN32, sur 8 octets pour les applications WIN64. Cette propriété est donc de type NativeInt. Ceci est naturellement cohérent avec la taille des pointeurs sur chaque version, et permet donc toujours de
stocker un pointeur vers un objet (ou tout autre donnée), si nous le désirons
- pour les réels, le comilateur utilise des Double (pas de format Extended)
- comme indiqué, les anciennes directives de type CDecl etc sont ignorées (le compilateur utilise une convention unique). Si nous avons des Services Web, qui nécessitaient CDecl, nous laissons ces dirctives pour la
compilation Win32, et si nous compilons en 64 bits, elles sont ignorées par le compilateur (et le service fonctionne)
- l'IDE est encore en 32 bits, mais peut compiler, par une sélection de la
platefome cible, ce générer du code 32 bits ou 64 bits.
2 - FireMonkey - les contrôles Firemonkey descendent de tComponent. Nous l'avions déjà indiqué. Mais cela souligne que
- les "contrôles" FireMonkey correspondent à des dessins graphiques à l'écran. Ce ne sont PAS, comme pour les tEdit VCL etc des encapsulations des fenêtres (tHandle Windows)
- la gestion de la souris et la focalisation sont alors implémentées de façon à ressembler de très près aux événements présents pour la VCL
- le code compilé va avoir un aspect et un comportement que le compilateur
va adapter pour "singer" (facile :) ) le comportement des contrôles WIN23, Mac, mobile.
- de plus, il n'y a pas de "runtime". Le code compilé contient toute la gestion qui est ainsi mise en place. Ceci explique qu'une application
FireMonkey avec un bouton et un edit peut atteindre 11 Meg, alors que le même code sous Windows aura 1 ou 2 Meg
- FireMonkey est du code NATIF COMPILE, en opposition à WPF ou Flash qui
utilisent peu ou prou à une étape ou une autre des interprètes
- du fait que le code contient exécutable contient TOUT, il n'y a pas lieu de déployer de runtime (contrairement à WPF ou Flash)
- il n'y a pas l'équivalent de .DLLs ou pas actuellement de mécanismes similaire aux plugins utilisant des Packages (donc des .DLLs)
- comme indiqué précédemment, il est peu recommandé de mélanger les composants
graphiques et les contrôles FireMonkey. Cela n'a pas été testé par Embarcadéro
- il n'y a pas de Wizard de migration VCL -> FireMonkey. Certe de nombreuses propriétés sont similaires (Name etc), et il y a quelques modifications
- Text remplace Caption (sauf pour la Forme)
- la position est fournie par des valeurs X, Y, qui sont des réels
- il y a de nombreuses propriétés liés aux transformations (Scale,
Rotation) et à l'animation
et le fichier qui contient les valeurs initiales (l'équivalent des .DFM) a beaucoup plus d'information pour stocker les propriétés vectorielles
- bien qu'Embarcadéro insiste qu'ils continueront à faire évoluer les contrôles VCL traditionnels, Jason VOKES a indiqué que c'est le marché (nous) qui pèsera le plus dans les années à venir pour faire pencher la balance vers FireMonkey ou la VCL
- les Styles FireMonkey sont gérés directement au niveau de l'IDE (pour la .VCL, pour développer des styles personnels nous utilisons un designer qui est un .EXE situé dans le BIN de Delphi)
- il n'existe pas de "designer" graphique pur, indépendant de l'IDE Delphi qui permettrait de sous-traiter à des équipes de graphique l'aspect visuel et laisser les développeurs Delphi gérer le code. C'est nous qui assurerons les
deux (le graphique, l'animation etc, et le code). Il semblerait que les expériences de séparation de la mise en place du graphique et du code par des outils et des équipes séparées n'ont pas été convainquantes
- parmi les composants FireMonkey tiers
- TChart a porté ses graphiques sous FireMonkey
- les librairies Direct2D et Direct3D n'étant pas présentes sur Windows 2000,
FireMonkey y fonctionnera de façon dégradée. XP serait mieux loti
3 - Mac - OsX - le compilateur Delphi génère le fichier .EXE pour le Mac.
- il faut un Mac pour au moins exécuter et tester l'application
- la petite application "Platform Assistant" que nous plaçons sur le Mac sert bien
- à télécharger l'EXE sur le MAC
- à assurer les communications pous assurer le travail de débugger distant. Nous téléchageons l'EXE (plus les fichiers de symboles) et pouvons faire du pas à pas dans notre source dans l'IDE Delphi sur Windows
- FireMonkey construit des applications conformes aux exigences du Mac
- nous ne pouvons pas développer sur Mac et reconvertir les applications en FireMonkey. La transformation est unidirectionnelle: les applications
FireMonkey se comportent "comme" des applications Mac, mais ne sait pas retraduire des applications Mac en FireMonkey
- les composants de base de données fonctionnent sur Mac (à condition que nous
ayions installé les moteurs correspondants sur le MAC)
- les composants Indy fonctionnent sur Mac
4 - iOs - iPhone, iPad, Touch Pad
- pour déployer dans les Store Mac, il faut être certifié Mac
Delphi ne génère PAS d'applications natives ANDROID, car celles-ci sont en Java. Mais les connecteurs permettent aux développeurs d'applications ANDROID
d'avoir un proxy qui leur permet de communiquer avec les serveurs DataSnap qui fonctionnent sur Win32 (les "connecteurs Datasnap")
5 - Delphi - Autres - styles
- pour développer des styles personnels nous utilisons un designer qui est un .EXE situé dans le BIN de Delphi
- les styles ne sont pas applicables
- pour les menus principaux ou les popup
- pour les Ribbon controls (problème de license Microsoft)
- les dialogues de l'Operating System
- DbExpress
- Driver ODBC. Pourrait être une possibilité pour accéder à des données
Paradox sans passer par le BDE (Ed: nous accédons aux DONNEES de Paradox. Mais l'effort de migration pour supprimer le BDE porte en général bien plus sur le remplacement des tTable que sur la conversion
de données, qui, lui, est l'affaire de quelques heures)
- DataSnap
- peut choisir le protocole HTTPS
- Connecteurs : description sommaire dans l'article précédent
- outils
- toujours les outils existants (Beyond Compare, AQTime, CodeSite, InstallAware, FinalBuilder, GlyFX)
- les librairies IpWorks, Indy, Rave, Intraweb 12
- Document Insight permet de gérer les doc techniques (ajouter des
commentaires sur les paramètres d'une procédure, qui seront ensuite reproduits dans une "doc technique")
- les composants Fast Report sont une version "Delphi", la version "pro"
étant, comme d'habitude, achetable séparément (leur site contient une page de comparaison des fonctionnalités)
6 - Rad PHP XE2 - le produit est développé par une équipe Espagnole qui fait maintenant partie
d'Embarcadero
- contient
- une librairie JQuery pour les mobiles (librairie JavaScript)
- la possibilité d'utiliser PhoneGap (qui peut gérer les périphériques des mobiles: caméra etc)
- des composants Zend
7 - TMS Bruno FIERENS a présenté leurs composants pour créer des pages Web téléchargeables sur les mobiles (iPhone, iPad, Android) : - utilise des composants spécialisés Intraweb
- parmi les avantages de créer des pages Web pour mobiles, plutôt que des applications natives sur les mobiles
- nous réutilisons nos connaissances Delphi
- il n'y a pas besoin de se soumettre aux certifications Mac ou à payer les
frais annuels Mac
- les démonstratioons ont été effectuées avec un serveur Intraweb StandAlone et des mobiles (un iPad pour cette cession)
- applications qui utilisent HTML5 et CSS3
- le Serveur est capable de détecter le type de mobile, pour servir les pages adaptées
- l'essentiel de la performance repose sur des apels asynchrones (Ajax), qui garantit une bonne performance au niveau des mobiles (rechargement que des
parties à modifier)
- de plus le téléchargement évite au maximum les transferts d'image, en utilisant les possibilités de HTML5 pour le rendu des contrôles et des graphiques (business graphics style tChart)
- ont créé en plus des composants natifs pour chaque plateforme
8 - Commercial Thierry LABORDE a indiqué que les prix étaient ceux de Delphi XE: - version Delphi XE2 ENTERPRISE
- les bases de données, UML
- version nouvelle : 1.999 E HT. Mise à jour (attention, conditions de date et de version antérieure) : 1.299HT
C'est la version que nous privilégions
- Rad Studio XE2 ENTERPRISE (Delphi C++ PHP Prism): 2.799HT, 1.799 pour les mises à jour
- version ULTIMATE : entreprise + des outils de base de données Embarcadero (profiling etc)
- version ARCHITECTE : ultimate + E/R studio (concepteur de base de données)
Tout dépend ensuite du nombre de licences, des versions précédentes, l'achat avant la fin du mois, de l'années (le cachet de la poste faisant foi etc etc).
Voyez Thierry LABORDE pour les détails
9 - Et Maintenant ? - le produit est officiellement lancé (et commercialisé) depuis le 31 Août
- la doc complète est sur
Online Help for Delphi XE2 ou, pour FireMonkey en particulier:
FireMonkey Application Platform - les démos sont téléchargeables (sans avoir la version) sur SourceForge (comme les démos 2010 et Delphi XE d'ailleurs):
Démos Rad Studio XE2 et
- les notes d'installation (versions Windows nécessaires pour installer, liste des outils fournis avec leur versions:
Installation Notes for Delphi XE2
Tim DELCHIARO - DelChiaro (Embarcadero) - 31 Août 2011 - les versions de démo sont téléchargeables à :
https://downloads.embarcadero.com/free/delphi
Nos articles parus après le lancement:
- Delphi XE2 - World Tour ParisRésumé de ce que nous avons appris à la conférence "Delphi XE2 World Tour" qui s'est déroulée à Paris le 8 Septembre 2011 - Complément à cet article
- Les Styles FireMonkey : changer le style d'un objet ou de tous les objets d'une Class, le Style Designer
FireMonkey, contenu d'un fichier .STYLE, la propriété StyleLookup, les styles prédéfinis (en anglais).
- les animations FireMonkey : choix de la
propriété à animer, vitesse, type d'interpolation entre les valeurs début et fin, répétition - Animation 3D
Quant à la Roadmap (Delphi 2013 / Delphi 15) - compilation Mac 64 Bit
- suppression du compilateur XCode pour iOs
- version Linux
Mais d'ici là, FireMonkey bénéficiera vraissemblablement de quelques mises à jour.
10 - Références
- Présentation Delphi XE2
John COLIBRI - 18 Août 2011
Présentation des informations disponibles sur Delphi XE2 à partir de ce qui était publié sur le Web à cette date.
- Les Styles FireMonkey : changer le style d'un objet ou de tous les objets d'une Class, le Style Designer
FireMonkey, contenu d'un fichier .STYLE, la propriété StyleLookup, les styles prédéfinis (en anglais).
- les animations FireMonkey : choix de la
propriété à animer, vitesse, type d'interpolation entre les valeurs début et fin, répétition - Animation 3D
- Connection Delphi XE2 DbExpress ODBC MySql : Paramétrage d'une Connexion ODBC en utilisant le nouveau
pilote DbExpress ODBC de Delphi XE2
- Mise à jour Delphi XE2 1 Tim DelChiaro a annoncé et fourni les liens du téléchargement et de la doc de la première
mise à jour Delphi XE2 (28 Septembre 2011)
- LiveBindings Delphi XE2 : les LiveBindings permettent d'évaluer dynamiquement des expressions entre
propriétés de composants source et cible. La définition des relations sous forme de String offre une grande flexibilité et est plus générale que les db_xxx de la VCL. Ces LiveBindings seront surtout utilisée par
FireMonkey, en particulier pour les bases de données
- Architecture LiveBindings Delphi
: analyse de l'architecture des LiveBindings Delphi : comment tBindingExpression compile une expression au format String pour contruire un environment qui référence des tObject et évalue cette expressioin pour remplir
les propriétés de composants. Affichage du pseudo-code généré. Diagramme de classe UML de l'architecture des LiveBindings
Comme d'habitude: - nous vous remercions de nous signaler toute erreur, inexactitude ou
problème de téléchargement en envoyant un e-mail à jcolibri@jcolibri.com. Les corrections qui en résulteront pourront aider les prochains lecteurs
- tous vos commentaires, remarques, questions, critiques, suggestion d'article, ou mentions d'autres sources sur le même sujet seront de même les bienvenus à jcolibri@jcolibri.com.
- plus simplement, vous pouvez taper (anonymement ou en fournissant votre e-mail pour une réponse) vos commentaires ci-dessus et nous les envoyer en cliquant "envoyer" :
- et si vous avez apprécié cet article, faites connaître notre site, ajoutez un lien dans vos listes de liens ou citez-nous dans vos
blogs ou réponses sur les messageries. C'est très simple: plus nous aurons de visiteurs et de références Google, plus nous écrirons d'articles.
11 - L'auteur
John COLIBRI est passionné par le développement Delphi et les applications de Bases de Données. Il a écrit de nombreux livres et articles, et partage son temps entre le développement de projets (nouveaux projets, maintenance, audit, migration BDE, migration Xe_n, refactoring) pour ses clients, le
conseil (composants, architecture, test) et la
formation. Son site contient des articles
avec code source, ainsi que le programme et le calendrier des stages de formation Delphi, base de données, programmation objet, Services Web, Tcp/Ip et
UML qu'il anime personellement tous les mois, à Paris, en province ou sur site client. |