Compte-Rendu CodeWay Show

Julien Lelong

Résumé de la conférence CodeWay Show qui a eu lieu le 18 Septembre 2008 de 14h à 18h au NCI (la Défense, Paris).
C'est la version anglaise qui a été utilisée lors de la rédaction de cet article.
Vous pouvez retrouver le diaporama qui a servi tout au long de la conférence ici ou là.
Vous pouvez également consulter les articles sur les nouveautés de l'IDE ainsi qu'un article dédié à l'unicode avec Delphi 2009.

- Titre : Compte-Rendu CodeWay Show

- Auteur : Julien Lelong

- Parution : 1 janvier 2008

- Licence : Copyright ® 2008 Lelong Julien. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Présentation

- I-A. Embarcadero, un éditeur de logiciels

- I-B. Le rachat de CodeGear par Embarcadero

- II. Les nouveautés de la version 2009

- II-A. Au niveau de l'IDE

- II-B. Au niveau du langage

- II-B-1. Les génériques

- II-B-1-a. Définition

- II-B-1-b. Exemples de déclaration

- II-B-2. Les Méthodes Anonymes

- II-B-2-a. Définition

- II-B-2-b. Exemples de déclaration

- II-C. Au niveau des composants

- II-C-1. TBallonHints

- II-C-2. TNumbersOnly

- II-C-3. TLinkLabel

- II-C-4. TButtonedEdit

- II-C-5. TCategoryPanelGroup

- II-C-7. Ribbon Controls

- II-D. Les autres nouveautés

- III. Où trouver Delphi 2009

- III-A. Version d'essai en téléchargement

- III-B. Acheter Delphi 2009

- IV. Remerciements

I - Présentation

I-A - Embarcadero, un éditeur de logiciels

La société Embarcadero, dont le siège est à San Fransico, a été fondée en 1993. Elle s'est inscrite au NASDAQ en 2000 et a été acquise par Thoma Cressey Bravo (alis TCB) le 27 Juin 2007. Depuis ce jour, la société est devenue une société privée. La firme atteind un revenu annuel de plus de 100 millions de dollars, compte plus de 90 000 clients et est implantée dans 29 pays.

I-B - Le rachat de CodeGear par Embarcadero

Embarcadero Technologies a finalisé l'acquisition de CodeGear de Borland Software Corporation (NASDAQ: BORL) pour environ 24,5 millions de dollars le 30 Juin 2008. CodeGear est en cours d'intégration dans Embarcadero Technologies, qui continuera à fonctionner comme une entreprise privée sous la direction de l'actuel chef de la direction d'Embarcadero Wayne Williams. A ce jour, on peut noter l'arrivée sur le marché de Delphi 2009 et de C++ 2009 et, vers la fin de l'année, l'arrivée de RAD Studio 2009.

II - Les nouveautés de la version 2009

Cette nouvelle version de Delphi 2009 apporte son lot de nouveautés. On notera des modifications aussi bien au niveau de l'IDE que de la VCL ou encore l'ajout de nouveaux composants.

II-A - Au niveau de l'IDE

L'IDE Delphi 2009 possède la même interface que l'IDE Delphi 2007 à quelques modification près.

Liste des nouveautés et des améliorations

- IDE entièrement Unicode!
Il ne s'agit pas simplement d'une VCL qui supporte l'unicode mais plus concrètement du type String qui évolue pour supporter l'unicode. Ce qui implique que tous les endroits ou le type String est utilisé permettront de gérer de l'unicode (Fonctions de traitements de chaines, VCL....etc). Cela ouvre ainsi des opportunités pour le marché de la chine, Russie, Corée, Japon.

Le type String ayant évolué (passage de l'ANSI à l'UTF 16), il est bon de noter que la fonction SizeOf renverra 2 octets pour un caractère, non un octet comme c'était le cas jusque maintenant! Cependant, la fonction length fait toujours son travail correctement!

- Ajout d'un explorateur de classes afin de lister les méthodes et permettre un accès direct à leur déclaration. Il sera possible également d'ajouter de nouvelles méthodes directement via cette interface.

Explorateur de classes

- Ajout d'un panneau de configaration des "Builds" avec un gestionnaire de configuration permettant une configuration rapide de l'IDE lors du choix du paramètrage pour la compilation.

Configuration des Builds

- Amélioration du gestionnaire de projets avec de nouvelles options telles que l'ajout de composant activeX, d'unités, de dll.

