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.
-
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.
- 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.
- Amélioration du gestionnaire de projets avec de nouvelles options telles que l'ajout de composant activeX, d'unités, de dll.
- 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▲
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.
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
;
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.
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
;
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-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é!
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!
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 :
LinkLabel1.Caption := '<a href="https://www.developpez.com">www.developpez.com</a>'
;
Ce qui donne :
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.
II-C-5. TCategoryPanelGroup▲
Ce composant permet de créer plusieurs catégories de panels coulissants.
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.
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.