1. Web Frameworks
A brief overview
Gianfranco Reppucci
@giefferre
2. So, what?
• Cos’è un framework web?
• Quale framework utilizzare?
• Qualche esempio pratico
• Alcune considerazioni
3. OK, ma perché parlare di
web framework?
Non tutto quello che viene considerato “web
development” si riduce a “creare siti”
• Web Application
• Social Network Apps & Mashup
• Web services
• ...
4. Framework = ?
• I primi siti web erano una collezione di
pagine HTML statiche
• Ogni aggiornamento richiedeva un
cambiamento manuale
<html>
<head>
<title>My wonderful website</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is my ancient website. Enjoy your time here.</p>
<a href=”page2.html”>Click here to open page 2</a>
</body>
</html>
5. Framework = ?
• Per creare pagine web dinamiche sono stati
introdotti i linguaggi di programmazione
“server-side”
<%@ language="vbscript" %>
<html>
...
<body>
<h1>Un esempio di codice dinamico</h1>
<%
For i = 1 to 10 Step 1
response.write("Questo messaggio sarà stampato 10 volte")
Next
%>
</body>
</html>
6. Framework = ?
Col crescere delle esigenze e con l’evolversi dei
design patterns, sono aumentate le possibilità
e le complicazioni
• Database
• Manipolazione immagini
• Elaborazione files
• ...
7. Framework = ?
• Un framework è un software che permette di
supportare la fase di sviluppo di siti, web
application o web services.
• Lo scopo di un framework è ridurre
l’overhead di un programmatore nello
scrivere parti di codice comuni (gestione
database, templating, sessioni, ecc)
8. Ovvero
Un framework è una collezione di
“strati” di software, ognuno dei
quali esegue compiti diversi
11. Framework != CMS
• È un errore molto frequente quello di
confondere il concetto di Content
Management System con quello di
Framework.
• Solitamente (ma non sempre!) un CMS è
qualcosa di più specifico e complesso di un
framework
12. Framework != CMS
Il CMS è un’applicazione “pronta all’uso” che
solitamente serve per creare facilmente siti e
webapp:
• È un contenitore
(di pagine, articoli, contenuti multimediali, ecc.)
• Il backend è più o meno standard
• Ha un proprio sistema di templating
• Di solito customizzabili solo tramite l’uso di
plugin specifici
13. Quale framework
utilizzare?
Dipende da:
• Linguaggio di sviluppo che si vuole adoperare
• Necessità strutturali del progetto
14. Python Clojure
Javascript
Erlang
PHP Ruby
C
Asp.NET
Smalltalk
Java
15. Per ognuno dei linguaggi esistenti
esistono diversi framework
20. Punti in comune
• Paradigma Model-View-Controller
• Strutturazione “Three-tier”
(client, application, database)
• A volte, sono molto simili
Infatti...
21. Un esempio pratico
• PHP: Slim
• Python: Flask
• Javascript: node.js + Express JS
22. Installazione: Slim
Da shell:
user@host:projectA$ curl -s https://getcomposer.org/installer | php
Create un file composer.json
{
"require": {
"slim/slim": "2.*"
}
}
Da shell:
user@host:projectA$ php composer.phar install