250 likes | 326 Views
Altres tecnologies de programació de Servidor. ColdFusion, Cache SP, Python, Perl. Ana Vanessa Buigues Grimalt. Índex. Introducció. ColdFusion. Cache SP. Python. Perl. Comparativa. Estadístiques d’ús. Bibliografia. Introducció. ¿Què ens aporta?
E N D
Altres tecnologies de programació de Servidor ColdFusion, Cache SP, Python, Perl Ana Vanessa Buigues Grimalt
Índex • Introducció. • ColdFusion. • Cache SP. • Python. • Perl. • Comparativa. • Estadístiques d’ús. • Bibliografia.
Introducció • ¿Què ens aporta? • Ens aporta portabilitat entre diferents plataformes. • ¿Què ens permet fer? • Realització d’entorns dinàmics, accés al sistema de fitxers del servidor, enviar correus electrònics, gestió d’errors, connectivitat amb bases de dades, reutilització de codi, etc... • Gestió de sessions, processament de l’entrada de dades: descodificació de paràmetres (tant en el sistema POST com el GET)
Cold Fusion (I) • Desenvolupat per Allaire Corporation com alternativa al Perl i altres tecnologies GCI. • Combina un llenguatge intuïtiu basat en tags, amb ferramentes visuals i un servidor d’aplicacions web. • Interactua de manera simple amb bases de dades (Oracle, MySQL, Acces). • Integra distintes tecnologies com Javascript, COM, Corba y Applets y Servlets de Java mitjançant tags
Cold Fusion (II) • Avantatges: • És fàcil la programació web amb més de 70 tags CFML i sobre 200 funcions personalitzades. • Utilitza menys línies de codi i són mes intuïtives. • El llenguatge es extensible, converteix dades cap a i des de XML. • Desavantatges: • Gran inversió en software i en hosting. • Programació distinta a allò que els programadors estan acostumats.
Cold Fusion (III) Ens permet relacionar les províncies amb el poble sense haver de refrescar la pàgina • Exemple: Carrega des de una BD dos selects <FORM ACTION="tupagina.cfm" METHOD="POST" Name="MyForm">Elegir provincia:<CF_TwoSelectsRelated QUERY="GetProvincias“ NAME1="ProvinciaID“ NAME2="PuebloID" DISPLAY1="Provincia” DISPLAY2="Pueblo“ VALUE1="ProvinciaID" VALUE2="PuebloID“ FORCEWIDTH1="50" FORCEWIDTH2="50" SIZE1="1" SIZE2="1" EMPTYTEXT1="Todas las provincias" EMPTYTEXT2="Todas los pueblos“ HTMLBETWEEN="<BR>" FORMNAME="MyForm" AUTOSELECTFIRST="Yes"> </FORM>
Cold Fusion (iVI) <CFQUERY NAME="GetProvincias" DATASOURCE="#request.maindsn#"> SELECT Pueblos.ProvinciaID, Pueblos.PuebloID, Provincias.Provincia, Pueblos.Pueblo FROM Provincias, Pueblos WHERE Pueblos.ProvinciaID = Provincias.ProvinciaID ORDER BY Provincias.Provincia, Pueblos.Pueblo </CFQUERY>
Caché SP (I) • Caché Server Pages • Tecnologia de la empresa Intersystems • Disponible en vàries plataformes (Windows, diversos Unix, incloent Linux) • La tecnologia CSP es basa en el seu motor de BD. • Tot és gestionat per el SGBD: scripts de servidor, accessos a la BD, servici HTTP, etc.
Caché SP (II) • Un fitxer CPS es un fitxer HTML que, a més de codi HTML, pot contindre els següents elements: • CSP tags: <csp:while>…</csp:while> • Blocs de codi Caché Object Script (COS): <script language=”cache”>...</script> • Expressions COS que tornen un valor: #...# y ##...## • Blocs de codi SQL: <script language=”sql”>…</script> • Objectes integrats: • %request: propietats relatives a la pàgina actual. • %session: propietats de la sessió actual. • %response: propietats relatives a la pàgina que es retorna.
Caché SP (III) • Avantatges: • Creació d’aplicacions web orientades a bases de dades. • Suporta HTML, XML, WML i altres llenguatges de marcat. • El contingut (HTML, XML, fulles d’estil, imatges...) es genera per programació en temps d'execució en el servidor d’aplicacions. • Desavantatges: • Gran inversió en software i en hosting. • Programació distinta a allò que els programadors estan acostumats.
Caché SP (IV) • Exemple: recuperar dades amb GET <html> <body> <form action=”pagina2.csp” method=”get”> Nombre: <input type=”text” name=”nombre”> <br> Apellidos: <input type=”text” name=”apellidos”> </form> </body> </html> <html> <body> Tu nombre es: #(%request.Get(“nombre”))# <br> Tus apellidos son: #(%request.Get(“apellidos”))# </body> </html> Pàgina 1 Codi de servidor Pàgina 2
Caché SP (iV) Codi de base de dades • Exemple: accés a un BD <html> <body> <script language=”sql” name=”algo”> SELECT * FROM mitabla </script> <table> <csp:while condition=”algo.Next()”> <tr><td>#(algo.GetData(1))#</td> <td>#(algo.GetData(2))#</td></tr> </csp:while> </table> </body></html> Tags de Caché SP
Python (I) • Creat per Guido van Rossum. • Es un llenguatge simple, llegible i molt poderós. Dèbilment tipat. Multiplataforma. • Una de les grans virtuts de Python es la quantitat d’alternatives existents per al desenvolupament d’aplicacions Web, existeixen servidors d’aplicacions complexos i mes lleugers (Zope, Webware) plantilles, i la possibilitat de incrustar-lo en un document HTML (PSP). • Mòdul BD-API per connectar-se amb bases de dades.
Python (II) • Avantatges: • Existeixen molts servidors d’aplicacions. • Es multiplataforma (més que Java). • Lliure. • Desavantatges: • Ha decrescut molt el seu us.
Python (iIII) Delimitador de codi de servidor • Exemple: Usant PSP <!– cgi-bin/psp/holamundo.psp --> <html> <% if form.has_key('nombre'): saludo = 'Hola, %s!' % form['nombre'].capitalize() else: saludo = 'Hola mundo!' # end %> <h1><%= saludo %></h1> <p>Usa parametro 'nombre' para recibir un saludo, e.g. holamundo.psp?nombre=Diego</p> </html>
Perl (I) • Perl (Practical Extracting and Reporting) creat per Larry Wall es un llenguatge que es caracteritza per la facilitat de crear GCI gràcies a la seua capacitat de processament de text. Basat en C, awk, sed, sh i Basic. Suporta tant la programació procedural com la orientada a objectes. Interactua amb llibreries de C/C++ externes mitjançant XS o Swing. • Es extensible, en CPAN (Comprehensive Perl Archive Network) podem trobar mes de 500 mòduls disponibles. • El mòdul CGI.pm ens permet de manera molt fàcil manejar formularis HTML. • El mòdul mod_perl permet integrar a l’Apache l'intèrpret de Perl. • El mòdul DBI (Database Integration Interface) permet una integració amb bases de dades. Suporta qualsevol tipus de base de dades.
Perl (II) • Avantatges: • Una gran quantitat de mòduls per a la generació d’aplicacions així com la administració de servidors web. • És un llenguatge interpretat optimitzat per al processament d’arxius de text pla. • Lliure. • Desavantatges: • Cada vegada que un procés es desenvolupa i el llenguatge és interpretat, el codi és recompilat novament cada vegada que corre. • No recomanable per a coses complexes. • La seua popularitat en el desenvolupament Web ha decrescut de manera important a favor de PHP.
Perl (III) Aquesta línia indica que a partir d'ací en endavant tot el print es va ha desplegar com codi HTML • Exemple: omplir una taula des de la base de dades. #!/usr/local/bin/perl use CGI; use DBI; $query = new CGI; use CGI::Carp qw(fatalsToBrowser); &html_EOF; sub html_EOF{ print "Content-type: text/html\n\n"; print<<EOF; <html><head><title>Perl CGI Example # 3";</title></head> <body><h1>Perl CGI Example # 3</h1><p>" EOF } $dbh = DBI->connect("dbi:mysql:mydatabase","demo","") or die("Couldn't connect"); $query->import_names('R'); Obrim com un gran camp de print Final del camp print Connexió amb la base de dades
Perl (iVI) $sth = $dbh->prepare("select * from gazetteer where feature = ?") or die("Couldn't prepare"); $sth->execute($R::place); if($sth->rows == 0){ print "No information for " . $R::place; } else{ print "<table border=2>\n"; while( $resptr = $sth->fetchrow_hashref() ){ print "<tr>"; print "<td>" . $resptr->{"latitude"}; print "<td>" . $resptr->{"longitude"}; print "<td>" . $resptr->{"easting"}; print "<td>" . $resptr->{"northing"}; } print "</table>\n"; } print "</body></html>\n"; $dbh->disconnect;
Estadístiques d’ús Font: www.tiobe.com
Bibliografia • Cold Fusion • www.cfugspain.org • www.tejedoresdelweb.com • Cache SP • www.intersystems.es • Python • www.python.org • www.lawebdelprogramador.com • Perl • www.desarrolloweb.com • www.wikilearning.com • Estadístiques d’us • www.tiobe.com
Dubtes ?