Gestionnaire de Projets

- Amélioration du Wizard pour l'import et la création de composants.

- Ajout d'un mode d'importation du composant directement dans un package.

- Mise à jour de la VCL (gestion de l'Unicode) ainsi que le support COM/ActiveX avec accès RIDL.

Vous pouvez également visionner les vidéos présentées par CodeGear :
Nouveautés de l'IDE
Nouveautés de la VCL

II-B - Au niveau du langage

Au niveau du langage, on notera l'ajout des génériques ainsi que les méthodes anonymes.

II-B-1 - Les génériques

II-B-1-a - Définition

Les génériques sont des classes, structures, interfaces et méthodes qui ont des types paramétrés pour un ou plusieurs types qu'elles utilisent ou stockent.
Ce mécanisme était déjà disponible avec Delphi 2007 .NET uniquement. Désormais, toutes les versions de Delphi, qu'elles soient .NET ou non, pourront utiliser les génériques.

II-B-1-b - Exemples de déclaration

Exemple 1 sur les génériques

procedure TForm1.Button1Click(Sender:TObject);
var
myList:TList<Integer>;
begin
myList:=TList<Interger>.Create;
try
myList.AddRange([1,2,3]);
PrintListInteger(myList);
myList.RemoveAt(1);
PrintListInteger(myList);
myList.Clear;
PrintListInteger(myList);
finally
myList.free;
end;
end;

Afin de mieux comprendre l'utilisation des génériques, nous allons voir une déclaration comme nous l'aurions fait auparavant, puis nous traduirons le code en utilisant les génériques.

Déclaration sans les génériques

type
TSIPair = class
private
FKey: String;
FValue: Integer;
public
function GetKey: String:
procedure SetKey(Key: String);
function GetValue: Integer;
procedure SetValue(Value: Integer);
property Key:TKey read GetKey write SetKey;
property Value:TValue read GetValue write SetValue;
end;

Déclaration avec les génériques

type
TPair<TKey, TValue> = class
private
FKey: TKey;
FValue: TValue;
public
function GetKey: TKey:
procedure SetKey(Key: TKey);
function GetValue: TValue;
procedure SetValue(Value: TValue);
property Key:TKey read GetKey write SetKey;
property Value:TValue read GetValue write SetValue;
end;

type
TSIPair = TPair<String, Integer>;
TSIPair = TPair<String, String>;
TSIPair = TPair<Integer, Integer>;
TSIPair = TPair<Integer, String>;
TSIPair = TPair<String, String>;
TSIPair = TPair<String, TXMLNode>;

Nous allons voir également comment cela se passe avec les tableaux d'objets.

Tableau d'objets sans les génériques

procedure TForm1.Button1Click(Sender: TObject);
var
PersonList: TObjectList;
o: TObject;
p: TPerson;
begin
PersonList:=TObjectList.Create;

PersonList.Add(TPerson.Create('Embarcadero');
PersonList.Add(TPerson.Create('CodeGear');
PersonList.Add(TPerson.Create('DatabaseGear');

for o in PersonList do
begin
// Transtypage !
p := TPerson(o); //ou p := o as TPerson;
ListBox1.Items.Add(p.Name);
end;
end;

Tableau d'objets avec les génériques

procedure TForm1.Button1Click(Sender: TObject);
var
PersonList: List<TPerson>;
p: TPerson;
begin
PersonList:=List<TPerson>.Create;

PersonList.Add(TPerson.Create('Embarcadero');
PersonList.Add(TPerson.Create('CodeGear');
PersonList.Add(TPerson.Create('DatabaseGear');

for p in PersonList do
begin
// Plus besoin de transtyper !
ListBox1.Items.Add(p.Name);
end;
end;

II-B-2 - Les Méthodes Anonymes

II-B-2-a - Définition

Une méthode anonyme est une fonction ou une procédure associée à une variable et qui sera déclenchée à chaque appel de celle-ci.
Les exemples parleront plus qu'un long discours!

II-B-2-b - Exemples de déclaration

Premier exemple :

Les methodes anonymes

Un second exemple :

Les methodes anonymes 2

II-C - Au niveau des composants

Voici les principales nouveautés au niveaux des composants.
Vous pourrez retrouver toute la liste des changements sur le site de CodeGear/Embarcadero.

II-C-1 - TBallonHints

Ce petit composant, déjà disponible dans la JVCL, est désormais installé par défaut.
Il permet de modifier l'apparence de l'info bulle.

Pour que ce composant fonctionne, il est impératif que le thème Windows soit activé!

Bulle d'aide personnalisée

II-C-2 - TNumbersOnly

Ce composant permet de ne saisir que des chiffres! Il nous évitera de faire le contrôle sur la saisie!
De plus, si l'on tente tout de même de saisir des caractères, une jolie bulle d'infos nous rappelle que les caractères ne sont pas autorisés!

Composant TNumbersOnly

II-C-3 - TLinkLabel

C'est un label évolué qui reconnait la balise HTML a.
Il permettra donc de faire facilement un lien hypertexte. Voici un exemple :

LinkLabel

LinkLabel1.Caption := '<a href="https://www.developpez.com">www.developpez.com</a>';

Ce qui donne :

Exemple TLinkLabel

II-C-4 - TButtonedEdit

C'est un TEdit évolué qui, couplé à un TImageList, permettra de mettre une image sur la droite et/ou la gauche du TEdit.

Composant TButtonedEdit

II-C-5 - TCategoryPanelGroup

Ce composant permet de créer plusieurs catégories de panels coulissants.

Composant TCategoryPanelGroup

II-C-7 - Ribbon Controls

Ce composant permet d'utiliser le thème d'office 2007 dans votre application.
Ainsi, vous pourrez utiliser les rubans!

Afin de pouvoir utiliser ce composant, il vous faudra enregistrer votre licence auprès de Microsoft, licence inclue avec l'achat de Delphi 2009.

Composant Ribbon Controls

II-D - Les autres nouveautés

On peut citer la mise à jour d'Interbase, qui passe en version 2009 également.
Au niveau des nouveautés, Interbase permettra le cryptage des bases de données. Point positif également, la BDD sera embarquable.
On notera une évolution majeure en ce qui concerne la licence. En effet, auparavant, il fallait acquérir une licence par coeur, désormais, une seule licence pourra assurer la gestion des processeurs multi-coeurs.

Delphi 2009 peut désormais gérer le PNG par défaut.
En effet, pour ceux qui connaissaient le composant TPNGImage, la firme CodeGear à procéder à son rachat afin
de l'inclure par défaut dans la palette de composants.

Mise à jour de Rave Reports qui passe en version 7.6. Pas de gros changements si ce n'est le support de l'Unicode.

Coté Web, il sera désormais possible d'inclure du Silverlight. Il s'agit bien d'inclure une vidéo et non de programmer ...
Idem pour la technologie Flash!

Mise à jour de TeeChart qui passe en version 8.0 et offre donc un panel plus complet en ce qui concerne les vues ainsi que son lot d'améliorations

Utilisation d'ER Studio pour la modélisation. Il remplacera ECO 4 mais une passerelle devrait être créée afin de basculer d'ECO 4 à ER Studio. Cet outil de modélisation, au même titre que MySQL Workbench 5.0, permettra de créer les tables à partir d'un MEA et inversement.

III - Où trouver Delphi 2009

III-A - Version d'essai en téléchargement

Vous pouvez vous rendre dès à présent sur le site de CodeGear/Embarcadero pour obtenir votre version d'essai.

La période d'évaluation est passée de 30 jours à 14 jours, cela étant dû au fait qu'Embarcadero proposait ses versions d'évalutions à 14 jours. Cependant, les versions d'essais sont fonctionnelles dans leur intégralité!
Attention tout de même, la version d'essai ne permet pas d'utiliser les outils en lignes de commandes (compilation automatique de jcl/jvcl par exemple).

III-B - Acheter Delphi 2009

Vous pouvez également voir les tarifs de Delphi 2009 sur www.sosdevelopers.com. Comme d'habitude, vous avez la possibilité d'acheter Delphi 2009 en version architecte, professionnelle, entreprise, ou encore une mise à jour. Il existe également des Bundles, c'est à dire des packs comprenant C++ 2009 en plus de Delphi 2009.

IV - Remerciements

Je remercie Thierry Laborde qui a présenté l'événement CodeWay Show 2 et qui nous autorise l'utilisation et la publication du diaporama qui a servit tout au long de la conférence.
Je remercie également hpalpha, Nono40, evarisnea et Laurent Dardenne pour leur relecture et leurs conseils.