Académique Documents
Professionnel Documents
Culture Documents
Developpez
Magazine
Edition de Septembre 2005.
Numro 3. Magazine en ligne gratuit. Diffusion de copies conformes loriginal autorise. Directeur de la publication : Bobby Joe Lambert Ralisation : Hugo Etivant Rdaction : la rdaction de Developpez Contact : magazine@redaction-developpez.com
Perl
Dbutez avec facilit et rapidit
page 4 Java....................page 2 C/C++.................page 7 Access.................page 8 .NET....................page 8 SGBD.................page 11 UML...................page 11 Web...................page 11 Pascal................page 12 Delphi................page 12 Liens.................page 13
Developpez.com
Cours .NET
Nouvelle FAQ !
Editorial
La rentre 2005 annonce sont lot de nouveauts : une nouvelle rubrique, de nouvelles F.A.Qs... Et comme toujours son contingeant de cours de haute vole, les confrences et autres critiques de livres. Bonne rentre tous !
Developpez Magazine est une publication du site Developpez.com
F.A.Q PostgreSQL
Dcouvrez la nouvelle FAQ PostgreSQL avec dj prs de 50 Q/R. Elle a t ralise partir des contributions des membres du forum PostgreSQL de Developpez.
-> http://dgriessinger.developpez.com/postgresql/faqpg/
Nouvelle rubrique !
InterBase/Firebird
-> http://interbase.developpez.com/
page 1
Developpez.com
Developpez Magazine
Java
Les derniers tutoriels
Drag & Drop avec Style et l'API Lire le cours de Romain Guy (lien 2) Swing Comment pouvons nous nous dbarasser Mixer Java3D et Swing Introduction Log4J
Ce cours est une introduction au systme de journalisation pour java de Jakarta : Tutoriel d'introduction sur l'utilisation de log4j. L'accent est mis sur la faon de le des curseurs de drag & drop simplistes offerts par Java ? La solution rside dans l'API Java3D avec la librairie graphique configurer. Lire le cours de Sbastien Le Ray (lien 5) la dmo Drag n' Ghost que je vais vous Swing. Lire le cours de Romain Guy (lien 3) montrer. Construction d'une application Lire le cours de Romain Guy (lien 1)
A Dmonstration sur l'utilisation de Faces) avec l'EDI NetBeans. RMI composants Swing pour attendre lors de Lire le cours de Olivier SCHMITT (lien Lire le cours de Serge Tah (lien 6) 4) l'excution de tches longues.
Introduction JSF avec MVC distribue avec Spring Attendre avec style et l'API NetBeans Remoting Article dintroduction JSF (Java Server Partie 1 : HttpInvoker, Hessian, Burlap, Swing
Vu dans le blog
Valider les saisies grce aux annotations.
Lors de la rdaction de mon tutoriel sur les annotations, j'ai bien entendu consult plusieurs articles sur le sujet. Parmis ceux-ci, le plus intressant est sans aucun doute celui de Anders Holmgren, publi en mars 2005 sur le site de Sun, et traitant de la possibilit d'ajouter des contraintes de validation sur les proprits d'un bean en utilisant seulement des annotations : Using Annotations to add Validity Constraints to JavaBeans Properties (en anglais bien sr, lien 7). Je vous conseille fortement d'y jeter un coup d'oeil... Tout cela pour dire que je me suis mis en tte de dvelopper une librairie basique pour la validation de formulaire web dans une application J2EE, la manire du plugin Validator de Struts, mais qui utiliserait les Annotations de Java 5.0. Pour le moment, je vois trois principaux modules dans cette librairie: Un module qui se chargera de valider les diffrentes proprits en fonction de leurs contraintes. Un module utilisant APT afin d'effectuer des vrifications lors de la compilation des beans. Un module permettant de gnrer des formulaires HTML dans une page JSP (via des taglibs). adiGuba
Confrences
Le symposium JAOO 2005 se droulera sur six jours (du 25 au 30 septembre) Aarhus (Danemark). Elle est la confrence europenne la plus importante autour de l'ingnierie logicielle, des mthodes de dveloppement et "Best practices". Ses centres d'intrts sont les technologies Java, l'orient objet et .Net. Inscriptions : https://secure.eos.dk/registration/ Javapolis 2005 du 12 au 16 dcembre 2005, vous pourrez couter, et mme cotoyer, les personnes qui font vivre Java. Elle se tient dans le complexe cinmatographique Metropolis d'Anvers, en Belgique. Inscriptions : http://www.javapolis.com/jp05reg/
Developpez.com
Developpez Magazine
Java
Critique de livre
Au coeur de Java 2, Volume 2, Fonctions avances JDK 5.0 Cay S Hortsmann & Gary Cornell Editions Campus Press Rfrence inclure l'API XPath. Enfin, un nouveau chapitre a t ajout il Plus de 250 000 program- traite des annotations et des meurs ont utilis Au cur de mtadonnes, des fonctionJava 2 Volume 1- Notions nalits ajoutes au JDK 5.0. fondamentales pour consolider leur savoir sur la Critique technologie Java. Ce second volume va plus loin encore Ce second tome complte et constitue un guide merveille le premier (voir complet pour rsoudre les critique du 1er tome sur problmes quotidiens des developpez.com) dveloppeurs. La cinquime dition du volume 2 entre en Le 1er chapitre a t rcrit, pour dtail dans des sujets tels que entirement la programmation de aborder la nouvelle API l'interface utilisateur et les concernant la Concurrence fonctions professionnelles introduite dans la version 5 de de la plate-forme java 2, Java. Cette nouvelle API met dition standard (JSETM). votre disposition tout un Totalement mis jour, cet ensemble de classes et ouvrage traite les multi- interfaces vous permettant de threads, qui permettent construire plus facilement des d'excuter des tches en applications mutithreads perparallle, l'API JDBC 2.0, formantes que ce qui tait CORBA, le glisser-dposer possible jusqu' prsent. et le modle de scurit Java 2. Ce dernier a t revu pour Le second chapitre, couvrant le JDK 5.0, de faon les Collections, a t tendu prendre en compte les pour aborde la notion de Queue, algorithmes de cryptage la classe PriorityQueue, .... Ce AES et RSA. Les techniques chapitre explique galement les de Swing avances sont tables de hachage, et pourquoi abordes, dont les com- il est important de choisir un posants GUI complexes bon code de hachage. Il aborde d'arbres et de tables, les galement la notion de Weak indicateurs de progression et Reference, bien que cela soit l'implmentation Java d'une trait de faon plus superficielle interface "plusieurs que dans le livre HardCore documents". Un chapitre Java, de chez Oreilly. dcrit les techniques de conception des cadres de J'ai une remarque ngative collections et l'exploitation faire l'encontre des traducdes donnes structurelles teurs. Pourquoi ont il traduit les fondamentales autorises par noms des classes et/ou la bibliothque standard interfaces en franais dans les Java. Cette dition explique figures montrant les anciennes aussi comment internat- classes, comme Vector, Map et ionaliser des applications Properties. Mais cela ne Java, gnrer du XML et concerne qu'une figure sur une utiliser les transformations page dans tout le livre. XSL. Le chapitre consacr au XML a t mis jour pour
Rsum diteur
Je n'ai pas eu l'impression qu'il y a beaucoup de modification concernant les chapitre 3 10 par rapport l'ancienne version. Mme si le chapitre sur la scurit couvre maintenant AES et RSA, et que le chapitre XML couvre XPATH. Mais cela est assez concis et rien de tel qu'un ouvrage de rfrence sur XML et XPATH. Et que les exemples ont t revus. Par exemple, dans le chapitre 9, il expliquent comment appeler une mthode printf depuis Java. Le chapitre 11 concernant les annotations est quant lui tout fait nouveau et vous explique en dtails. Il aborde galement BCEL, qui vous permet de manipuler directement du ByteCode. Pour ceux qui possdent une ancienne dition de ce deuxime tome , l'achat de celui ci vous sera utile si vous voulez connaitre les nouveauts introduites au niveau du Multithreading, des collections, des certificats RSA et AES, et connaitre les annotations. Pour ceux qui ne possedent pas d'ancienne dition de ce deuxime tome, je ne peux que vous conseiller ce livre de rfrence. En tout cas, si vous avez achet rcemment la dernire dition du Tome 1, n'hsiter pas acheter son compagnon. Vincent Brabant
ISBN: 2-7440-1962-3
critique
page 3
Developpez.com
Developpez Magazine
Perl
I. Conditions en Perl
page 4
Developpez.com
Developpez Magazine
Perl contient quelques variables rserves qui sont bien utiles notamment pour manipuler les paramtres d'appels d'un script, rapporter une erreur ou connatre son environnement. Loin de nous est l'objectif de dresser une liste exhaustive de ces diffrentes variables, nous nous contenterons de vous citer les plus utiles. Commenons par quelques variables scalaires spciales. Savez-vous qu'il existe une variable scalaire par dfaut ? Celle ci est not $_. Elle Enfin, il existe l'oprateur de dcrmentation (--) qui se base sur les contient tout ce qui est en cours d'une boucle ou elle est la variable par mmes rgles que l'incrmentation. Notre boucle se termine lorsque sa dfaut de nombreuses fonctions. valeur atteint 10. special1.pl En fait, comme tout langage, Perl vous autorise crire une boucle selon #!/usr/bin/perl votre prfrence. Par exemple, la boucle for permet de rassembler en 1 @liste = (0,1,2,3,4,5,6,7,8,9,10); ligne l'initialisation d'une variable, sa condition et son incrmentation. print "Table de multiplication de 2\n"; La boucle for signifiant "pour", reprenons notre exemple de tout foreach (@liste){ l'heure : print "$_*2 = ".($_*2)."\n"; } boucle2.pl #!/usr/bin/perl Vous connaissez ce code, il s'agit de l'affichage de la table de print "Table de multiplication de 2\n"; multiplication de 2 l'aide d'une boucle foreach. Mais vous me direz for ($i=0; $i<=10; $i++){ qu'il manque une variable. Pas du tout ! Dans notre ligne o nous print "$i*2 = ".($i*2)."\n"; dcrivons notre boucle foreach, la variable spciale $_ peut tre crite } explicitement sinon elle est appel implicitement par le code. Notre code aurait p s'crire de la manire suivante avec le mme rsultat : Un code plus court, n'est-ce pas ? L'utilisation d'un for n'est gure diffrente de la boucle while. La boucle for nous dit : "Pour $i gal 0 special2.pl et tant que $i est infrieur ou gal 10, j'incrmenterais de 1 $i et je #!/usr/bin/perl ferais ce que l'on me dit de faire". @liste = (0,1,2,3,4,5,6,7,8,9,10); print "Table de multiplication de 2\n"; Dans notre partie consacre aux conditions, nous avons vu qu'il existait foreach $_ (@liste){ un oppos if nomm unless. Comme dans la nature, il existe un oppos print "$_*2 = ".($_*2)."\n"; pour chaque lment, la boucle while a aussi son oppos : until. Les } boucles while et for se ralisent tant que la condition est vrai, la boucle until se ralise tant que sa condition est fausse. En anglais, until se Il est aussi parfois bien utile de rapporter une erreur. La variable $! sert traduit par "jusqu' ce que". Voyons comment utiliser until avec notre ainsi enregistrer l'tat de votre erreur : exemple de table de multiplication : special3.pl boucle3.pl #!/usr/bin/perl #!/usr/bin/perl print "Rentres un nom de fichier :\n"; print "Table de multiplication de 2\n"; $fichier = <stdin>; $i = 0; chomp $fichier; until($i>10){ if (-f $fichier){ print "$i*2 = ".($i*2)."\n"; print "$fichier existe.\n"; $i++; } else { } print "$!\n"; } Le code n'est pas si diffrent de notre exemple avec while. Mais la pense est diffrente. Comme dans notre exemple de boucle1.pl, nous A l'aide de ce code, nous demandons au script de vrifier si le fichier initialisons une scalaire $i 0. mais notre boucle nous indique cette fois: dont le nom est rentr par l'utilisateur existe. Si c'est le cas (avec l'option "Jusqu' ce que $i soit suprieur strictement 10, je fais ce que l'on me -f d'un if, nous testons l'existence d'un fichier dont le nom est contenu dit". Le corps de la boucle ne change pas. Seule la condition a t dans une variable scalaire), le script affiche que le fichier existe. Dans modifie. le cas contraire, nous affichons le contenu de notre erreur. Si vous rentrez un nom de fichier qui n'existe pas, $! contiendra alors la valeur: Mais certaines boucles sont bien utiles pour des types de variables plus volues comme les listes ou tables de hachages. Ainsi, la boucle No such file or directory foreach est trs pratique pour parcourir les lments d'une liste. Cependant elle peut aussi manipuler aisment une table de hachage : Il existe aussi des listes spciales Perl. Aussi, vous savez que de nombreux programmes ont besoin de paramtres pour pouvoir boucle4.pl s'excuter. Un exemple sur les machines Unix est que certaines #!/usr/bin/perl commandes vous affichent de l'aide lorsqu'elles n'ont pas d'arguments @liste = (0,1,2,3,4,5,6,7,8,9,10); ou que ceux-ci sont inexacts. Aussi, comment pouvons-nous tester print "Table de multiplication de 2\n"; l'existence de paramtres pour un programme Perl. Tous les paramtres foreach $i (@liste){ invoqus par un script Perl sont ainsi contenu dans un tableau spcial, le print "$i*2 = ".($i*2)."\n"; tableau @ARGV. Sa manipulation est identique tous les tableaux que } vous crerez en Perl : Nous avons ainsi initialis une liste avec une srie de chiffres. Puis la special4.pl boucle indique "Pour chaque lment not $i de la liste @liste (crite #!/usr/bin/perl entre parenthse), je fais ce que l'on me dit". Le corps de la boucle foreach (@ARGV){ multiplie ainsi l'lment en cours par 2 et affiche le rsultat. print $_; } boucle while est suivie alors d'une paire d'accolades ouvrantesfermantes contenant les instructions de la boucle (ce qu'elle doit faire). Ainsi, dans le bloc ou corps de boucle, nous demandons afficher la valeur de $i actuelle et de la multiplier par 2. Enfin, nous incrmentons $i. L'incrmentation consiste ajouter 1 une valeur donne. Il existe 2 types d'incrmentations : La pr-incrmentation : ++$i; o la valeur sera d'abord incrmente. La post-incrmentation : $i++; o la valeur sera aprs incrmente.
page 5
Developpez.com
Developpez Magazine
Dans ce simple code, nous voulons afficher la liste des paramtres passs notre programme. Comment passe t'on un argument ? Quand Nous avons vu que nous pouvons transmettre des arguments une fonction via la paire de parenthses invoques lors de l'appel. Ainsi, vous appelez votre script, il suffit d'crire sa suite les arguments : prenons l'exemple suivant : perl special4.pl toto tata tutu fonction2.pl Ainsi, notre programme special4.pl vous affichera toto, tata puis tutu. #!/usr/bin/perl Ceci est particulirement utile quand vous passez votre programme un sub inverse{ if ($_[0] == 0){ nom de fichier : print "Division par 0 impossible !\n"; } else { special5.pl $resultat = 1/$_[0]; #!/usr/bin/perl print "L'inverse de $_[0] est $resultat.\n"; foreach $file (@ARGV){ } if (-f $file){ } print "OK, $file existe.\n"; print "De quel nombre voulez-vous avoir l'inverse } else { ?\n"; print "$file : $!\n"; $nombre = <stdin>; } chomp $nombre; } inverse($nombre); Enfin, il existe des listes associatives ou tables de hachages spciales. Nous citerons ainsi %ENV qui contient ainsi tous les renseignements Dans ce code, nous demandons l'utilisateur de rentrer un nombre. Celui-ci est stock dans la variable scalaire $nombre. Puis, cette scalaire sur votre systme : $nombre sera transmise la fonction inverse dans la paire de parenthses. venons-en notre fonction inverse. Notre nombre est special6.pl contenu dans une variable nomm $_[0] qui est test dans un if pour #!/usr/bin/perl print "Liste des informations de votre systme vrifier si, bien entendu, ce nombre n'est pas gal 0. Et oui, nous avons :\n"; une nouvelle variable spciale ! Cette variable est en ralit le tableau while (($cle, $valeur) = each (%ENV)){ @_ qui contient tous les paramtres transmis une fonction. Le tableau print "$cle a comme valeur $valeur.\n"; spcial @_ peut aussi bien contenir des variables scalaires, des nombres, } des chanes de caractres et mme des tableaux et des tables de hachages. Vous pouvez tout transmettre une fonction. Dans le cas o Naturellement, cette table de hachage se manipule comme toute bonne notre valeur est gale 0, la fonction rpond par un message d'erreur. table de hachage : Dans le cas contraire, elle procde au calcul de l'inverse et renvoie le rsultat. special7.pl #!/usr/bin/perl Une fonction peut trs bien renvoyer un rsultat qui soit une variable print "Votre processeur est un scalaire, une liste ou une table de hachage. Reprenons notre calcul $ENV{'PROCESSOR_IDENTIFIER'} :\n"; d'inverse :
fonction3.pl #!/usr/bin/perl sub inverse{ if ($_[0] == 0){ print "Division par 0 impossible !\n"; } else { $resultat = 1/$_[0]; return $resultat; } } print "De quel nombre voulez-vous avoir l'inverse ?\n"; $nombre = <stdin>; chomp $nombre; $reponse = inverse($nombre); print "L'inverse de $nombre est $reponse.\n"; Dans le corps principal de notre script, vous remarquerez que nous demandons ce que le rsultat de la fonction soit contenu dans la variable scalaire $reponse. Notre fonction va donc tester la valeur de son argument (est-elle gale 0 ou non) et dans le cas o celui-ci n'est pas gal 0, la fonction procde au calcul de l'inverse. Ce calcul est contenu dans la variable $resultat. Puis, la fonction va retourner la valeur de $resultat au corps principal de notre script par l'intermdiaire du mot cl return suivi de la variable retourner (return se traduit par retourne en anglais). Notre script reprend la main avec la valeur $reponse gale au calcul de l'inverse du nombre demand l'utilisateur et nous affichons le rsultat. Cette manire d'crire son code rend plus simple la lecture et permet aussi au programmeur de rutiliser des fonctions suffisamment gnriques dans d'autres codes. D'o un intrt dans la simplification de rsolution d'un problme et une portabilit des solutions apportes.
page 6
Developpez.com
Developpez Magazine
C/C++
Les derniers tutoriels
Crez votre propre moteur 3D en Les structures de donnes en C, Les incompatibilits entre le C et C++. 6me partie : la gestion du quatrime partie : les files le C++ Dernire structure de donne base sur Le C et le C++ sont deux langages texte
L'affichage de texte l'cran est une fonctionnalit qui peut se rvler trs utile pour la suite du dveloppement : affichage d'informations diverses et de debugging, console, interface graphique, ... Nous verrons donc dans cette partie une gestion efficace du texte via les polices graphiques. Lire le cours de Laurent Gomila (lien 21) les listes (enfin !), il s'agit des files. Pour nous faciliter la vie, et ne pas rinventer la roue, nous allons utiliser la bibliothque de listes doublement chanes pour crer celle des files. Lire le cours de Nicolas Joseph (lien 22) proches au niveau de leur syntaxe et de leur grammaire (si l'on met de ct les proprits objet du C++), cependant il existe un certain nombre d'incompatibilits qui fait qu'un programme crit en C peut ne pas compiler avec un compilateur C++. Lire le cours de Nicolas Joseph (lien 23)
Critique de livre
C en action Solutions et exemples pour les program-meurs en C
Yves Mettier Editions O'Reilly
Rsum diteur
C en action rassemble une slection de solutions efficaces aux problmes les plus souvent rencontrs par les programmeurs en C. la fois source d'ides, moyen d'apprendre C par l'exemple ou de programmer plus vite et plus facilement, cet ouvrage est construit sur le modle : un problme, une solution, une discussion.
ISBN: 2841772896
surtout matriser le langage C. C en action vous propose de passer en revue diffrents points techniques qui reviennent rgulirement lors de dveloppement en C : gestion de la mmoire, manipulations des chanes de caractres, les structures de donnes... Mais aussi des rubriques plus inattendues telles que la compression ou l'utilisation de la libxml2. Chaque sous chapitre est dcompos en trois parties : Problme/Solution/Discussion de telle sorte que le livre se lit aussi bien de la premire la dernire page que comme un recueil de sources prtes l'emploi. On apprciera aussi la prsence d'une section "Voir aussi" la fin des chapitres qui renvoit un site internet ou des pages man.
L'auteur ne s'arrte pas au CANSI, la plupart des chapitres contient un exemple en CANSI, un bas sur la glib et un dernier avec les fonctions de la norme POSIX (il y a des chapitres, celui des signaux par exemple, valable uniquement pour des systmes d'exploitation conformes POSIX) On retiendra de ce livre la qualit des sources proposes, qui dmontre une matrise certaine du C par l'auteur, ainsi que leurs abondances, qui rythme de faon agrable chaque chapitre. Nicolas Joseph
critique
Les F.A.Q
F.A.Q C : 121 Q/R F.A.Q C++ : 238 Q/R F.A.Q Visual C++ : 300 Q/R F.A.Q C++ builder : 400 Q/R
(lien 25)
Les sources
67 codes sources libres pour C++ Builder tlcharger
(lien 26)
Les compilateurs
Les meilleurs compilateurs gratuits pour Windows, DOS et Unix tlcharger. (lien 27)
Developpez.com
Developpez Magazine
Access
Les derniers tutoriels
Communication entre Access et entre les deux produits et tudier quels Une petite fonction de cryptage cas de figures elles s'appliquent le mieux.. en VBA Excel
Microsoft Excel est le tableur le plus utilis du march, il ne requiert pas de comptences de programmation et est d'une souplesse incomparable en matire de graphiques et de prsentations. C'est pourquoi, les applications Access les plus intelligemment conues ont parfois recours des changes avec Excel. Dans ce tutorial, nous allons aborder les diffrentes mthodes de communications Lire le cours de Cafeine (lien 28) La recherche de la scurit, toujours plus de scurit. Vous connaissez certainement Csar et son cryptage tout simple. Mais Vigenre, vous en avez dj entendu parler ? Je vous propose ci-aprs de dcouvrir un cryptage trs simple raliser. Lire le cours de Maxence HUBICHE (lien 30)
.NET
Les derniers tutoriels
VB.Net 2005 : le nouveau XMLRAD est une alternative ASP.NET ClickOnce est la nouvelle technologie de pour crer des applications web avec dploiement d'applications. Cet article namespace nomm My
Visual Basic, dans sa version 2005, introduit un nouveau namespace nomm My. Ce namespace a pour caractristique d'tre un point d'accs rapide tout un tas de classes du Framework. Lire le cours de Ronald VASSEUR (lien 8) .NET. La technologie est base sur XML/ XSL pour gnrer les pages HTML. Lire le cours de Jean-Philippe Bempel (lien 10) vous montrera les diffrentes possibilits que cette technologie vous apporte, tant au niveau du dploiement que de la mise jour de vos applications.. Lire le cours de LEBRUN Thomas & A la dcouverte de Visual Studio MORAND Louis-Guillaume (lien 12)
2005
Cet article prsente les nouvelles fonctionnalits de Visual Studio 2005 A la dcouverte d'Avalon Le dveloppement avec Avalon et XAML, Lire larticle de MORAND LouisGuillaume (lien 11) comment cela marche ? Lire le cours de Jean-Alain Baeyens (lien Le dploiement facile 9)
.NET
Au cours de cet article, nous allons voir les apports d'une innovation majeure de SQL Server 2005, savoir l'intgration de la CLR 2.0. Nous verrons comment crer avec et dployer du code .Net directement l'intrieur du serveur de base de donnes. Lire le cours de Ronald Vasseur (lien 13)
Les outils
Convertisseur de code C# <-> VB.NET disponible gratuitement en ligne. (lien 14)
Actualit
Rsultats de l'enqute de satisfaction de MSDN France (lien 16) Framework 2.0 et VS2005 final dispo en novembre (lien 17) 101 exemples de code .Net 2.0 sur le site de Microsoft (lien 18) Testez Visual Studio 2005 gratuitement ! (lien 19) Principes des webservices selon Microsoft (lien 20)
page 8
Developpez.com
Developpez Magazine
.NET
Introduction
Le dploiement est aujourd'hui au milieu de toutes les stratgies dans un entreprise. Que cela soit le dploiement d'une mise jour, le dploiement d'un logiciel (antivirus, ou autre) ou n'importe, le dploiement est une problmatique et l'objectif principal de l'administrateur rseau est de le rendre le plus simple possible. La plupart d'entre-vous doit connatre Windows Update qui permet partir d'une page web de "deviner" les mises jour qu'il est ncessaire d'installer, et peut-tre connaissez-vous SUS (Software Update Service) qui permet de dployer automatiquement des mises jour sur les postes du rseau. Aujourd'hui, Microsoft nous propose une nouvelle merveille, qui combine les avantages des deux technologies cites juste avant. Avec ClickOnce, vous pourrez redistribuer vos applications .Net chez les clients qui en auront le besoin.
Maintenant que nous avons vu la thorie, passons un peu la pratique: rien de tel pour apprendre ;)
1. Presentation de ClickOnce
Disponible depuis la version 2.0 du framework .NET, ClickOnce est la nouvelle technologie de dploiement (et de mise jour) d'applications. Elle se base sur le protocole HTTP pour effectuer les installations ou les mises jour. Le dploiement d'applications, au moyen d'HTTP, est diponible depuis la version 1.0 du framework .NET, mais il a subi de nombreuses modifications qui l'ont rendu plus performant. Pour mettre en place ClickOnce, il vous suffit de possder: Visual Studio 2005 (actuellement en BETA 2) pour dvelopper votre application un serveur Web IIS, pour publier votre application Avec les prcdentes versions du framework .NET, excuter une application pouvait se faire via un simple lien dans une page Web: Cliquer <a href="MonProjet.exe">ici</a> pour tlcharger et excuter le logiciel <b>MonProjet.exe</b> Bien qu'efficace, cette technique prsentait tout de mme des inconvnients: le framework .NET devait tre install sur les machines cibles l'application est disponible "Offline" seulement si l'utilisateur choisit "Travailler en mode dconnect" dans son navigateur Web le fichier .config de l'application n'est pas disponible par dfaut l'application ne possde pas de raccourci sur le bureau ou dans le menu "Dmarrer"
Nous devons maintenant dfinir les autorisations de scurit. Pour le moment, cochez la case qui indique que notre application est "full trust" (on peut lui fait totalement confiance). Par mesure de scurit, il faudra mieux viter ce choisir cette option; nous verrons donc un peu plus tard dans ce tutoriel comment dfinir au mieux ces options de scurit. Passons maintenant la partie la plus importante: la publication. Passons donc dans l'onglet publication, et dfinissez l'endroit o sera publi votre application ainsi que la page d'installation de votre application. Sur cette page, vous allez dfinir si votre application sera publie sur un ftp, un partage rseau ou un serveur IIS et vous pouvez galement dfinir si l'application ne sera accessible que de facon online (retlecharge chaque fois) ou de faon offline, tlcharge, installe et accessible via le menu Dmarrer. Publishing Location indique le partage Web depuis lequel votre application sera dploiye/mise jour Install Mode and Settings permet de spcifier si votre application
Si vous aviez besoin de plus de contrle sur le dploiement ou la mise jour de votre application, vous pouviez utiliser l'"Updater Application BlockVersion 2.0": il s'agit d'un composant, dvelopp par Microsoft, qui peut dtecter, tlcharger, et mettre jour votre application. Cette technique, trs efficace mais possdant malgr tout quelques "failles" (par exemple, le code excut possde les droits "Full Trust", ce qui est potentiellement dangereux, d'un point de vue scurit, etc.) existe toujours mais laisse sa place, dans la version 2.0 du Framework .NET, ClickOnce. Pour faire simple, on peut dire que ClickOnce possde tous les
page 9
Developpez.com
Developpez Magazine
doit tre disponible "OnLine" et "OffLine" Prerequisites vous permet de spcifier les programmes pr-requis poour installer votre application Updates vous permet d'indiquer que votre application doit (ou non) vrifier la prsence de mise jour sur le serveur. Vous indiquez galement quel moment vous souhaitez faire cette vrification (avant ou aprs le dmarrage de l'application) Grce au panneau Options, vous pouvez renseigner diffrentes informations
3. Utilisation avance
Retrouver cette dernire partie et toutes les illustrations sur notre site Developpez.com (lien 15). Une fois ces informations renseignes, un clic sur le bouton "Publish Wizard" (galement diponible depuis le menu "Build" ou bien, dans Conclusion l'explorateur de solution, via un clic droit) lance l'assistant de configuration de l'installeur ClickOnce. ClickOnce est la nouvelle technologie de dploiement et de mise jour qui possde de beaux jours devant elle: son utilisation simple et trs Le "Publish Wizard" vous permet de configurer toutes les options agrable nous permet d'affirmer que ce sera sans doute la technologie ncessaires au dploiement de votre application. qui remplacera, terme, la technologie des MSI. Un clic sur le bouton "Finish" vous permet de dployer votre application sur le serveur IIS et vous ouvre la page de publication, qu'il vous suffit d'envoyer vos utilisateurs pour qu'ils installent votre application:
2.2. Installation
Il ne nous reste plus qu' installer l'application sur le poste client. Cette installation se fait manuellement grce la page publiment prcedemment. Un clic sur le bouton "Install" vous permet de lancer l'installation de l'application sur le poste et on aperoit bien la vrification de la prsence de mise jour, juste avant le lancement:
page 10
Developpez.com
Developpez Magazine
SGBD
Les derniers tutoriels
Correspondance des fonctions Lire le cours de Igor Nikiforov (lien 32) La gestion des clusters dans les TKPROF et Explain Plan des divers SGBDR Comment tracer une session ou une Comparatif qui vous permettra traduire divers SGBDR
plus aisment une fonction d'un SGBD Comparatif des solutions de clustering de instance et interprter le rsultat avec l'outil TKPROF sous Oracle. divers diteurs. l'autre.. Lire le cours de Jaouad (lien 35) Lire le comparatif de Fabien Celaia (lien Lire le cours de Fabien Celaia (lien 33) 31)
Des blocs multi-lignes au look Les fonctions sur chane de Comprendre les mcanismes internes de "Java Swing JTable" verrouillage dOracle Plugin Oracle Forms caractres en Transact-SQL Cache Buffer Chain
Lire le cours de SheikYerbouti (lien 36)
Web
Les derniers tutoriels
Dtection des collisions en Flash Dbuter avec PHP et MySQL
Ce court article va vous expliquer ce qu'est une collision en Divers cours et astuces de PHP, MySQL. flash, comment les dtecter et dans quel cadre les utiliser. Vous Lire les cours de Marian Muller (lien 39) devez disposer du flash player 7 pour pouvoir visualiser les animations. Il est disponible sur le site de Macromedia. Lire le comparatif de Stephane Eyskens (lien 38)
Developpez.com
Developpez Magazine
Pascal
Les ressources
Cours et tutoriels : 9 cours Outils : 9 outils gratuits Exercices corrigs : 49 exercices Meilleurs livres : 4 critiques F.A.Q Pascal : 114 Q/R Codes sources : 16 sources Compilateurs : 14 outils tests et comments Rubrique refaite neuf !
Delphi
Les derniers tutoriels
Strings et PChars en Delphi
Lorsquun ami qui crivait des DLL renvoyant des chanes de caractres passes sous la forme de PChar commena trouver normal que Delphi lve des violations daccs o renvoie parfois des valeurs incohrentes (mettant cela sur le dos dune gestion des chanes approximatives de Windows, bien sr !), jai finalement dcid de terminer ce petit document destin claircir les ides de certains Delphistes. Il na pas vocation dexpliquer en totalit les mcanismes utiliss pour grer les diffrents types de chanes que vous pourrez rencontrer en tant que programmeur Delphi, mais pourra vous claircir les ides et vous permettre dviter les erreurs courantes lors des conversions de chanes Delphi en chanes C. Lire le cours de Adrien Reboisson (lien 40) Cette seconde partie va vous apprendre amliorer un composant existant en hritant de celui-ci. En particulier, vous amliorerez le composant TImage pour lui ajouter une fonctionnalit de glisserdposer. Lire le cours de Sbastien Doeraene (lien Cration et utilisation de DLL 42)
du correcteur Apprenez crer simplement des DLL Utilisation orthographique de Word avec Delphi !. Lire le cours de Olivier Lance (lien 41) Utilisation du correcteur orthographique de Microsoft Word dans une application Amliorer un composant par Delphi. Les exemples prsents ici sont tests avec Delphi 2005 et Word 2003. hritage, partie 2 Lire le cours de Nono40 (lien 43)
avec Delphi
La F.A.Q Delphi
611 Q/R dont 64 nouvelles Tlchageable au format HTML Moteur de recherche intgr
Vu dans la F.A.Q
Comment envoyer du texte au debugger ?
Il existe une fonction de l'API Win32, OutputDebugString, permettant d'envoyer du texte vers le debugger de Delphi, ces messages tant visibles dans le "Journal d'vnements" (menu "Voir -> Fentres de dbogage -> Journal d'vnements" ou Ctrl+Alt+V). Cependant, cette fonction n'est pas trs pratique utiliser, car elle n'autorise que l'envoi d'une chane PAnsiChar "telle quelle". Une petite fonction de formatage s'avre rapidement ncessaire :
//La syntaxe de la fonction est strictement identique // celle de la procdure "Format". Procedure DebugPrintFmt ( Const FmtString : String ; Const Args : Array Of Const ) ; Begin OutputDebugString(PAnsiChar(Format(FmtString,Args))); End;
Mac LAK
Developpez.com
Developpez Magazine
Liens
Vous trouverez ici la liste des URL des articles cits dans ce magazine. Pour des raisons pratiques de mise en page des URL longues, ces dernires sont fournies en fin de ce magazine. Ces URL sont actives : cliquez dessus pour accder au document rfrenc. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
http://gfx.developpez.com/tutoriel/java/swing/drag/ http://gfx.developpez.com/tutoriel/java/swing/wait/ http://gfx.developpez.com/tutoriel/java/swing/java3d/ http://schmitt.developpez.com/tutoriel/java/jsf/introduction/ http://beuss.developpez.com/tutoriels/java/jakarta/log4j/ http://tahe.developpez.com/java/remote3tier-part1/ http://java.developpez.com/livres/#L2744019623 http://webman.developpez.com/articles/vbnet/2005/my/ http://jab.developpez.com/tutoriels/dotnet/avalon/ http://xmlrad.developpez.com/Articles/Application.NET/ http://lgmorand.developpez.com/dotnet/vs2005/ http://morpheus.developpez.com/clickonce/ http://webman.developpez.com/articles/sqlserver/sqlclr/ http://www.dotnet-developpez.com/Convertisseur/ http://morpheus.developpez.com/clickonce/ http://www.microsoft.com/france/msdn/enquete/satisfaction.mspx http://www.microsoft.com/presspass/press/2005/jun05/TechEd2005Day2PR.mspx
http://blog.developpez.com/index.php?blog=52&title=101_exemples_de_code_net_2_0_sur_le_site
http://blog.developpez.com/index.php?blog=50&title=testez_visual_studio_2005_gratuitement
http://blog.developpez.com/index.php?blog=20&title=principes_des_webservices_selon_microsof
http://loulou.developpez.com/tutoriels/moteur3d/partie6/ http://nicolasj.developpez.com/articles/file/ http://nicolasj.developpez.com/articles/incompatibilites/ http://c.developpez.com/livres/#L2841772896 http://c.developpez.com/faq/ http://c.developpez.com/sources/bcb/ http://c.developpez.com/compilateurs/ http://cafeine.developpez.com/Excel/ http://cafeine.developpez.com/PseudoContinu/ http://mhubiche.developpez.com/Access/cryptage/vigenere/ http://fadace.developpez.com/sgbdcmp/fonctions/ http://nikiforov.developpez.com/ http://fadace.developpez.com/sgbdcmp/cluster/ http://oracle.developpez.com/guide/tuning/latch/ http://oracle.developpez.com/guide/tuning/tkprof/ http://sheikyerbouti.developpez.com/fjtable-v1/ http://garnier.developpez.com/cours/design/programmationComplexe/ http://stephaneey.developpez.com/tutoriel/flashmx2004/collision/ http://mmuller.developpez.com/?p=1 http://reisubar.developpez.com/tutoriel/delphi/strings-pchars/ http://olance.developpez.com/articles/delphi/creation-dll/ http://sjrd.developpez.com/delphi/delphitutoriels/composants/heritage/ http://nono40.developpez.com/tutoriel/delphi/word/correction/
page 13
Developpez.com