Web frameworks
Upcoming SlideShare
Loading in...5
×
 

Web frameworks

on

  • 431 views

 

Statistics

Views

Total Views
431
Views on SlideShare
428
Embed Views
3

Actions

Likes
0
Downloads
0
Comments
1

2 Embeds 3

http://www.pinterest.com 2
http://sandrostudio.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Web frameworks Presentation Transcript

  • 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 “webdevelopment” 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 deidesign 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. OvveroUn framework è una collezione di “strati” di software, ognuno dei quali esegue compiti diversi
  • 9. Caratteristiche• Database configuration, access, mapping (Object-Relational Mapping)• URL mapping• Templating
  • 10. Caratteristiche• Caching• Security• AJAX• Helpers
  • 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 != CMSIl CMS è un’applicazione “pronta all’uso” chesolitamente serve per creare facilmente siti ewebapp: • È 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 JavascriptErlang PHP RubyC Asp.NET Smalltalk Java
  • 15. Per ognuno dei linguaggi esistenti esistono diversi framework
  • 16. Python• Django• Flask• TurboGear• Zope 2
  • 17. PHP• Zend• CodeIgniter• Symphony• Slim• CakePHP
  • 18. Ruby• Ruby on Rails• Sinatra• Ramaze
  • 19. Javascript• node.js• meteor JS• SproutCore
  • 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
  • 23. Installazione: ExpressJS Scaricate ed installate node.js Create un file package.json{ "name": "node-express-test", "description": "NodeJS + ExpressJS test", "version": "0.0.1", "private": true, "dependencies": { "express": "3.x" }} Da shell:user@host:projectB$ npm install
  • 24. Installazione: Flask Da shell:user@host:projectC$ pip install flask EPIC WIN
  • 25. Hello world: Slim index.php<?phprequire vendor/autoload.php;$app = new SlimSlim();$app->get(/, function () { echo "Hello World!";});$app->run();?>
  • 26. Hello world: ExpressJS index.jsvar express = require(express);var app = express();app.get(/, function(req, res){ res.send(Hello World!);});app.listen(8002);
  • 27. Hello world: Flask index.pyfrom flask import Flaskapp = Flask(__name__)@app.route(/)def hello_world(): return Hello World!if __name__ == __main__: app.run(port=8003)
  • 28. Development server: PHP Da shell (PHP >= 5.4):user@host:projectA$ php -S localhost:8001 Altrimenti bisogna installare un classico stack *AMP
  • 29. Development server: node.js Da shell:user@host:projectB$ node index.js
  • 30. Development server: Python Da shell:user@host:projectC$ python index.py
  • 31. Alcune considerazioni I costrutti dei vari frameworkiniziano a somigliarsi tantissimo
  • 32. Alcune considerazioniVa bene specializzarsi con una tecnologia, ma è necessario “cambiare aria” ogni tanto
  • 33. Alcune considerazioniScegliete il framework rispetto al progetto che dovete sviluppare
  • 34. Riferimenti• http://en.wikipedia.org/wiki/ Comparison_of_web_application_frameworks• http://en.wikipedia.org/wiki/Web_application_framework• http://www.slimframework.com/• http://nodejs.org/• http://expressjs.com/• http://www.pip-installer.org/en/latest/installing.html• http://flask.pocoo.org/
  • 35. Graziedell’attenzione @giefferre http://gdlabs.it