RAD Studio 2007 - John COLIBRI. |
- résumé : RAD Studio 2007 est la nouvelle version de Delphi qui ajoute à Delphi 2007 la possibilité de développer des applications .Net.
- mots clé : RAD Studio 2007 - Dbx3 - BlackFish Sql - Asp.Net 2.0 - ECO IV
- logiciel utilisé : Windows XP personnel, RAD Studio 2007
- matériel utilisé : Pentium 2.800 Mhz, 512 Meg de mémoire, 250 Giga disque dur
- niveau : développeur Delphi
- plan :
1 - RAD Studio 2007 1.1 - Le prolongement de Delphi 2007 (Win32) et de Delphi 2006 (.Net)
La nouvelle version de Delphi, appelée RAD Studio 2007 est le prolongement de la version Delphi 2006. Elle permet de développer à la fois en Win32 et en .Net.
En fait, Delphi 2007 était la partie purement Win32, et RAD Studio complète donc l'outil en ajoutant la partie .Net de Delphi 2006, mais pour .Net 2.0 à présent.
1.2 - Les personnalités
Avec cette nouvelle version nous pouvons créer des applications - pour une cible Win32, prologeant ainsi Delphi 2007
- et une cible .Net Framework, comme le permettait Delphi 2006
De façon schématique: - dans le monde traditionnel
- le PC contient une librairie Windows, contenant les API de base.
- Delphi encapsule cette librairie dans une librairie, la VCL, qui est donc utilisée depuis 1995
- avec cette personnalité, appelée Win32, ou encore "Native" nous compilons les mêmes projets que ceux développés sous Windows 3
- dans le monde .Net
- une nouvelle librairie écrite en Java (C# qui est la version Java de
Microsoft) contient à la fois des classes (des conteneurs comme les Collections) et des composants visuels (des TextBox).
- nous pouvons réaliser des applications Asp.Net avec RAD Studio
- Delphi a créer une librairie qui fait le pont entre la libraire .Net et les composants que nous utilisons sous Win32. Ainsi nous pouvons à nouveau utiliser une tList ou un tEdit, et c'est la couche
intermédiaire qui traduit cette syntaxe Win32 vers le monde .Net
Cela peut être représenté ainsi:
Le produit offre un compilateur Delphi et C++. Nous ne nous intéresserons qu'à la partie Delphi ici.
1.3 - Les nouveautés Nous allons présenter les nouveautés - pour les bases de données
- pour le développement .Net
- les autres caractéristiques
2 - Bases de Données - Dbx4 et Blackfish Sql
2.1 - Dbx4: une nouvelle architecture de base de données
DbExpress 4 est une librairie unifiée qui permet de construire une infrastructure pour les composants d'accès aux bases de données à la fois dans le monde Win32 et .Net.
Cette unification du code source a permis de réduire l'effort d'écriture des pilotes par un facteur 2. Mentionnons qu'il s'agit d'une couche proche des pilotes, et que les couches
supérieures d'accès aux données ne sont pas affectées. Nous pouvons donc toujours utiliser - en mode Win32 le BDE, tSqlConnection (dbExpress traditionnel), tAdoConnection, par exemple
- en mode .Net les composants Ado.Net
La couche Dbx4 offre aussi de nouvelles possibilités - les composants tDbxConnection, tDbxCommand, tDbxReader permettent
d'accéder aux données au niveau le plus bas
- nous pouvons dériver d'une connection Dbx4 des délégués dotés de trace (un fichier disque contient le détail de toutes les opérations) ou de pooling de connection
- l'analyse des métadonnées (le schéma ou dictionnaire d'une base) ont été énormément renforcée, ce qui a facilité la réalisation de nouveaux pilotes. Et nous pouvons aussi accéder à ces métadonné dans nos propres projets
2.2 - BlackfishSql Blackfish Sql est un nouveau moteur de bases de données qui peut être déployé ou intégré à une application. Cette base est dérivé de jDataStore qui était déjà disponible pour les outils
Java, et elle a été portée sous .Net. Elle est donc entièrement managée (ce qui signifie qu'elle correspond aux critères de gestion du .Net .Framework)
L'avantage de ce choix de .Net est l'extrème compacité de la base (une .DLL de l'ordre de 1 Mega), car elle peut utiliser les librairies .Net sous-jacentes. Nous pouvons utiliser cette base
- "in process": la base est situé dans le même espace mémoire que notre projet (d'où une amélioration de la performance)
- "out of process": le moteur et notre application sont dans des processus différents
Bien que le moteur soit écrit avec le .Net, nous pouvons aussi l'utiliser en Win32, grâce à des pilotes écrits en DbExpress 4. A ce niveau, seule un mode "out of process" est utilisable.
Les requêtes utilisables sont compatibles Sql 92 Une autre nouveauté est la possibilité d'écrire des fonctions UDF (User Defined Funtions), des procédures cataloguées ou des triggers en Pascal.
Fini donc les sous langages à la syntaxe plus ou moins folklorique pour le code fonctionnant au niveau du Serveur. Pour accélérer l'écriture de ces routines Serveur, Delphi comporte aussi
toute une série de Live Templates (des modèles de codes que nous invoquons par Ctrl J et comportant des emplacements à remplir)
Blackfish Sql est naturellement supporté par le Data Explorer. Ainsi, nous pouvons créer des bases, des tables, des données, en utilisant Active Query Builder.
Au niveau des licenses
- la version entreprise de RAD Studio permet une utilisation infinie pour des PC ayant 1 CPU et jusqu'à 4 connections. La taille de la base peut aller jusqu'à 512 K
- la version architecte permet une utilisation infinie pour des PC ayant jusqu'à CPU et 20 connections. La taille de la base peut aller jusqu'à 2 G
- des licenses additionnelles peuvent naturellement être achetées auprès de
CodeGear
2.3 - Active Query Builder Le Data Explorer contient un nouvel outil Visual Query Builder qui permet de construire visuellement une requête Sql:
- nous pouvons exécuter des requêtes tapées manuellement en mode conception
- nous pouvons en choisissant des Tables, en les reliant visuellement entre elle, et en sélectionnant les champs, construire des requêtes, dont le
résultat, s'il s'agit d'un SELECT est affiché dans une grille
3 - .Net 2.0 - Ado.Net - Asp.Net 3.1 - .Net 2.0
Alors que Delphi 2006 utilisait la version 1.4, RAD Studio utilise la version 2.0 (compatible 3.0) du .Net Framework. Ceci implique des améliorations au niveau de
- des composant de base de données Ado.Net 2
- des composants Internet Asp.Net 2
3.2 - La librairie .Net 2.0
La partie la plus innovante est la possiblité d'écrire des types paramétrés (generics). Au lieu de créer une collection pour des Strings, un autres pour des Integer et une troisième pour des Double, nous pouvons maintenant définir
le type en paramètre de la CLASS. Nous avons donc un nouvelle étape de généralisation de nos CLASSes. RAD Studio permet de créer de tels types et de les utiliser.
3.3 - Asp.Net 2.0
Par défaut, l'installateur mettra en place Asp.Net 2.0, mais Delphi fonctionnera aussi si vous avez déjà installé Asp.Net 3.0.
3.3.1 - Les MasterPage / ContentPage
Lorsque nous souhaitons uniformiser l'allure des pages d'un site, nous pouvons utiliser des MasterPage. Il s'agit d'une page qui contient les éléments communs, et qui est spécialisée par des pages de contenu. En somme la même
chose que proposaient les Starter Kits, ou que nous pouvions réaliser par l'écriture de pages ancêtres, en bien plus efficace et flexible.
3.3.2 - Templates Aspx
Nous disposons à présent du'une librairie de "templates Aspx" dont le but est de nous faciliter le démarrage d'une nouvelle application Asp.Net. Nous avons ainsi le choix entre une dizaine de modèles de pages, et nous pouvons en
ajouter de nouveaux. De plus la frappe de texte .Aspx bénéficie des mêmes technique de frappe que les pages Pascal: les Asp.Net templates.
3.3.3 - Asp.Net et les Bases de Données
Le Data Explorer contient les Providers Asp.Net pour Sql Server, Oracle, BlackfishSql "in-process" et "out of process".
Nous pouvons directement tirer-glisser ces connections sur les pages .Asp.Net. Au niveau des composants d'accès, nous pouvons utiliser le nouveau composant
Asp.Net SqlDataSource, ainsi que les autres composants (DbxDataSource, ObjectDataSource, XmlDataSource, SiteMapDataSource)
3.3.4 - Gestion des Utilisateur - Fragments de page - Ado.Net Nous pouvons utiliser les nouvelles techniques Asp.Net - les contrôles de navigation (menus)
- les fragments de page, très similaires aux tFrames
- fonctionnalités de login et de gestion des sessions utilisateurs (membership roles)
- les composants permettant l'utilisation d'AJAX pour une meilleur réactivité de nos pages
Nous pouvons aussi utiliser la nouvelle version ECO IV avec Asp.Net
3.4 - Ado.Net 2 Le Data Explorer contient les Providers Ado.Net pour Sql Server et Oracle
ainsi que pour BlackFish Sql en mode local ou distant Il est possible de tirer-glisser les connections ainsi définies sur la Forme Delphi.
4 - ECO IV pour .Net et Vcl.Net ECO (Enterprise Core Objects) est une librairie de modélisation et de
persistence objet. Le développeur écrit des applications au niveau objet, et la librairie se charge de sauvegarder les données dans des bases de données Sql.
La nouvelle version ECO IV comporte de nombreuses améliorations
- support à la fois d'applications VCL.NET 2.0 et ASP.NET 2.0 (alors que le développement d'applications ECO avec Vcl.Net était possible mais non automatique)
- les types de données du langage de modélisation OCL (Object Constraint Language) ont été alignés sur le système de type de .Net
- le runtime framework d'ECO IV est fourni en code source
Mentionnons que: - cette version ne fontionne que pour des applications .Net (Asp.Net ou Vcl.Net), mais pas en mode win32.
- ECO est actuellement développé dans une nouvelle société créée spécialement,
appelée CapableObjects
4.0.1 - L'outil UML Together Together a été étendu pour supporter les types paramétrables (generics) pour .Net.
Toutefois le Refactoring de generics n'est pas actuellement implémenté.
5 - IDE - Vista - MsBuild 5.1 - IDE Au niveau de l'environnement de développement
- nous pouvons créer des répertoires virtuels, qui améliorent la structuration des projets
- nous pouvons créer des connections, et des DataSet en tirant glissant des connections depuis le Data Explorer sur le Designer
- le Data Explorer contient un outil de construction visuelle des requêtes Sql, appelé Active Query Builder
5.2 - Vista RAD Studio supporte les API Vista
5.3 - MsBuild Nous pouvons compiler des projets complexes en utilisant MsBuild. Il s'agit d'un outil de type "Make" qui permet de spécifier comment lancer les compilations des différentes parties d'un projet.
Cet outil utilise à présent un format .XML. Il permet de spécifier comment compiler des projets, et de préciser comment procéder pour les différentes plateformes.
5.4 - Librairies Additionnelles
RAD Studio comporte les nouvelles versions des librairies supplémentaires Indy, TeeChart et Rave.
5.4.1 - Vcl For The Web (anciennement appelé Intraweb)
Cette librairie permet essentiellement de construire des pages Web par la même technique visuelle que des Form Windows. La nouvelle version 9.0 de cette librairie a à présent inclus les mécanismes de
bas niveau aux contrôles visuels, permettant ainsi de mettre en oeuvres les techniques AJAX, et ceci sans avoir à écrire de code en JavaScript, CSS, HTML, HTTP.
6 - Versions et Disponibilité RAD Studio 2007 Les différentes versions se distinguent par les fonctionalités et les capacités. Mentionnons que la version architecte comporte - ECO IV
- plus de capacité BlackfishSql
- la possibilité de réaliser des imports / exports de modèles UML
Vous pouvez commander cette version, actuellement. Pour la France, c'est à
présent CodeGear France qui se charge de la commercialisation.
7 - Notre point de vue Nous avons eu l'occasion d'utiliser le produit pendant plus de 15 jours. Quelques réflexions:
- de nombreux bugs ont été retirés des versions précédentes, et les performance de chargement / compilation nettement améliorées
- avec Asp.Net la synchronisation entre Cassini et Internet Explorer est parfaite
- au niveau des nouveauté
- les composants Dbx4, avec leurs possibilités d'accès aux métadonnées
- le moteur embarqué Blackfish Sql
- pour Asp.Net, nous bénéficions des apports de la version 2.0: les MasterPage, les contrôles de navigation, des fragments de page, et les techniques AJAX sont un progrès énorme pour la réalisation de sites Internet.
8 - Votre Opinion 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.
9 - Références et Liens Internet Vous trouverez sur Internet
Nous avons pour notre part déjà publié quelques tutoriaux sur RAD Studio 2007:
- BlackfishSql : présentation et utilisation de la nouvelle base de donnée Delphi BlackfishSql fournie avec le RAD Studio
2007 (Win32 et .Net) : création de la base, lecture, remplissage et écriture de données, écriture de fonctions, procédures cataloguées et triggers en Pascal
- Utiliser la nouvelle architecture DbExpress 4 : la toute récente version RAD Studio 2007 offre une nouvelle
architecture pour les bases de données. Sont expliqués comment se connecter, lire et écrire des données, réaliser un journal des appels, utiliser un pool de connections et afficher des métadonnées
- Master Pages Asp.Net 2.0 la nouvelle version Asp.Net 2.0 utilisable avec RAD Studio 2007 nous permet de définir
une structure de page hiérarchique, grâce aux Master Page et Content Pages; en utilisant l'héritage de page
- Delphi Asp.Net 2.0 et les Bases de Données : affichage et modification de données InterBase et
Blackfish Sql en utilisant Dbx4, Ado.Net Db et AdoDbxClient. Traitement de ListBox et GridView avec des DataSources
Vous pourrez aussi consulter
- pour comprendre et utiliser AJAX, Tutorial AJAX : écriture d'un application Web utilisant AJAX - Le fonctionnement AJAX,
utilisation de JavaScript et de l'analyseur DOM, construction du serveur HTTP Indy, project de développement intégré avec un tWebBrowser
- pour une introduction à ECO ECO III Tutorial
- L'IDE Delphi 2006 qui détaille la nouvelle
présentation de l'environnement pour Delphi 2006. La version 2007 en dérive directement, avec les améliorations mentionnées.
10 - 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. |