ColdFusion

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Ne doit pas être confondu avec fusion froide.

ColdFusion est un langage informatique middleware utilisé pour développer des applications Web, s'appuyant sur un serveur applicatif du même nom.

Histoire[modifier | modifier le code]

ColdFusion est un langage à base de balises syntaxiquement plus proche d'HTML que d'autres langages utilisés dans le même domaine comme ASP, JSP ou encore PHP. Il a été créé par les frères Allaire, Jeremy et JJ en 1995, ce qui les a conduits à fonder la compagnie Allaire la même année. Un langage très simple à utiliser dès le départ, ColdFusion permet aux développeurs d'effectuer rapidement des opérations rudimentaires comme interagir avec une base de données et afficher dynamiquement des informations sur des pages Web. C'est à cause de leur réussite du début que Microsoft, en mars 1996, rachète Aspect Software, un des concurrents directs d'Allaire et qui conduira un peu plus tard au développement d'ASP.

DBML (DataBase Markup Language) était le nom du langage utilisé pour la version 1.0 de ColdFusion et s'est transformé rapidement en CFML (ColdFusion Markup Language). Dès la version 1.5, les développeurs pouvaient développer leurs propres tags en C++ pour étendre le langage qui était alors assez limité. C'est aussi à partir de cette version qu'Allaire réécrit complètement ColdFusion en Java afin de lui assurer une meilleure portabilité vers d'autres systèmes.

Le , une fusion a eu lieu entre Allaire et Macromedia. Peu de temps après est sortie la version 5.0 de ColdFusion et en juin 2002, la version MX. À partir de MX, la suite de produits est appelée Macromedia Coldfusion MX et repose complètement sur les bases de J2EE. Macromedia améliore l'intégration entre ses différents produits. Ainsi, Flash s'intègre dans ColdFusion, et ce dernier est complètement supporté par Dreamweaver MX. Cette version permet de manipuler plus facilement des fichiers XML, de faire tourner des Services Web sur le serveur d'application et propose nativement une possibilité de programmation orientée objet via l'utilisation de composants (classes).

Le , Macromédia sort Coldfusion MX 7, nouvelle mouture qui en plus d'apporter de nombreux correctifs, se veut améliorée au niveau de l'interface utilisateur. Il est désormais possible de générer dynamiquement des formulaires en Flash ou des fichiers PDF ou FlashPaper.

Le 3 décembre 2005, Macromedia est racheté par Adobe.

Le serveur d'application ColdFusion par Adobe est payant, ses concurrents (PHP…) sont gratuits. À l'instar de la bataille Windows/Linux, Adobe justifie ce tarif par la simplicité et la rapidité de mise en place d'applications développées en ColdFusion par rapport à leur équivalent PHP. Il existe cependant d'autres implémentations de serveurs interprétant du code CFML comme Railo, BlueDragon ou openBD, ces serveurs là étant gratuits, libres, voire opensource.

ColdFusion intègre nativement une couche d'abstraction de base de données. Le code n'est donc pas lié à tel ou tel SGBD (MySQL, Microsoft Access, Microsoft SQL Server) mais en fait abstraction, ce qui est similaire à l'API PDO écrite en C pour PHP5.

Plusieurs langages et bibliothèques d'objets peuvent être utilisés en conjonction avec ColdFusion comme le C++, COM, CORBA, XML et SOAP.

Exemples de code[modifier | modifier le code]

Les variables, pour qu'elles soient interprétées, doivent être comprises à l'intérieur de tags cfoutput, l'équivalent du tag <%= %> en ASP et JSP.

Affichage d'une variable dynamique

<html>
 <body>
 <cfset ma_variable = "Bonjour le monde">
  J'affiche ma variable comme ceci: 
   <strong>
    <cfoutput>
     #ma_variable#
    </cfoutput>
   </strong>
 </body>
</html>

Une boucle

<cfloop index="idx" from="1" to="10">
 <cfoutput>#idx#, </cfoutput>
</cfloop>

Une condition

 <cfset ma_variable = "Bonjour le monde">
   <cfif find('B',ma_variable)>
     Une phrase écrite car Sub string "B" trouvé dans la variable "ma_variable" type String !;
   </cfif>


Une requete dans une Base de donnée (MSSQL, Mysql, Oracle, Firebird,....)

 <cfquery datasource= "#monlienodbc#" name="MaRequete">
         Select * from employee
   </cfquery>

Liens externes[modifier | modifier le code]