int main(int argc, char **argv) { printf("Bonjour tout le monde !\n"); } le compilateur sait que la fonction printf de la bibliothèque standard du C existe, mais il est incapable d'en incorporer le code à notre programme car il ne sait pas où le trouver. Il va l'indiquer comme référence à résoudre par l'éditeur de liens (qu'on appelle aussi link, linker ou link edit; effectuer l'édition de lien se dit aussi "linker"). L'éditeur de lien va scruter tous les fichiers (produits de compilation et bibliothèques) qu'on lui passe en paramètre pour y rechercher les références à résoudre laissées par le compilateur et va effectuer les liens nécessaires entre les références à résoudre et le code correspondant dans les bibliothèques. Une fois ce travail terminé, le code produit est directement exécutable par un ordinateur."> int main(int argc, char **argv) { printf("Bonjour tout le monde !\n"); } le compilateur sait que la fonction printf de la bibliothèque standard du C existe, mais il est incapable d'en incorporer le code à notre programme car il ne sait pas où le trouver. Il va l'indiquer comme référence à résoudre par l'éditeur de liens (qu'on appelle aussi link, linker ou link edit; effectuer l'édition de lien se dit aussi "linker"). L'éditeur de lien va scruter tous les fichiers (produits de compilation et bibliothèques) qu'on lui passe en paramètre pour y rechercher les références à résoudre laissées par le compilateur et va effectuer les liens nécessaires entre les références à résoudre et le code correspondant dans les bibliothèques. Une fois ce travail terminé, le code produit est directement exécutable par un ordinateur.">
Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parCadice Payet Modifié depuis plus de 10 années
1
Les AGL Atelier de génie logiciel Case, Computer aided software environment Ensemble cohérent d'outils informatiques formant un environnement d'aide à la conception, au développement et à la mise au point de logiciels d'application spécialisés. On retrouvera par exemple dans un AGL des dictionnaires de données, des outils permettant de réaliser des diagrammes, pour faciliter la phase d'analyse et de conception des applications. Puis des générateurs de code ainsi que des aides à la mise au point (encore appelés débogueurs ou débugueurs) viendront accélérer la production et la finalisation de l'application. Qu'est ce qu'un atelier de génie logiciel ? Un AGL (Atelier de Génie Logiciel) ou atelier CASE (Computer Aided Software Engineering) est un logiciel aidant à la réalisation de logiciels. Autrement dit, il s'agit d'un système pour le développement logiciel assisté par ordinateur. Un AGL intègre des outils adaptés aux différentes phases de la production d'un logiciel et facilite la communication et la coordination entre ces différentes phases. Un AGL est basé sur des méthodologies qui formalisent le processus logiciel, et à l'intérieur de ce processus, chacune des phases qui le composent. Les AGL apportent une réelle solution à certains problèmes du génie logiciel et contribuent nettement à l'amélioration de la productivité et de la qualité du logiciel, notamment en faisant le suivi des différentes phases du processus logiciel et en offrant un cadre cohérent et uniforme de production. Néanmoins, cet enthousiasme doit être modéré: le processus logiciel est encore loin d'être maîtrisé et les différentes formalisations qui en sont proposées font encore l'objet de controverses, et dans tous les cas, sont bien loin d'être totalement automatisables. L'informaticien a encore de belles années de travail devant lui avant d'être supplanté par des AGL... Les outils ``CASE'' Les AGL intègrent différents outils d'aide au développement de logiciels, appelés outils CASE: éditeurs de texte (vi, emacs, ...), de diagrammes (TRAMIS VIEW, X-fig, ...), outils de gestion de configuration (make), SGBD, compilateurs, debuggers, outils pour la mise en forme (pretty-printers), la génération de tests, la génération d'interfaces homme-machine, ... Ces différents outils interviennent lors d'une ou plusieurs phases du cycle de vie du logiciel: conception (éditeurs de texte, de diagrammes, ...), programmation (éditeurs de texte, compilateurs, pretty printers, générateurs d'interfaces homme/machine...), mise au point (debuggers, outils de génération de tests, ...), etc, ... Certains outils, concernant notament la gestion de configurations, la gestion de projet, interviennent durant la totalité du processus logiciel. L'intégration d'outils CASE Un AGL intègre différents outils CASE, de manière à les faire coopérer de façon uniforme. Cette intégration peut (devrait) s'effectuer à trois niveaux: Intégration des données: Les outils CASE manipulent (génèrent, utilisent, transforment, ...) des données: spécification, modèle conceptuel des données, jeux de test, code, manuel utilisateur, .... Différents outils sont amenés à partager une même donnée: les tables générées par un éditeur de diagrammes sont utilisées par un SGBD, le code généré par un éditeur de texte est compilé par un compilateur, à partir d'une spécification algébrique on peut générer des jeux de test, ... Un AGL doit prendre en charge la communication de ces données entre les différents outils. Cette intégration peut être simplement physique: tous les outils de l'AGL utilisent un seul format de représentation des données, par exemple des fichiers UNIX, sur une même machine. Cette approche implique que tous les outils de l'AGL connaissent la structure logique (l'organisation) des fichiers qu'ils sont amenés à utiliser: il est nécessaire de normaliser la structure logique des fichiers. L'intégration des données peut se faire également au niveau logique en utilisant un système de gestion des objets qui gère automatiquement les différentes entités et leurs inter-relations (cette approche nécessite la définition des différents types de données manipulées). Un AGL devrait également gérer la cohérence entre les différentes versions de ces données (gestion de configuration). Intégration de l'interface utilisateur: tous les outils intégrés dans l'AGL communiquent avec l'utilisateur selon un schéma uniforme, ce qui facilite leur utilisation (voir par exemple l'interface du Macintosh, X11 sous Unix ou Windows95 sous DOS). Intégration des activités: un AGL peut gérer le séquencement des appels aux différents outils intégrés, et assurer ainsi un enchainement cohérent des différentes phases du processus logiciel. Cet aspect implique que l'on dispose d'un modèle du processus de développement bien accepté (ce qui relève un peu de l'utopie !!!). Les différents types d'AGL On distingue essentiellement deux types d'AGL selon la nature des outils intégrés: Les environnements de conception (upper-case): ces ateliers s'intéressent plus particulièrement aux phases d'analyse et de conception du processus logiciel. Ils intègrent généralement des outils pour l'édition de diagrammes (avec vérification syntaxique), des dictionnaires de données, des outils pour l'édition de rapports, des générateurs de (squelettes de) code, des outils pour le prototypage, ... Ces ateliers sont généralement basés sur une méthode d'analyse et de conception (JSD, Yourdon, Merise, ...) et utilisés pour l'analyse et la conception des systèmes d'information. TRAMIS est un environnement de conception qui intègre notamment un éditeur de diagrammes (TRAMIS View), un générateur de prototypes (TRAMIS Dialog), ... Les environnements de développement (lower-case): ces ateliers s'intéressent plus particulièrement aux phases d'implémentation et de test du processus logiciel. Ils intègrent généralement des éditeurs (éventuellement dirigés par la syntaxe), des générateurs d'interfaces homme/machine, des SGBD, des compilateurs, optimiseurs, pretty-printers, debuggers, ... WinDev est un environnement de développement. Un autre exemple d'environnement de développement est Unix qui intègre différents outils pour la programmation et le test. L'intégration des données est faite par l'intermédiaire des fichiers Unix, la gestion (limitée) de configurations est faite par make... Certains environnement, plus évolués, sont dédiés à un langage particulier. Il existe par exemple des environnements dédiés à InterLisp, Smalltalk, Loops (l'environnement Loops fonctionne sur une machine dédiée à Loops), Oz ... Ces différents environnements proposent des bibliothèques de composants, une interface graphique, des éditeurs dédiés au langage, des interprètes, debuggers, ... Ces environnements permettent un développement rapide et convivial. En revanche, l'application développée est intégrée dans (et généralement inséparable de) l'environnement, ce qui peut poser des problèmes de portabilité et de coût. Enfin, il existe des générateurs d'environnements de programmation: Mentor, Gandalf, Synthesizer Generator, ... A partir de la description formelle d'un langage (à l'aide de grammaires attribuées, de la logique), ces différents systèmes génèrent un environnement de programmation dédié au langage, contenant un éditeur dédié au langage, un pretty-printer, un debugger, un interpréteur, ...
2
I - Programme: typologie des fichiers exécutables
1 - Pourquoi cette typologie 2 - Les différents types de fichiers exécutables dans Windows Dll, OCX, EXE, VBS… Les composants OLE COM et DCOM Le rôle du registre dans l’enregistrement des composants 3 - Les fichiers exécutables dans UNIX/LINUX Compilation, compiler. La compilation est l'action de compiler. Compiler signifie transformer un fichier texte lisible par un être humain initié, en un fichier directement exécutable par un ordinateur. Généralement, quand on dit compiler, on sous entend aussi la phase d'édition de liens, ce qui est un abus de langage. Cet abus est justifié par le fait que, sous Linux et dans l'environnement Unix en général, pour faire une compilation (au sens strict) et une édition de liens, on va lancer le même programme (gcc, g++ par exemple), mais avec des paramètres différents. La compilation, au sens strict du terme, produit des fichiers ayant l'extension '.o'. Je vous invite à consulter la documentation de gcc, ou plus exactement d'egcs, à Compilation conditionnelle. Il est possible d'adapter la compilation à différents cas de figure au moyen de la compilation conditionnelle. En fait, la compilation s'effectue en plusieurs passes, c'est à dire que le compilateur est constitué de plusieurs programmes appelés les uns après les autres, chacun travaillant sur les fichiers produits par son prédécesseur. La première passe s'appelle la précompilation. Elle est effectuée par le précompilateur qui va évaluer les directives de compilation (les mots précédés par '#'). Parmi ces directives de compilation se trouvent #if, #else et #endif. Ce sont ces directives qui vont permettre de s'adapter à différents cas. Exemple : #if defined(DEBUG) printf("le code retour est %d\n",rc); #endif ... #if defined(__i386__) convertir_en_gros_boutiste(&entier); #endif On rencontrera aussi #ifdef à la place de #if defined(...) . La forme #if defined permet de combiner les tests dans des expressions logiques comme #if (defined(DEBUG) && (__i386__ == 1)). L'exemple précédent si les constantes (ou macros) sont définies. Pour les définir, il existe plusieurs solutions : dans les fichiers-sources : #define DEBUG /* simple définition de la macro DEBUG */ #define __i386__ 1 /* définition et affectation à 1 de la macro __i386__ */ dans les paramètres passés au compilateur : -DDEBUG -D__i386__=1 Certaines constantes sont prédéfinies par le compilateur. Elles servent généralement à identifier le compilateur, l'OS et le microprocesseur. La compilation conditionnelle est fortement utilisée dans les programmes "open source" car ces programmes sont censés pouvoir être compilés dans différents environnements (LinuxPPC bien sûr, mais aussi les différents Unix des constructeurs, '*BSD', et d'autres) qui peuvent exister sur différentes plate-formes (Macintosh, Alpha, Sparc, SGI, ...). Encore un petit mot sur les constantes. On les appelle aussi macros car on peut définir des choses comme ceci : #define MAX(a,b) ((a) < (b) ? (b) : (a)) ce qui ressemble assez aux fonctions-formules du FORTRAN (mais je m'égare ... ;-). A chaque fois que le précompilateur va rencontrer la "fonction" MAX, il la remplacera par sa définition. Edition de liens. En fait, le compilateur ne produit pas du code exécutable. En effet, dans un programme aussi simple que le suivant : #include <stdio.h> int main(int argc, char **argv) { printf("Bonjour tout le monde !\n"); } le compilateur sait que la fonction printf de la bibliothèque standard du C existe, mais il est incapable d'en incorporer le code à notre programme car il ne sait pas où le trouver. Il va l'indiquer comme référence à résoudre par l'éditeur de liens (qu'on appelle aussi link, linker ou link edit; effectuer l'édition de lien se dit aussi "linker"). L'éditeur de lien va scruter tous les fichiers (produits de compilation et bibliothèques) qu'on lui passe en paramètre pour y rechercher les références à résoudre laissées par le compilateur et va effectuer les liens nécessaires entre les références à résoudre et le code correspondant dans les bibliothèques. Une fois ce travail terminé, le code produit est directement exécutable par un ordinateur.
3
I.1- Pourquoi cette typologie
Les fichiers exécutables sont les produits crées par l’application AGL. Une connaissance de ses fichiers correspond à la connaissance des découpages possible de l’application Une connaissance de ces mécanismes permet une premier niveau de dépannage
4
I.2 - Les différents fichiers exécutables dans Windows
exe dll, ocx, sys, vxd, drv, …. Exe : Le format de programme de base. IL correspond a des fichiers directement appelable et chargeable en mémoire Pour être exécuter par le processeur. Ces fichiers Dll: DLL signifie Dynamic Link Libraries. C’est une librairie (fichier contenant plusieurs fonctions d'un programme) compilée, donc prête à être utilisée, chargée dynamiquement lors du démarrage d'un programme... En français, cela signifie que votre librairie ne sera pas compilée en même temps que votre programme qui l'utilise, mais aura été compilée auparavant, et sera chargée dynamiquement en mémoire lorsque le programme le désirera. Une librairie dynamique est indépendante du(des) programmes qui l'utilise(nt) et peut-être utilisée par plusieurs programmes en même temps. Elle ne sera stockée qu'une seule fois sur le disque dur. Elle permet aux développeurs de distribuer des fonctions réutilisables par tout programme, sans en dévoiler les sources. On retrouve le principe des librairies dynamiques sous Unix sous l'extension .so.
5
Qu’est qu’un Exe ? Un exe avant tout, c'est un fichier, donc une suite de données ou octets placée sur le disque dur comme n'importe quel fichier text ou autre. Cela dit, ces données ne sont pas lisibles sous forme de lettre ou de chiffre par nous autres être humain (bien que certains montrent des prédispotions ;-P ). Ce type de fichier, comme son nom l'indique, est executable. Cela signifie que la machine peut non seulement le lire mais aussi réagir en fonction de ce qu'il y a écrit dedans. C'est une suite de commande qui indique à la machine de faire telle ou telle chose, et tant que toutes les commandes n'ont pas été traité (sachant que les commandes peuvent être exécuter indéfiniment), il reste en mémoire et continue d'être exécuter. Mais comment cela fonctionne-t-il ? La Dll contient du code exécutable, qui est appelé par un programme externe... Ce programme externe, un exe, une dll, un composant, devra donc connaître toutes les fonctions disponibles au sein de la Dll... C'est pour ceci que la Dll contient une table d'exportation de symboles (Symbols Export Table) : cette table liste toutes les fonctions exportées (donc disponibles par un programme externe) ainsi que leur point d'entrée (adresse du début du code de la fonction). Un outils tel que Quick View Plus va permettre de lister toutes les fonctions exportées (et même importées) par notre Dll. Vous pouvez télécharger une version de démonstration de Quick View Plus à l'adresse : OCX :OLE Custom Control Ceci est l’extension de fichier représentant un Objet ACtiveX. ActiveX est le successeur de la technologie OLE. Comme une dll il s’agit de code compilé et comme une pour un fichier Dll se code sera appellé par d’autre code externe. Mais un Objet Active X a plus de possibilité. Pour le programmeur il va pouvoir présenté son interface (fonction d’intellisense dans VB) et il completera son nom par la liste de ces méthodes, propriétés et évènements. Il pourra aussi présenter une partie graphique qu’il négociera avec l’application appelante. Les Objets de la tool box de VB sont des contrôles correspondant à des fichiers OCX. Les fichiers Sys, Vxd, Drv et sont des fichiers correspondant à des drivers.
6
I.3 - Les fichiers exécutables dans Unix/Linux
Bibliothèque. Une bibliothèque (en en anglais : library, et qui est "traduit" dans 99,99% des cas par librairie) est un fichier qui contient le code exécutable de fonctions diverses et variées, que tout programmeur peut réutiliser. Sous Linux, il existe 2 sortes de bibliothèques : les bibliothèques statiques et les bibliothèques dynamiques. Le nom d'une bibliothèque commence par 'lib', et se termine par '.a' (statique) ou '.so' (dynamique). A chaque bibliothèque correspond un ou plusieurs fichiers à inclure (extension '.h') qui contiennent les définitions des fonctions de la bibliothèque, et qui seront utilisés par le compilateur (au sens strict). Les bibliothèques sont utilisées par l'éditeur de liens. Le code des bibliothèques statiques est incorporé au programme que l'on compile lors de la phase d'édition de liens. Dans le cas des bibliothèques dynamiques, en revanche, l'éditeur de liens va indiquer dans le code exécutable du programme que telle fonction se trouve dans telle bibliothèque dynamique, et le code correspondant ne sera pas incorporé au programme. Les bibliothèques dynamiques existent sous MacOS. Ce sont les bibliothèques partagées (ou shared libraries en anglais). .a (bibliothèque statique) .so (bibliothèque dynamique) Remarque: Le nom d'une bibliothèque commence par 'lib', et se termine une des extensions ci-dessus.
7
I.4 Le WEB ou les Pages Actives
Un serveur Web va pouvoir exécuter du code pour préparer une page à afficher par le client. Ce code sera soit appelé depuis la page initiale cas du CGI soit mélangé à la page HTML cas des ASP. Langages CGI : C, C++, Perl, Java. Langages de script : ASP, PHP, JSP. Le CGI : Un CGI (Common Gateway Interface, traduisez interface de passerelle commune) est un programme exécuté du coté serveur, permettant de cette façon l'affichage de données traitées par le serveur (provenant d'une autre application, comme par exemple un système de gestion de base de données, d'où le nom de passerelle). L’entrée clavier sont remplacé par les entrées provenant du client Web et les sorties écrans vont en fait former la nouvelle page WEB envoyée au client. Le code est compilé ce qui est un gage de performance Les scripts: Incorporés à la page HTML ils sont lus ligne à ligne et interprétés par une couche logicielle qui va modifier de manière dynamique la page renvoyé au client Web. Plus souple , les scripts sont plus facile à modifier. Le mélange code html code actif peut rapidement devenir un problème, pour une lecture aisée de l’une ou l’autre des parties. On peut bien sur placé code actif et code présentation (Html) dans des fichiers différents en perdant aussi alors un des points forts de cette technologie le « tout dans un fichier »! Site de référence :Comparaison des scripts côté serveur
8
Démonstrations ASP <% for i=1 to 6
Response.Write "<font size=" & i & ">" %> <p>Bonjour le monde </p> <hr> </font> <%next%> <p> </p> Connexion a une base de donnée et renvoie de la valeur :
9
II - Le rôle du registre dans l’enregistrement des composants
Les fichiers OCX doivent être enregistrés dans la base de registre pour que les programme qui les utilisent fonctionne, y compris les projets VB exécutés depuis l'éditeur (sauf dans le cas de groupe de projet particulier) Ceci est fait automatiquement par le programme d’installation de l’OCX. Il arrive que l’on ai a réenregistrer ce rype de composant manuellement. Inscription manuel d'un OCX Faites démarrer exécuter... taper Regsvr32 puis le nom et le chemin complet de l'OCX (ou drag & drop du fichier OCX dans la fenêtre exécuter) on obtient alors le genre de message : Dllregisterserver dans xxx.ocx réussi.
10
III - Le rôle des logiciels de partage de source
Un fichier modifier par une seule personne à la fois Capable de fournir l’ensemble des sources et documentation d’une version quel conque Garantie un espace de stockage securisé Peut être intégrer dans un AGL Stocke aussi bien du code que du binaire ou de la documentation
11
III.1 - Un gestionnaire de Version dans le monde Unix/linux
CVS - Concurrent Version System Issue du monde libre CVS présente l’avantage de donner ces sources et donc de constituer une base de départ pour beaucoup d’ AGL Maison sur Unix/Linux. CVS: Concurrent Version System Le logiciel CVS permet de gérer le développement collectif d'un logiciel en archivant et contrôlant les différentes versions, qu'il stocke dans un espace centralisé (le repository). Afin d'économiser de la mémoire, le logiciel ne stocke que les différences entre les versions, ce qui permet en plus de donner une meilleure lisibilité à l'évolution du projet. Pour faciliter la collaboration, le système de contrôle compare les travaux isolés pour les fusionner et en marquer les différences, de sorte que plusieurs développeurs peuvent travailler à développer une même version sans que ce travail ne génère de conflit entre les versions. Le système CVS est devenu une référence quasi incontournable en matière de gestion du codéveloppement. Une fois que ce système de contrôle des versions s'ouvre à l'utilisateur quelconque (par l'intermédiaire de sites web ou de logiciels avec interface graphique tels que CVSup), il montre bien comment celui-ci est toujours potentiellement au coeur d'un projet, car l'utilisateur peut à tout moment récupérer les sources d'une version antérieure du logiciel pour en développer une nouvelle s'éloignant quelque peu de la version «officielle». Pour peu que sa version réponde à un plus grand nombre de besoins, elle tendra peut-être par la suite à devenir la nouvelle version «officielle». Dans la pratique, ce genre d'événement est peu probable en raison de ce rapport étroit existant entre utilisateurs et concepteurs - étroitesse qui interdit les égarements et les mauvaises surprises -.
12
III. 2 - Un gestionnaire de Version dans le monde Windows
Microsoft Visual SourceSafe Parfaitement adapté au solution Microsoft cet outil s’intègre évidement dans Visual studio et Visual Studio.net les AGL Microsoft. Microsoft Visual SourceSafe 6.0 est la toute dernière édition du système de contrôle de version déjà réputé de Microsoft qui gère le développement de logiciels et de sites Web. Parfaitement intégré aux environnements de développement Visual Basic, Visual C++, Visual J++, Visual InterDev et Visual FoxPro, ainsi qu~aux applications de Microsoft Office, il permet un contrôle de version orienté projet de mise en oeuvre aisée. Visual SourceSafe peut traiter tout type de fichier quel que soit le langage de développement, le langage auteur ou l~application qui l~a généré. Ses utilisateurs peuvent travailler tant au niveau du fichier qu~au niveau du projet et peuvent facilement réutiliser des fichiers existants. Les fonctionnalités orientées projet de Visual SourceSafe rendent plus efficace la gestion des tâches journalières associées au développement par équipe d’applications et de sites Web.
13
IV - Les principaux AGL du marché
AS400, Unix, Windows, … Puis Java
14
IV.1 - IBM iSeries (AS/400) Adélia iSeries Studio …
Les AGL Windows exploitant des données AS400 (Delphi/400, Windev,…) Adélia iSeries Studio (source: Pour les développements en mode caractère, Adélia Studio propose deux gammes : Adélia/400 : l'outil de développement réside sur l'iSeries. Adélia iSeries Studio : l'outil de développement fonctionne sous Windows et génère des applications 400. Les deux gammes sont compatibles. Les utilisateurs d'Adélia/400 peuvent facilement passer à Adélia iSeries Studio (y compris ceux qui ont commencé dès 1988 avec Adélia "Réalisation"). Adélia iSeries Studio améliore de façon spectaculaire la productivité et l'ergonomie du développement puisque l'ensemble des tâches telles que le maquettage, la génération de code, la modélisation sont réalisées sur le micro-ordinateur, et que seule la compilation est réservée à l'iSeries. La construction d'une base de données ou d'un programme à partir d'une palette graphique rend le développement "naturel", agréable et rapide. Avec Adélia iSeries Studio, on peut travailler de manière interactive avec l'utilisateur final (prototypes, maquettes), concevoir les programmes, les écrans et les états avec une grande facilité. Le résultat des manipulations est rapide et visuel : l'utilisateur final voit immédiatement les modifications qu'il apporte et peut en demander d'autres. Le dialogue entre le développeur et l'utilisateur final est extrêmement fructueux. Un utilisateur Adélia iSeries Studio peut envisager sereinement l'avenir et opérer un passage "en douceur" vers les nouvelles technologies. L'avantage financier est considérable : une seule équipe de développement, un seul outil, une seule maintenance. De plus, Adélia iSeries Studio améliore la motivation des équipes de développement travaillant avec des outils fonctionnels performants et résolument tournés vers l'avenir.
15
IV.2 – Unix / Linux Kylix 3 Kylix offre le support des langages de programmation orientés objet C++ ANSI/ISO et Delphi, dans une solution de développement unique. Kylix™ 3 (source: L’environnement de développement Kylix intègre de façon transparente la conception et le développement d’applications en vous permettant de créer plus rapidement des applications Linux sophistiquées. Vous passez rapidement du prototype à la production avec une combinaison unique de fonctionnalités intégrées incluant des outils de conception visuels, la bibliothèque de composants multi-plates-formes Borland CLX, un éditeur de code avancé et un débogueur graphique entièrement intégré, tous optimisés pour fonctionner ensemble pour le développement d'applications de haut niveau. Kylix 3 est disponible en 3 versions : Open Edition (Développement rapide en Open Source pour Linux) Kylix 3 Professionnel Kylix 3 Entreprise
16
IV.3 - Windows Visual Basic 6 Delphi 7 Studio (Pascal) Windev 7.5
17
Visual Basic 6 Microsoft Visual Basic 6
est l'un des environnements le plus populaire pour construire efficacement des programmes sous Windows. Le système de programmation Visual Basic permet aux développeurs de créer des applications qui apportent des solutions efficaces aux besoins urgents des entreprises. MS Visual Basic 6 - (version 6.0 ) – Créez rapidement des solutions avec Microsoft Visual Studio 6.0, la suite complète d'outils de développement pour l'entreprise. La suite Visual Studio vous permet de développer des applications évolutives qui s'intègrent facilement dans les systèmes existants, pour Windows et le Web. La suite de développement Visual Studio 6.0 définit le standard de productivité et de conception avec des fonctions intègres dans les langues les plus répandues. Visual Studio 6.0 Professional Edition inclut un ensemble d'outils destines a créer des applications réutilisables dans Microsoft Visual Basic 6.0, Visual C++ 6.0, Visual J ou Visual FoxPro 6.0. Visual InterDev 6.0 présente une intégration facile avec Internet ainsi qu'un environnement complet de création de page Web
18
Delphi 7 Studio Delphi Studio
Une solution MDA (Model Driven Architecture) complète, de la conception jusqu’au développement, qui intègre la modélisation, le développement et le déploiement de solutions professionnelles et de e-commerce Windows. Delphi 7 Studio (source: Delphi 7 Studio offre la voie de migration vers Microsoft NET que les développeurs attendaient. Avec Delphi, vous bénéficiez d’une liberté totale : vous contrôlez un studio de développement e-business complet, avec la possibilité de rendre facilement vos solutions multi-plates-formes pour Linux. Vous menez plus rapidement le développement d’applications d’entreprise de la conception à la production avec les fonctionnalités de conception visuelle UML et l’architecture MDA (Model Driven Architecture). Vous construisez plus rapidement et aisément des applications Web dynamiques avec le développement RAD visuel côté serveur. Et vous déployez sous Windows ou sous Linux - Delphi 7 Studio intègre une version complète de Borland Kylix, l’environnement de développement numéro 1 pour Linux. Delphi 7 Studio est disponible en 4 éditions : Delphi 7 Personnel Delphi 7 Studio Professionnel Delphi 7 Studio Entreprise Delphi 7 Studio Architecte
19
Windev 8 WINDEV 8 est unique.
Windev 8 WINDEV 8 est unique. C’est le seul environnement de développement totalement intégré. Un seul environnement prend en compte toutes les phases du développement, du cahier des charges à la maintenance. WINDEV 8 est unique. C’est le seul environnement de développement totalement intégré. Un seul environnement prend en compte toutes les phases du développement, du cahier des charges à la maintenance. Notez bien qu’il ne s’agit pas d’outils hétéroclites artificiellement rassemblés les uns avec les autres, mais d’un environnement unique et totalement homogène. L’interface est identique pour tous les modules. La formation est bien plus rapide. Le support technique (gratuit qui plus est, nous y reviendrons plus loin dans cette brochure) concerne donc tous les modules. Il n’existe aucun outil comparable à WINDEV 8. Sa facilité, sa fiabilité, son retour sur investissement, n’ont aucun équivalent: c’est la raison de son succès, de votre succès. La vitesse de développement avec WINDEV est devenue légendaire. Sa facilité aussi. Sa puissance étonnante également. WINDEV permet d’utiliser la ou les bases de données de son choix: HYPER FILE bien sûr, la puissante base de données livrée en standard, mais également les autres bases de données du marché. C’est une ouverture fabuleuse, l’assurance de pouvoir s’interfacer avec n’importe quel existant.
20
C++ C++ Builder (Borland) Visual C++ (Microsoft)
est un environnement de développement C++ ANSI, dédié à la conception d'applications Internet ou distribuées. Visual C++ (Microsoft) se présente comme l'un des outils C++ les plus productifs pour le développement d'applications hautes performances pour Windows et pour le Web. C++ BUILDER 6 C++ Builder 6 propose un réel C++ ANSI/ISO pour la puissance et la performance dont vous avez besoin pour mettre en oeuvre des applications e-business multi-plates-formes, qui supportent les nouvelles et émergeantes technologies des Services Web. Avec C++Builder 6, vous apportez la vraie performance du C++ à vos applications. Vous livrez des solutions à base de services Web standards en mesure d'armer votre entreprise dans le nouveau monde numérique. C++Builder vous permet de réduire les cycles de développement, de mettre en oeuvre les principaux standards des services Web, de simplifier l'intégration d'applications, et donc de tirer pleinement profit des révisions incrémentales. C++Builder est disponible en 3 éditions : C++Builder 6 Personnel C++Builder 6 Professionnel C++Builder 6 Entreprise MS Visual C++ Enterprise Edition - (version 6.0 ) La quasi-totalité des logiciels qui tournent actuellement dans le monde, depuis les navigateurs Web jusqu'aux applications critiques pour les entreprises, sont développés à l'aide du système Microsoft Visual C++. Visual C++ se présente comme l'un des outils C++ les plus productifs pour le développement d'applications hautes performances pour Windows et pour le Web. Visual C fait franchir au langage C++ un nouveau cap dans le domaine de la productivité. Il importe également de signaler que cette amélioration ne s'effectue pas aux dépens de la souplesse, de la performance ou du contrôle du produit. Outre des fonctionnalités telles que la technologie IntelliSense, Edit & Continue qui réduisent sensiblement la durée de développement, Visual C offre un support fortement amélioré pour le développement d'applications sur le Web et pour l'entreprise. Microsoft Visual C Édition Entreprise vous offre la possibilité de créer des applications évolutives à plusieurs niveaux pour Windows et le Web. Grâce à la prise en charge optimisée du développement d'objets COM, SQL et Internet, votre productivité va faire un bond en avant.
21
IV.4 - Java Visual Age for Java (IBM) Jbuilder (Borland)
Visual J++ (Microsoft) JBuilder 9 Développeur offre des technologies pour créer et déployer rapidement des applications Java, Web et bases de données, avec un éditeur de code source extensible, un compilateur, des concepteurs visuels et des experts gain de temps. Maximisez votre productivité avec les fonctionnalités de refactoring avancées, les outils Javadoc, le développement en équipe, et le commutateur de JDK. Accélérez le développement des applications à l'aide des JavaBeans réutilisables et du débogage HotSwap avancé. Accélérez la programmation et évitez les erreurs de syntaxe grâce aux technologies d'Audit de code et d'Audit d'erreurs. Développez et déployez des applications sur les plates-formes Windows, Linux et Solaris. JBuilder Développeur offre une solution flexible et ouverte, qui a été conçue pour fonctionner comme vous. JBuilder™ 6 est le meilleur environnement multi-plate-forme pour construire des applications d'entreprise Java™. JBuilder 6 Entreprise facilite le développement EJB™ 2.0 grâce aux concepteurs visuels bidirectionnels et au déploiement rapide sur les meilleurs serveurs d'applications de la plate-forme J2EE™, notamment BEA® WebLogic®, IBM® WebSphere®, iPlanet™ et le serveur intégré Borland® Enterprise Server. Améliorez la productivité de vos développeurs, avec la visualisation du code UML, le refactoring, le test unitaire et les outils de documentation. Développez sur Windows®, Linux® et Solaris™ et déployez des applications sur toutes plates-formes Java. Microsoft Visual J++ Édition Professionnelle représente un environnement de développement de choix pour les programmeurs créant des applications et des applets compatibles à 100 % avec Java. Visual J++ offre un environnement de développement intégré à haut rendement et un ensemble de composants interconnectés permettant de créer, de tester, d'affiner et de mettre en œuvre du code Java sur plusieurs plates-formes. L'intégration de la technologie ActiveX permet d'accéder aux bases de données et aux applications existantes, et facilite la création de composants réutilisables en Java. Microsoft Visual J++ Édition Professionnelle vous permettra en outre de concevoir, déboguer et déployer des applications riches en fonctionnalités grâce à un environnement de développement rapide (RAD) très productif.
22
IV.5 - J2EE J2EE, c'est un standard ? En fait, c'est un ensemble de standards. J2EE (pour Java 2 Enterprise Edition) peut être considéré comme un intitulé générique qui couvre plus d'une dizaine de services techniques. Ces services définissent par exemple comment accéder à un annuaire, à une base de données, comment faire dialoguer des machines virtuelles Java ou encore quelles interfaces un composants doit présenter pour être réutilisable dans un tel environnement. C'est la combinaison de tous ces services techniques qui constitue l'architecture J2EE. Présentation J2EE est la version entreprise de la plate-forme "Java 2" qui se compose de l'environnement "J2SE" ainsi que de nombreuses API et composants destinés à une utilisation "côté serveur" au sein du système d'information de l'entreprise. J2EE:une évolution du Java J2EE signifie "Java 2 Entreprise Edition" et repose sur Java. Dès son origine, java a révolutionné plusieurs domaines de l'informatique, que ça soit la téléphonie, l'internet ou les applications d'entreprise. Aujourd'hui, SUN a réorganisé son offre autour de 3 briques : Java 2 Micro Edition (J2ME) qui cible les terminaux portables Java 2 Standard Edition (J2SE) qui vise les postes clients Java 2 Entreprise Edition (J2EE) qui définit le cadre d'un serveur d'applications et d'intégration J2EE a pour but de crédibiliser le statut de Java en tant que plateforme pour la programmation en entreprise. La plate-forme J2EE J2EE est une norme qui va spécifier à la fois l'infrastructure de gestion de vos applications et les API des services utilisées pour concevoir ces applications. La plateforme J2EE est essentiellement un environnement fournissant : I - Environnement d'exécution de J2EE Un des avantages majeurs de J2EE est de faire abstraction de l'infrastructure d'exécution. En effet, J2EE spécifie les rôles et les interfaces pour les applications, ainsi que l'environnement d'exécution dans lequel les applications sont déployées. Ceci permet aux développeurs d'application de ne pas avoir a reprogrammé les services d'infrastructure. II - Les API J2EE Les API sont des Outil logiciel, constitué d'un ensemble de modules dotés de fonctions communes, et qui permet de produire automatiquement des applications Java ou des applets personnalisés. *EJB (Enterprise JavaBeans Technology) L'EJB, environnement d'exécution fournissant des services (sécurité, communications, cycle de vie...), définit comment les composants serveurs sont écrits et fournit un lien standard entre le composant et l'application qui l'utilise. Un client n'accède donc jamais directement à un composant et doit pour cela passer par une interface locale et une interface distance. L'interface locale décrit le cycle d'existence du composant en définissant des méthodes permettant de le trouver, de le créer, de le détruire. Et L'interface distante spécifie les méthodes que ce composant présente au monde extérieur. *JDBC (Java Database Connectivity) Une API qui permet aux programmes Java d'interagir avec les bases de données relationnelles (type SQL). *Servlet et JSP (JavaServer Pages) Composants réseau qui sont destinés à une exécution orientée question / réponse. La technologie JSP est une extension de la notion de Servlet permettant de simplifier la génération de pages web dynamiques. JSP est un concurrent direct de l'ASP et du PHP. Un servlet est un composant coté serveur, écrit en Java, dont le rôle est de fournir une trame générale pour l'implémentation de paradigmes "requête / réponse". Ils remplacent les scripts CGI tout en apportant des performances bien supérieures. *JMS (Java Message Service) Permet à 2 composants d'applications J2EE de créer, envoyer et recevoir des messages. *JTA (Java Transaction API) et JTS (Java Transaction Service) Les spécification JTA et JTS permettent aux composants d'être renforcés par un support des transactions. *JavaMailTM Technology Permet l'envoi d' s d'une manière indépendante de la plate-forme et du protocole. *JAF (JavaBeans Activation Framework) Utilisé par JavaMail, JAF permet de déterminer le type d'un flux de données, son accès, et les opérations possibles sur lui. *JAXP (Java API for XML) Cette API permet de manipuler, créer et modifier des documents XML. JAXP supporte les parseur DOM (Document Object Model) et SAX (Simple API for XML). *J2EE Connector Facilite les connexions aux plates-formes autres que J2EE. *JAAS (Java Authentication and Authorization Service) Permet aux applications J2EE d'authentifier et d'autoriser l'exécution par les utilisateurs. * JNDI Extension Java standard qui fournit une API permettant de localiser et d'utiliser des ressources : il peut y avoir un appel à des services CORBA, DNS, NIS, LDAP... Développement d'application J2EE Une application J2EE commence par la création de composants J2EE. Ces composants sont ensuite regroupés en modules auquel on associe des descripteurs de déploiement. Ces modules J2EE peuvent ensuite être déployés comme application à part entière ou être assemblés avec un descripteur de déploiements J2EE et être déployés en tant qu'application J2EE. Points forts J2EE est devenu un standard pour les applications serveurs Points faibles J2EE est en constante évolution Evaluation La plupart des API proposées par J2EE étant des standards nous ne ferons des comparaisons que sur les principaux acteurs de J2EE. EJB / Web Services Contrairement aux Web Services, les EJB possèdent des protocoles inadaptés aux Web et une compatibilité non satisfaisante avec des plates-formes non-Java. L'architecture EJB reste difficile à appréhender mais une fois déployée, elle facilite grandement l'implémentation et l'intégration d'autres applications. JSP / PHP Plus libre, PHP est un langage dirigé vers un public moins expérimenté en programmation. Cependant JSP offre plus de fonctionnalités du fait qu'il bénéficie de toute la puissance de Java. Servlet / CGI (Common Gateway Interface) La mise en place de CGI (Common Gateway Interface) est plus rapide sur les Servlets qui nécessitent la mise en place d'un serveur de Servlet. Mais tout comme les JSP, les Servlets bénéficient de la modularité et de la puissance de Java qu'on ne retrouve pas dans les programmes CGI.
23
IBM Websphere (WSAD) Une famille de plus de 100 produits dont certains tournent même sur Windows L’AGL se nomme IBM WebSphere® Studio Le système est centré sur Java et les outils du libre tel que CVS. Il incorpore des outils venu de chez National (racheté par IBM) et remplace le célèbre VisualAge for Java. Extrait de la présentation Websphere Studio sur le Award-winning IBM WebSphere® Studio Application Developer is the core IBM development environment for creating and maintaining Web services and Java™ 2 Enterprise Edition (J2EE) applications. WebSphere Studio Application Developer speeds J2EE application development with best practices, visual tools, templates, code generation, and the most comprehensive development environment in its class. Quickly build rich, interactive user interfaces for Web applications using re-usable JavaServer Faces (JSF)* components that can be dropped onto a page. JSF eliminates much of the routine, hand-coding required for event handling, server-side validation and data binding for Web applications. Create, build, test, deploy and publish Web services with support for Universal Description, Discovery and Integration (UDDI),Version 2; Simple Object Access Protocol (SOAP); Web Services Description Language (WSDL); and Web Services Inspection Language (WSIL). Create, validate and detect WS-I Basic Profile, Version 1.0- compliant Web services for greater interoperability between services. Improve team productivity with support for external Software Configuration Management (SCM) systems. Includes IBM Rational ClearCase LT (CCLT) and adaptors for Concurrent Versions System (CVS) and can connect to other SCMs through vendor plug-ins.
24
IBM Websphere Studio + Offre très riche
Création de Site et service Web simplifié Unix / Linux /AIX - Offre complexe et intégration des solutions plus ou moins réussie Extrait de la présentation Websphere Studio sur le Create, build, test, deploy and publish Web services with support for Universal Description, Discovery and Integration (UDDI),Version 2; Simple Object Access Protocol (SOAP); Web Services Description Language (WSDL); and Web Services Inspection Language (WSIL). Create, validate and detect WS-I Basic Profile, Version 1.0- compliant Web services for greater interoperability between services. Create, test, and deploy J2EE applications to BEA WebLogic Server V6.1 and V7.0 using the Deployment Toolkit for WebSphere Studio, WebLogic Edition. Accelerate development by designing and visualizing Java and J2EE applications using integrated Universal Modeling Language (UML) Visual Editing. Improve team productivity with support for external Software Configuration Management (SCM) systems. Includes IBM Rational ClearCase LT (CCLT) and adaptors for Concurrent Versions System (CVS) and can connect to other SCMs through vendor plug-ins. Increase productivity with Visual Editor for Java, Web Site Designer, Hot Method Replace, code assist, re-factoring, configurable runtime, incremental compilation, scrapbook, dynamic debugging, and much more.
25
IV.6 – Les Services Web Qu'est-ce qu'un Service Web ? Il s'agit d'une technologie permettant à des applications de dialoguer à distance via Internet, et ceci indépendamment des plates-formes et des langages sur lesquelles elles reposent. Pour ce faire, les services Web s'appuient sur un ensemble de protocoles standardisant les modes d'invocation mutuels de composants applicatifs. Un projet qui passe notamment par l'élaboration de WSDL et de SOAP.
26
Visual Studio .NET .NET, c'est l'intégration.
Fondée sur des standards de l'industrie (http, XML, SOAP, WSDL), la plate-forme .NET est un moyen simple de normaliser la coopération des services logiciels entre eux (services Web XML), quelle que soit leur localisation, leur implémentation technique, qu'ils soient internes ou externes, existants ou à inventer. " Définition: Voici comment Microsoft définit .NET : " .NET est la plate-forme Microsoft pour la nouvelle génération de logiciels distribués et coopérants, les services Web XML. Elle vise à simplifier la vie de l'utilisateur en lui fournissant des services intégrés, centrés sur lui, accessibles depuis tous ses périphériques, à tout moment et en tout lieu. S'il ne fallait retenir qu'un seul mot de .NET, c'est donc l'intégration. Fondée sur des standards de l'industrie (http, XML, SOAP, WSDL), la plate-forme .NET est un moyen simple de normaliser la coopération des services logiciels entre eux (services Web XML), quelle que soit leur localisation, leur implémentation technique, qu'ils soient internes ou externes, existants ou à inventer. "
27
IV.7 - iPlanet by Sun Cette solution de bout en bout marque une nouvelle étape dans le développement des services web au sein de SunOne (Sun Open Net Environment), l'alternative à la plate-forme de services web proposée par Microsoft, .NET. Ou le serveur Web devient l’environnement de développement. Iplanet n’est en fait que le serveur Netscape réinventé auquel on a ajouté des produits libres repackagés. Toujours du Java (Sun oblige) et du Web Une base de donné, un débuggeur iPlanetWeb Server, anciennement dénommé Netscape Enterprise est un logiciel serveur web. Cette application supporte bien évidemment les scripts CGI (common gateway interface), les scripts JavaScript (côté serveur), mais aussi les Java Servlets, les pages JavaServer et l'environnement de programmation spécifique aux serveurs Netscape (NSAPI). Les développeurs de projets web complexes se sentiront d'autant plus à leur aise qu'ils disposeront, par exemple pour intégrer à un site web marchand une volumineuse base de donnée, de client ODBC (Open Database Connectivity) et JDBC (Java Database Connectivity) natifs ainsi que d'un environnement de "débuggage" Java. Les performances de ce serveur compatible HTTP 1.1 ne sont pas en reste, multitâche, optimisé pour le multi-processing et doté d'une gestion de la mémoire des plus performantes, il supporte par ailleurs l'encryptage par clé suivant la technologie PKCS, celle par exemple qu'emploi le module SSL (dont l'accélération matérielle est gérée par iPlanet WebServer). Sans vouloir être exhaustif, on retiendra son adaptation à la gestion partagée de sites complexes, au moyen d'une répartition contrôlée des tâches entre les administrateurs et le support de mots de passe attribués de façon dynamique. Fruit de la mise en commun de diverses applications, iPlanet lance sa plate-forme d'intégration. Ses atouts : le support des standards tels que XML, Java, SOAP... Le produit se veut être une solution de bout en bout, capable de déployer des services web. Issue d'une alliance entre Sun et Netscape, la société iPlanet lance en septembre sa plate-forme d'intégration, iPlanet Integration Plateform. Cette solution de bout en bout marque une nouvelle étape dans le développement des services web au sein de SunOne (Sun Open Net Environment), l'alternative à la plate-forme de services web proposée par Microsoft, .NET. « Notre solution, composante majeure de la plate-forme SunOne, répond aux différentes problématiques d'intégration des entreprises, depuis le projet le plus simple jusqu'au plus complexe, sans avoir recours à des langages propriétaires », souligne Jean-François Labro, directeur marketing Europe du Sud pour SunOne. Le produit se décompose en trois volets, qui s'appuient sur les standards émergeants, tels que XML, Java, et SOAP. « L'idée, c'est de disposer à la fois d'une solution prête à l'emploi, mais aussi intégrable dans d'autres solutions qui s'appuient sur les standards du marché », commente Jean-François Labro. Le premier volet, iPlanet Integration Server EAI Edition, est bien évidemment destiné aux projets d'EAI des grandes entreprises. Point fort : la séparation entre la logique métier et la couche applicative. « Il est ainsi possible de définir le processus métier ou de le modifier, sans avoir à toucher aux composants de base des systèmes d'entreprise », ajoute Jean-François Labro. Cela est rendu possible grâce au moteur de gestion des processus opérationnels d'iPlanet, qui prend en charge la conversion des données et des schémas XML, transférées via http. Dans le cas où les composants ne sont pas capables de dialoguer dans ce langage, des adaptateurs pourront être mis en place. Autre nouveauté : le support du protocole SOAP (Simple Object Access Protocol) qui permet de publier les processus EAI en tant que services web. Les sources de données peuvent ainsi être exploitées par d'autres organisations ou applications. Par ailleurs, deux technologies viennent compléter l'offre : la solution d'annuaire LDAP, capable de stocker les profils utilisateurs, et l'environnement de développement J2EE, Forte for Java proposé par Sun, qui permet le développement sous XML ou XSLT. Le produit est capable par ailleurs de générer des interfaces WSDL, permettant de transformer un composant en un service web. Combinaison entre deux outils complémentaires existants, TradingXpert et ECXpert, le deuxième volet de la solution iPlanet Integration Server B2B Edition permet l'échange de documents EDI, non EDI ou XML entre les entreprises, notamment les places de marché. « Il y a deux nouveautés cependant : une couche de sécurité plus importante, grâce au protocole Communication Retry, capable de gérer les ruptures de communication, et au système de chiffrement AS2, ainsi que le support de iPlanet Message Queue », précise Jean-François Labro. Ce dernier, le troisième volet de la solution de iPlanet, est une implémentation 100 % Java de l'API Java Message Service (JMS), qui offre une infrastructure de messagerie capable de router les messages entre applications hétérogènes, de manière fiable. « Sur ce point, (l'implémentation de JMS, Ndlr), nous sommes en avance sur le marché », conclut Jean-François Labro.
28
Critères de choix Le choix d’un AGL est un véritable casse tête Comment choisir sans tout essayer ? L’objectif: le web , une application, une base de donnée, du transactionnel … Les compétences techniques des équipes La plateforme (Windows / Linux/Unix) La documentation …. Chaque AGL est plus ou moins tourné vers une utilisation naturelle « Oracle Web « pour créer et mettre en ligne des Base Oracle et Websphere pour écrire des applications tournant sur le WEB dans le monde Unix IBM. Renseignez vous sur les AGLs utilisés dans votre domaine d’activité. L’utilisation d’outils standards permettant de récupérer des exemples et même du code source. Portez votre attenetion sur les critères suivants et ceux dépendamment a la plate-forme utilisée. Interconnexion avec des composants standards de la plate-forme. Utilisation possible des formats natifs de la plate-forme Interconnexion avec d’autre AGL (possibilité d’importer/exporter son code ses modèles) Même si les AGLs sont « spécialisés » ils ont tendance a tous tout faire. La aussi le choix d’un AGL incorporant l’ensemble des outils est plus définitif que l’utilisation d’un AGL constitué ou naturellement ouvert. Ne pas oublier l’essentiel : La robustesse du code, la capacité à faire évoluer celui ci, le test modulaire , la capacité de travail en équipe, la possibilité de travailler avec des outils externes. Et Les performances du code généré. Et surtout SURTOUT: Quel avenir pour votre AGL . En effet si vous avez développé du code dans un AGL qui n’évolue pas ou qui n’existe plus la pérennité de votre application est gravement atteinte. Nous ne pouvons que pensez avec compassion aux développeurs ayant travaillé en J++ dans Visual studio 7 , ou à ceux qui ont conçus des applications ADA sous VMS… La liste est longue Soyez prudents.
29
Comparaison AGL/Langages Serveur WEB !
ASP JSP PERL PHP3 Complexité d'apprentissage moyen élevé faible Puissance bon/élevé Complexité /Puissance bon Portabilité Bonne AGL MS Visual InterDev IBM VisualAge for Java, Perl Builder Ressources Peu Beaucoup énormément les offres semblent au premier abord très proches en valeur. Pour effectuer une comparaison, voyons sur quels critères ils se différencient. Tout d'abord, chaque langage ayant ses particularités, ils présentent une complexité différentes et donc un temps d'apprentissage plus ou moins élevé. Et en évaluant leur puissance respective on peut en déduire un rapport complexité sur puissance. Puis, ils se distinguent par leur portabilité : sur quelles plate-formes tournent-ils ? Enfin, nous pouvons comparer la qualité de l'environnement autour de chacun de ces produits, à savoir s'il existe des AGL permettant de développer avec ces langages ou encore s'il est facile de trouver des ressources, si possible gratuites, en particulier des codes sources libres de droit. Essayons de rassembler ces critères de comparaison dans un tableau, avec une échelle allant de faible à élevé : Enfin, un des facteurs et des pas de moindres pouvant vous influencer pour commencer ou changer de langage est un facteur psychologique dépendant de la situation dans laquelle vous vous trouvez. Si c'est la première fois que vous effectuez un développement Internet, qui plus est si ce développement n'est pas très important, il serait plus judicieux de choisir un langage "simple" comme le php. Il n'y a pas à se priver puisqu'il est gratuit. Si vous êtes dans une équipe avec des compétences plutôt dans un langage, il ne faut pas se priver des connaissances des autres personnes. Et si le langage en question est perl, il ne faut pas passer à côté du langage qui à l'heure actuelle donne encore les meilleures résultats dans la majorité des domaines. Si vous êtes dans une entreprise ayant des préférences en ce qui concerne un produits, je pense plus particulièrement aux entreprises tout Microsoft et où donc il n'y a pas d'autres alternatives à ASP, là évidemment il est préférable de ne pas froisser les esprits et de se conformer aux habitudes de la maison, à moins d'être un gourou d'un langage et donc de pouvoir imposer son point de vue par ses compétences. Enfin, si vous êtes récalcitrant à changer de langage, j'espère seulement que cette étude vous aura ouvert les yeux sur d'autres langages, surtout quand on sait qu'il est souvent nécessaire de connaître plusieurs langage pour être plus à même de s'adapter aux changements, et dieu sait comme ils sont fréquents dans ce "nouveau" domaine qu'est l'Internet.
30
Sources Diverse ressources Web
Autres AGL Rational Rose Oracle Designer Sun java studio Web (comparatif .net cbuilder) (site faisant la comparaison des scripts serveur) Des articles du journal programmez sur votre site Choisir son ide java gratuit.pdf, Nouvelles méthode de dev.pdf, passé présent Futur des langages de développement.pdf et Programmez en équipe.pdf
31
Glossaire API Application Programming Interface: L3G L4G
Bibliothèque de fonctions disponibles pour le développeur d’une application et lui permettant de s’affranchir de la programmation de tâches déjà réalisées par l’API. L3G Langage de développement de bas niveau (boucles, tests, calculs, manipulation de variables ou d’enregistrements). COBOL ou le langage C sont des L3G. L4G Langage automatisé proposant des fonctions de haut niveau, généralement graphique, et permettant la sélection et les mises à jour de données en général issues d’un SGBD relationnel.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.