Tutorial Delphi PRISM - John COLIBRI. |
- résumé : Applications Windows Forms et Asp.Net avec Delphi PRISM, un environnement Delphi qui utilise l'environnement Visual Studio 2008
- mots clé : WinForms - Asp.Net - Delphi PRISM - Visual Studio Shell
- logiciel utilisé : Windows XP personnel, Delphi PRISM, Visual Studio Shell 2008
- matériel utilisé : Pentium 1.400 Mhz, 512 Meg de mémoire, 250 Giga disque dur
- champ d'application : Delphi 2006 .Net, Delphi PRISM pour Windows, Mac, Linux
- niveau : développeur Delphi
- plan :
1 - Présentation de Delphi PRISM Delphi Prism est la nouvelle plateforme qui permet de développer des applications .Net en Delphi. De façon résumé, Delphi PRISM est
- un compilateur Delphi (le langage Pascal Objet adapté pour les composants et le développement RAD)
- qui génère des applications utilisant la plateforme Microsoft .Net (versions 1 à 3.5)
- permettant de développer des applications PC (ne nécessitant pas Internet), ainsi que des applications Internet. Ces deux modes ont accès aux bases de données, ce qui est très généralement le besoin
- l'environnement de développement est Visual Studio 2008 Shell
Du point de vue du développeur, nous allons présenter - une application Windows Forms
- une application Asp.Net
- nous en profiterons pour décrire le maniement élémentaire de l'IDE (Integrated Development Environment, soit l'environnement de développement)
L'environnement de développement est donc Visual Studio Shell, et est très similaire à l'environnement Delphi 2005 à 2009. Sa présentation générale est la suivante: dp_00_visual_studio_shell où vous distinguerez sans difficulté - (1) le panneau pour la Forme et le Code Delphi
- (2) la palette des composants
- (3) l'Inspecteur d'Objets
2 - Installation de Delphi Prism L'installation est des plus classique. Pour utiliser Delphi PRISM, il faut disposer - le la librairie .Net
- de Visual Studio Shell
- du compilateur "Oxygen" qui compile le langage Delphi pour générer des applications qui fonctionnent sous .Net
- et optionnellement:
- installe Mono si souhaite
- installe des produits additionnels
En gros tout s'est très bien passé - comme nous avions la version "Electronic", nous avons utilisé l'adresse fournie par Codegear pour télécharger le lanceur
- lancement du lanceur après décompression du .ZIP
- même traitement pour Visual Studio Shell
- il a fallu juste cliquer ici ou là pour accepter les accords de licence
- enregistrement auprès de CodeGear
3 - Application Windows Forms Delphi PRISM 3.1 - Une application Windows locale Nous retrouvons (avec plaisir) les applications Windows construites sur la
plateforme Dot Net (qui, rappelons-le, avaient disparu avec Delphi 2007). Pour créer notre application Windows Forms (WinForms pour les intimes): |
lancez Delphi Prism par "Démarrer | Programs | Delphi Prism | Delphi Prism in Visual Studio 2008" |
| la version Delphi Prism de Visual Studio Shell est chargée, et la page de démarrage affichée (Ed: la fenêtre a été rapetissée pour éviter le
défilement écran dans votre Explorateur .HTML) | |
démarrez un nouveau projet par "File | New | Project": | |
un dialogue permettant de sélectionner le type de projet est présenté: |
| sélectionnez "Delphi Prism | Windows | Windows Application" et cliquez "Ok" | |
au bout de quelques secondes, un projet WinForms vide est créé: |
3.2 - Ajout d'un Button et d'un événement Notre première application va afficher la fenêtre en rouge par un clic sur un Button. Nous récupérons le Button de la Toolbox (== la Palette). Par défaut, la
Toolbox est repliée sur la gauche de la fenêtre.
Pour visualiser la Toolbox |
promenez la souris du côté de l'icône située à la marge gauche (la flèche rouge) |
| pour fixer (pinning) cette fenêtre, cliquez la "punaise" située en haut à droite de la Toolbar |
Posons le Button et colorions la fenêtre en rouge:
Compilons et exécutons: | sélectionnez soit l'icône "start debugging" (flèche rouge) ou "start without debugging" (la flèche verte)
| | la fenêtre est affichée:
|
Notez que:
3.3 - Ajout d'un dialogue Le Solution Explorer contient un certain nombre de fichiers. Pour mieux
comprendre leur organisation, ajoutons une seconde fenêtre que nous allons afficher de façon modale Par conséquent : |
cliquez la petite flèche de la seconde icône de la Toolbar "add new item", et sélectionnez le premier élément "new item" (ou clic droit sur "Solution Explorer | WindowsApplication1 | Add | New Item" ou encore "Project | Add New Item")
| | le dialogue "New Item" est présenté
| | cliquez "Windows Form" |
| une nouvelle forme est créée |
| posez un composant sur Form1, par exemple une CheckBox | |
retournez sur la forme principale par "Solution Explorer | double click sur Main.Pas' |
| posez un Button, créez son événement, et tapez le code qui ouvrira la forme de façon modale:
method MainForm.button2_Click(sender: System.Object; e: System.EventArgs);
var l_form_1: Form1; begin
l_form_1:= New Form1;
if l_form_1.ShowDialog= System.Windows.Forms.DialogResult.Cancel
then BackColor:= Color.Lime;
end; // button2_Click | | Notez que
- nous avons ajouté une CheckBox sur Form1, car sinon le compilateur se plaignait de l'absence de FORM1.RESX
3.4 - Les fichiers utilisés
En examinant le Solution Explorer, la structure devient plus claire - le fichier PROGRAM.PAS est le point d'entrée principal qui lance la fenêtre MAIN.
- pour chaque fenêtre, il y a 3 fichiers:
- xxx.PAS qui contient notre code
- xxx.DESIGNER.PAS qui créé les composants
- xxx.RESX un fichier qui contient les resources (icônes etc)
- la fenêtre qui est lancée par le programme principal est appelée MAIN
- les autres fenêtres sont appelées FORM1, FORM2 etc
Tous ces fichiers sont placés dans: C:\Documents and Settings\ds\Mes documents\Visual Studio 2008\Projects\WindowsApplication1\WindowsApplication1
et voici le détail de ce répertoire (_data est un répertoire que nous avons ajouté pour nos bases de données DataSnap et Ado.Net, et qui n'a rien à voir avec cette application):
3.5 - Le code de MAIN.PAS Le code de MAIN.PAS est ls suivant:
namespace WindowsApplication1; interface uses
System.Drawing, System.Collections,
System.Collections.Generic,
System.Linq,
System.Windows.Forms,
System.ComponentModel; type MainForm =
partial class(System.Windows.Forms.Form)
private
method button1_Click(sender: System.Object; e: System.EventArgs);
method button2_Click(sender: System.Object; e: System.EventArgs);
protected
method Dispose(disposing: Boolean); override;
public
constructor;
end; // MainForm implementation
constructor MainForm; begin
InitializeComponent(); end; // MainForm
method MainForm.Dispose(disposing: Boolean);
begin
if disposing then begin
if assigned(components) then
components.Dispose(); end;
inherited Dispose(disposing);
end; // Dispose
method MainForm.button1_Click(sender: System.Object; e: System.EventArgs);
begin BackColor:= Color.Red;
end; // button1_Click
method MainForm.button2_Click(sender: System.Object; e: System.EventArgs);
var l_form_1: Form1; begin
l_form_1:= New Form1;
if l_form_1.ShowDialog= System.Windows.Forms.DialogResult.Cancel
then BackColor:= Color.Lime;
end; // button2_Click end. | Notez que
- le mot clé UNIT est remplacé par NAMESPACE
- la Classe est une Classe Partial. Nous retrouverons l'autre partie de cette Classe dans le fichier MAIN.DESIGNER.PAS
- les mots clé PROCEDURE et FUNCTION ont été remplacés par METHOD
- le CONSTRUCTOR n'a pas ce nom: c'est le constructeur par défaut
- la méthode MainForm et le Constructor sont dans une section (repliée par défaut dans l'IDE)
- les paramètres sont à la syntaxe .Net: e: System.Arg, le type dépendant en général de la méthode
- les composants et les propriétés sont ceux de .Net:
- un type Button (au lieu de tButton)
- une propriété BackColor (au lieu de Color)
- une valeur Color.Red (le type de l'énuméré et la valeur) au lieu de la constante clRed
- pour créer un objet, il faut utiliser la nouvelle syntaxe New
- l'ouverture d'une fenêtre modale se fait par ShowDialog (au lieu de ShowModal)
- la valeur de résultat modal se désigne par System.Windows.Forms.DialogResult.Cancel (au lieu de la constante
mrCancel)
A par les nouveaux mots clé, l'utilisation de la notation .Net a déjà été abondamment présentée dans nos tutoriels précédents sur Delphi .Net.
3.6 - Le code de MAIN.DESIGNER.PAS
Le contenu de MAIN.DESIGNER.PAS est le suivant namespace WindowsApplication1;
interface uses
System.Windows.Forms,
System.Drawing; type MainForm =
partial class
private
components: System.ComponentModel.Container := nil;
button1: System.Windows.Forms.Button;
button2: System.Windows.Forms.Button;
method InitializeComponent;
end; implementation
method MainForm.InitializeComponent; begin
var resources: System.ComponentModel.ComponentResourceManager
:= new System.ComponentModel.ComponentResourceManager(typeOf(MainForm));
self.button1 := new System.Windows.Forms.Button();
self.button2 := new System.Windows.Forms.Button();
self.SuspendLayout(); // -- button1
self.button1.Location := new System.Drawing.Point(13, 13);
self.button1.Name := 'button1';
self.button1.Size := new System.Drawing.Size(75, 23);
self.button1.TabIndex := 0;
self.button1.Text := 'button1';
self.button1.UseVisualStyleBackColor := true;
self.button1.Click += new System.EventHandler(@self.button1_Click);
// -- button2
self.button2.Location := new System.Drawing.Point(13, 43);
self.button2.Name := 'button2';
self.button2.Size := new System.Drawing.Size(75, 23);
self.button2.TabIndex := 1;
self.button2.Text := 'button2';
self.button2.UseVisualStyleBackColor := true;
self.button2.Click += new System.EventHandler(@self.button2_Click);
// -- MainForm
self.ClientSize := new System.Drawing.Size(292, 273);
self.Controls.Add(self.button2);
self.Controls.Add(self.button1);
self.Icon := (resources.GetObject('$this.Icon') as System.Drawing.Icon);
self.Name := 'MainForm';
self.Text := 'MainForm';
self.ResumeLayout(false);
end; // InitializeComponent end. |
Notez que: - la Classe est aussi Partial
- nous retrouvons bien la définition de nos deux Buttons
- la méthode InitializeComponent se charge de créer les composants par code
(au lieu d'utiliser, comme Delphi Win32 un fichier .DFM qui est utilisé par une procédure de l'.EXE pour créer les composants). Au niveau de résultat, c'est strictement la même chose, mais, pour de nouveaux composants cela de
s'inspirer de ces instructions de création pour créer des composants nous même dynamiquement
Cette technique était aussi la même en Delphi 2006.Net
3.7 - Le "programme" principal
Le code de PROGRAM.PAS est le suivant: namespace WindowsApplication1;
interface uses System.Threading,
System.Windows.Forms;
type Program =
assembly static class
private
class method OnThreadException(sender: Object;
e: ThreadExceptionEventArgs);
public
class method Main;
end; // Program implementation
[STAThread]
class method Program.Main;
// The main entry point for the application. begin
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.ThreadException += OnThreadException;
using lMainForm := new MainForm do
Application.Run(lMainForm);
end; // Main
class method Program.OnThreadException(sender: Object;
e: ThreadExceptionEventArgs);
// Default exception handler begin
MessageBox.Show(e.Exception.Message);
end; // OnThreadException end. |
Et nous constatons que - la Classe contenant le programme est définie comme une Assembly, ce qui, dans la terminologie .Net est similaire à "Module" en Win32 (.DLL ou .EXE)
- la Method de Classe Main créé bien la fenêtre principale et lance l'application
3.8 - Les autres fichiers Le fichier xxx.SLN (sln = Solution) correspond au projet. C'est celui-ci
que nous cliquons lorsque nous souhaitons charger un projet. Le fichier .EXE est situé dans BINDEBUG et ne fait que 32 K
3.9 - Le Solution Explorer
Notre Solution Explorer se présente ainsi: Mentionnons simplement que :
- la zone référence contient les autres "assemblies" utilisées par notre projet. C'est ici qu'il faudra éventuellement ajouter des assemblies qui ne seraient pas importés automatiquement par Delphi Prism
4 - Navigation et Raccourcis Visual Studio 4.1 - Les noms et les emplacements Naturellement, outre les changements de noms (Propriété au lieu d' Inspecteur
d'Objet, Toolbox au lieu de Palette) et d'emplacement (les Propriétés à droite au lieu de gauche etc), le plus déroutant pour les nouveaux arrivants dans le monde Visual Studio est la navigation et les raccourcis.
Voici donc un petit guide à ce sujet 4.2 - Organisation Générale Visual Studio Visual Studio comporte deux types de panneaux - les "documents" qui sont situés dans le panneau central. Dans notre cas, c'est là que seront présentés
- les formes (designer)
- les textes
- essentiellement les fichiers de code
- ou d'autres fichiers (fichiers .XML, .CSS etc
- les "tools" qui sont utilisés pour manipuler les documents. Dans notre cas :
- la Toolbox (et le Serveur Explorer situé dans un autre onglet)
- les Properties qui contient les propriétés et les événements
- le Solution Explorer qui présente tous les fichiers utilisés par nos
applications (dans l'onglet "Class View" une vue des Classes, mais qui n'est actuellement pas opérationnel)
- les panneaux du bas (Output, Error list, dont nous n'aurons naturellement jamais besoin, etc)
Tous ces éléments sont éminnement "dockables". Très vite la présentation initiale risque d'être modifiée, et de redocker les panneaux à un emplacement donné se révèle non trivial. Heureusement il existe
un bouton "panique", accessible par "Window | Reset Window" que nous utilisons assez régulièrement (il existe vraissemblablement quelque part une possibilité de verrouiller le docking).
4.3 - Navigation Code / Designer
Pour un développeur, le plus crucial est la navigation Code / Forme. Le plus simple est d'utiliser les icônes situées en haut du Solution Explorer. Naviguons par exemple entre le code et la Forme de Main:
Le panneau central ne peut pas être défilé. En revanche nous pouvons utiliser
la petite flèche "Active Forms" située à côté de l'icône de fermeture de document:
4.4 - Raccourci de Navigation entre les Tools Pour naviguer entre les panneaux nous pouvons utiliser Par exemple
Si par mégarde vous fermez une Tool, vous pouvez la réafficher par le menu "View"
Les Properties Ce panneau affiche - les propriétés du composant sélectionné sur la Forme
- un peu plus étonnant, les propriétés d'un fichier sélectionné (par simple clic) dans le Solution Explorer
Pour les propriétés des composants, nous basculons des propriétés aux
événements en cliquant l'icône "Events" située en haut des Properties:
Raccourcis divers
De nombreuses navigations et actions sont possibles en utilisant des raccourcis claviers. Citons entre autre - Ctrl Shift B pour compiler
- Ctrl Tab pour changer de document:
- Ctrl F6 (et Shift Ctrl F6) ont le même rôle (en évitant le dialogue)
- F5 lance la compilation
- pratiquement toutes les Tools sont accessibles directement par des raccourcis (par exemple Ctrl Alt X pour la ToolBox). Pour connaître ces raccourcis, voyez le menu "View"
Nous ne pouvons pas dire que ces choix de raccourcis nous ont transporté d'allégresse. Toutefois il doit être possible de les redéfinir ("Tools | Options | Environment | Keyboard). Pour une présentation plus complète des
raccourcis Visual Studio, consultez le les pages MSDN
5 - Application ASP.NET avec Delphi PRISM Voici une application Asp.Net simple
| fermez l'application précédente par "File | Close Solution" | Il est possible de gérer plusieurs projets simultanément, mais nous préférons
travailler projet par projet s'ils n'ont aucun lien en commun
Voici notre exemple qui colorie une page .HTML en rouge: |
créez une application Asp.Net par "File | | |
un dialogue nous propose soit une application Asp.Net soit un service Web: |
| sélectionnez l'application Asp.Net | |
au bout de quelques instants, une nouvelle application Asp.Net est présentée: |
Notez que
- comme d'habitude, dans l'IDE, une fenêtre Asp.Net comporte trois partie
- le texte du "modèle", stocké dans un fichier xxx.Aspx
- la Forme, qui représente la page telle que la verra l'utilisateur
(designer, qui est une représentation graphique du fichier .ASPX)
- le code, contenant nos événements, contenu ici dans le fichier xxx.ASPX.PAS
- il existe comme d'habitude un fichier WEB.CONFIG (gestion de la sécurité,
des Data Providers etc) et un MACHINE.CONFIG global
- pour naviguer de l'une de ces partie à une autre, nous utilisons
- les icônes "code" et "designer" au dessus du Solution Explorer (flèches mauves et bleues)
- les icônes au bas du document (flèches rouges)
- le projet indique "c:\..\Website1\. En fait, les paramètres du projet (*.SLN) sont sous "PROJECTS" alors que les fichiers Asp.Net sont sous "WEBSITES":
Le répertoire APP_DATA est, comme d'habitude, créé pour placer les données propres à notre "site", comme, par exemple une base de données Blackfish Sql.
Ajoutons notre bouton:
Mentionnons que la dernière icône située en haut et à droite du Solution
Explorer lance l'outil d'administration du site (la sécurité, les rôles, profils etc, cf notre article sur le sujet):
6 - Notre Opinion et quelques Commentaires 6.1 - Un bref historique Comme nous l'avons déjà présenté dans l'article sur les versions Delphi :
- Delphi 2006 .Net permettait de développer des applications utilisant la librairie .Net
- en utilisant directement la librairie .Net
- pour Windows Forms (non internet)
- pour Asp.Net (internet)
- en utilisant une couche d'adaptation pour avoir le même code que sous Win32, Vcl.Net. Le même code Win32 pouvait être compilé, en utilisant simplement une autre librairie sous-jacente
- Rad Studio 2007 ne permettait plus que la création d'applications Asp.Net, mais avec la version 2.0 de .Net
- Delphi 2009 était purement Win32
Delphi PRISM permet donc à nouveau de réaliser des applications - non Internet
- Asp.Net pour Internet (plus des services Web)
et en ayant accès aux nouveautés de la version 3.5 de .Net
Commercialement, Delphi PRISM est fourni avec "Rad Studio 2009", avec Delphi 2009 pour la partie Win32, et Delphi PRISM pour la partie .Net
Certains regrettent l'abandon de Vcl.Net, qui permettait de compiler indifféremment avec la librairie Win32 ou .Net. D'autres affirment que l'adaptation difficile entre deux librairies assez différentes faisaient de
Vcl.Net un produit hybride, que ne pouvait être parfait ni dans le monde Win32 ni dans celui de .Net. Pour notre part, nous n'avons guère utilisé cette version Vcl.Net. A droite ou
a gauche, mais pas au milieu. Pour des applications utilisant la syntaxe Win32 (les tEdit, les tStringlist), travailler directement en Win32 offre l'avantage de l'accès direct à la librairie et de la performance (compilation,
vitesse d'exécution, et, in fine, coût de développement). Au contraire, la possibilité d'écrire du code Delphi (= Pascal objet) pour accéder en direct à la librairie .Net (Clr, Fcl) nous paraissaient une
ouverture majeure. Force est de reconnaître que Microsoft, avec ses moyens, impose un peu la tendance. Par exemple les génériques et méthodes anonymes de Delphi 2009 "suivent" les concepts introduits par .Net 2.0. Il reste donc
important de garder un oeuil attentif sur les nouveautés introduites par .Net Vous l'avez compris, nous ne regrettons en rien l'abandon de Vcl.Net En revanche, nous avons du mal à comprendre pourquoi Codegear n'a pas pu
adapter leur compilateur à la librairie .Net 3.5. Ils avaient déjà réalisé un compilateur "Delphi Pascal => .Net 2.0", et avaient déjà un IDE sous la main. RemObject a du réaliser un travail bien plus important en adaptant leur
compilateur "Pascal => .Net 3.5" à la plateforme Visual Studio. Marc HOFFMAN de RemObject a souligné que la majeure partie de leur temps a été de trouver les points d'entrée dans Visual Studio, et que ceci n'a été possible que grâce à
des contacts personnels avec les développeurs de Microsoft. Edifiant pour ceux qui souhaitent utiliser Visual Studio Shell.
6.2 - RemObjects Cette société a commencé par offrir une couche d'accès aux bases de donnée et
aux objets distribuée "Data Abstract". Puis elle a ajouté un compilateur "Pascal => .Net". Lorsque Microsoft a lancé .Net, ils ont activement soutenu les organisations qui créaient des
compilateurs de n'importe quel langage (Prolog, Fortran, Lisp, Pascal etc) vers le code intermédiaire MSIL (Microsoft Intermediate Language). L'environnement .Net se chargeait de passer du MSIL vers le code natif.
En Octobre 2000 une version Open Source (Component Pascal, Université de Queensland) étaient disponible sur le Web. Nous ignorons si RemObject a utilisé ou non cette base pour créer sa première version "Pascal => .Net" (Chrome),
mais cette version a été une base pour explorer certaines extensions de Delphi Pascal. RemObjects a ensuite proposé le compilateur Oxygen. C'est ce compilateur qui a été intégré à Delphi PRISM
6.3 - Delphi PRISM
En résumé, pour constituer Delphi PRISM - Microsoft offre
- un Ide générique "vide" comportant un inspecteur d'objet, une palette et une zone pour les "documents".
Les personne souhaitant utiliser cet Ide installent leur produit par dessus, et c'est ce qu'a réalisé RemObjects. - la librairie .Net. Donc
- une couche de gestion (compilateur, gestionnaire mémoire, vérification des types)
- une librairie de composants (Edit, Collection)
- RemObject ajoute
- un compilateur "Pascal" vers le code intermédiaire .Net
- le raccordement entre ce langage et l'Ide et la librairie .Net
- accessoirement la librairie Data Abstract
- Codegear encapsule le tout
- en ajoutant la couche d'accès aux données dbx4 / DataSnap et Blackfish Sql
6.4 - Nos commentaires sur l'utilisation de PRISM
6.4.1 - Le code Delphi Pascal Pour le langage : - quelques modifications de forme
- utilisation de Method, Assembly etc, et de nouveaux mots clé
- utilisation des librairies et conventions .Net
- signatures différentes (paramètres événement, par exemple)
- librairie FCL
En revanche, nous bénéficions - d'une syntaxe Pascal
- Begin et End etc
- plus important, With, variables globales, constantes, paramètres valeur
et variable, Units comme élément d'aggrégation, séparation de l'Interface et de l'Implementation
- de nombreux ajouts propres à .Net
- les génériques et les méthodes anonymes
- les extensions de type LINQ (qui semblerait toutefois en voie d'obsolescence du côté de Microsoft)
- les extensions RemObject : Marc HOFFMAN a incorporé quelques unes de ses marottes, comme
- les contrats (DBC Design By Contract, cher à Bertrand MEYER)
Nous approuvons fortement ces amélioration, et ne pouvons que souhaiter qu'elles soient incorporées prochainement à Delphi Win32
6.4.2 - Quant à l'IDE: Nous avons relevé - des nouveautés superficielles
- au niveau des noms et de la position
- la Palette s'appelle la Toolbox et est à gauche
- le gestionnaire de projet s'appelle le "Solution Explorer"
- l'Inspecter d'Objet s'appelle Properties et ne comporte pas d'onglet "événement"
Pas très grave: nous savons à priori ce qu'il faut trouver (une Palette, un un Inspecteur d'Object, une zone de conception et un Editeur de code). Donc il suffit de chercher un peu - au niveau des raccourcis
- pas, semble-t-il de raccourci pour basculer entre le concepteur et l'inspecteur (F11 et F12)
- des raccourcis compliqués en général (Ctrl Shift B !)
- docking très sensible, et impossibilité de le bloquer
- quelques fonctionnalités non implémentées
- possibilité d'effacer un fichier depuis le Solution Explorer
- impossibilité d'utiliser "Clic Droit | Sauvegarder" sur chaque fichier
dans le Solution Explorer
- "Enregistrer sous" pénible
- dans les options, absence semble-t-il de spécifier les chemins de destination de l'.EXE, les chemins de recherche des Unités
- absences de certaines possibilités ou composants:
- le Class Explorer
- certains composants utilisant les bases de données (tXxxConnection etc). L'ensemble se fait en utilisant des Wizards (ou ensuite par code)
Nous avons aussi trouvé certaines lenteurs. Mais comme nous avons utilisé un PC à 1.400 Mhz et 512 Mb de mémoire, vous bénéficierez sans aucun doute avec les PC actuels d'une meilleure performance.
6.4.3 - Linux et Mac Nous ne l'avons pas mentionné, mais Delphi PRISM permet de développer des applications destinées à Linux (via la librairie MONO qui émule .Net) et Mac Intosh (via une version de Mono pour Mac)
6.4.4 - L'aide et la Documentation C'est peut-être là que le bat blesse. Actuellement F1 n'est pas implémenté, mais devrait être ajouté par la suite La documentation est proposée sous forme de Page Wikipedia :
Notez que - il est recommandé de télécharger régulièrement les mises à jour, la version initiale (4 Meg) étant constamment enrichie (12 Meg pour notre
téléchargement Février 2009)
- ATTENTION, il existe aussi Delphi Prism qui est un Wiki sans le soutien de Codegear, et plutôt creux
- pour avoir une vision plus épurée et hiérarchique de ce Wiki, nous avons créé un outil qui présente les fichiers
.HTML avec un accès par TreeView:
Ce qui manque le plus est l'aide .Net. Pour Delphi 2006 et 2007, Codegear avait
licencié l'aide Microsoft. Même si les exemples sont en C#, c'était une source inestimable pour explorer la librairie (les Classes, leurs relations, les propriétés, événements et méthodes) et pour les exemples très nombreux. Sans ce
type de document, comment donc deviner que pour ouvrir un dialogue il faut utiliser "ShowDialog" et pas "ShowModal" ? La page "téléchargement recommandé" de Delphi Prism suggère de télécharger le Visual Studio SDK (136 Megs, 6 heures à 61 Kbd)
Pour le moment, nous utilisons l'aide Microsoft fournie avec Delphi 2007.
La situation n'est pas sans espoir: - pour ceux qui ont Delphi 2006 ou 2007, utiliser l'aide Microsoft
- télécharger le Sdk Microsoft
- utiliser l' Object Browser ("View | Object Browser", alias "Alt Ctrl J"):
- user et abuser du "code completion". Un de nos clients m'a récemment montré une technique à laquelle je n'avais pas pensé: pour visualiser les méthodes et propriétés d'une Forme, tapez "Self." (Self et un point).
- finalement, F1 devrait arriver
- utiliser les newsgroups Delphi PRISM.
Nous avons utilisé nos aspirateur Internet (déjà publiés en source) pour
avoir une copie locale ayant un moteur de recherche avec AND, OR, NOT, parenthèses etc. Mais naturellement la version en ligne est aussi utilisable - faire appel à MSDN (le site d'information développeur Microsoft), les sites
.Net (comme Code Project), ou, plus généralement Google.
6.5 - La Roadmap Prism Nick HODGES a publié une Roadmap PRISM qui a été traduite
en Français par Thierry LABORDE. Cette feuille de route indique que: - l'intégration d'accès aux bases de données va s'étoffer. En particulier
- la possibilité de créer des serveurs DataSnap
- l'utilisation de l'"Entity Framework" qui semble le remplaçant de LINQ
- l'intégration de Nunit, l'environnement de test unitaire
6.6 - Notre recommandation En conclusion
- Delphi PRISM nous permet de "recoller" aux nouveautés Microsoft
- les personnes ayant déjà utilisé une version Delphi .Net seront rapidement opérationnels, ayant uniquement à se familiariser avec Visual Studio.
- en revanche débuter dans le monde .Net en utilisant Delphi PRISM ne sera pas évident compte tenu de la documentation actuelle. Naturellement des articles sur Developpez ou ailleurs - :) -vous aideront à découvrir ce monde nouveau
Et compte tenu de la position privilégiée de Delphi PRISM (syntaxe Delphi PASCAL avec accès au monde .Net), nous avons déjà organisé des
Formations Delphi PRISM
7 - Télécharger le code source Delphi
Vous pouvez télécharger les (petits) projets présentés dans cet article: Ce .ZIP qui comprend: - le .DPR, la forme principale, les formes annexes eventuelles
- les fichiers de paramètres (le schéma et le batch de création)
- dans chaque .ZIP, toutes les librairies nécessaires à chaque projet (chaque .ZIP est autonome)
Ces .ZIP, pour les projets en Delphi 6, contiennent des chemins RELATIFS. Par conséquent: - créez un répertoire n'importe où sur votre machine
- placez le .ZIP dans ce répertoire
- dézippez et les sous-répertoires nécessaires seront créés
- compilez et exécutez
Ces .ZIP ne modifient pas votre PC (pas de changement de la Base de Registre, de DLL ou autre). Pour supprimer le projet, effacez le répertoire.
La notation utilisée est la notation alsacienne qui consiste à préfixer les identificateurs par la zone de compilation: K_onstant, T_ype, G_lobal,
L_ocal, P_arametre, F_unction, C_lasse. Elle est présentée plus en détail dans l'article La
Notation Alsacienne
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.
8 - Liens et Références Quelques liens utiles:
- le Visual Studio Shell : l'IDE générique Microsoft
- les pages MSDN, comme, par exemple:
- le PrismWiki
- Les newsgroups Delphi PRISM accessibles par https://forums.codegear.com/category.jspa?categoryID=51 sont les suivants:
embarcadero.public.delphiprism.aspnet.webservices
embarcadero.public.delphiprism.compactframework embarcadero.public.delphiprism.language embarcadero.public.delphiprism.mono.linux embarcadero.public.delphiprism.mono.osx embarcadero.public.delphiprism.non-technical
embarcadero.public.delphiprism.silverlight embarcadero.public.delphiprism.thirdpartytools embarcadero.public.delphiprism.winforms embarcadero.public.delphiprism.wpf
- La Roadmap PRISM se trouve à Prism Roadmap, avec une traduction française sur le site de Logix
- Nous proposons aussi des Formations Delphi PRISM dont le programme détaillé se trouve sur notre site.
9 - 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. |