30
Università degli Studi di Milano Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Strumenti e applicazioni del Web 7. Le applicazioni Web e i CMS Giuseppe Vizzari Edizione 2015-16

07 - Web apps e CMS

Embed Size (px)

Citation preview

Page 1: 07 - Web apps e CMS

Università degli Studi di Milano BicoccaDipartimento di Informatica, Sistemistica e ComunicazioneCorso di Strumenti e applicazioni del Web

7. Le applicazioni Web e i CMSGiuseppe Vizzari

Edizione 2015-16

Page 2: 07 - Web apps e CMS

Queste slideQueste slide fanno parte del corso “Strumenti e applicazioni del Web”. Il sito del corso, con il materiale completo, si trova in strumentiapplicazioniweb.wordpress.com. Data la rapida evoluzione della rete, il corso viene aggiornato ogni anno. Il presente materiale è pubblicato con licenza Creative Commons “Attribuzione - Non commerciale - Condividi allo stesso modo – 3.0” (http://creativecommons.org/licenses/by-nc-sa/3.0/it/deed.it ):

La licenza non si estende alle immagini provenienti da altre fonti e alle screen shot, i cui diritti restano in capo ai rispettivi proprietari, che, ove possibile, sono stati indicati. L'autore si scusa per eventuali omissioni, e resta a disposizione per correggerle.

Page 3: 07 - Web apps e CMS

Applicazioni Web

• Oltre che "navigare", l'utente deve poter "interagire" con un sito, fornendo dei dati che il sito elaborerà fornendo le risposte opportune• Nell’impostazione del Web 2.0 l’idea è che l’utente deve poter

contribuire o addirittura costruire un sito web• Non solo "Web site" ma "Web application"

3

Page 4: 07 - Web apps e CMS

Applicazioni Web: script client-side

4

HTTPinternetBrowser

Web server

HTML con script client-side

HTML con programmi client-side

Esecutore dei programmi client-side

Esempi:• Javascript (script interpretati) con librerie

DOM• Applet Java (codice precompilato

interpretato da JVM (Java Virtual Machine)• Ajax (rende asincrona l'interazione col

server)

AJAX Engine

Page 5: 07 - Web apps e CMS

Programmazione lato client• JavaScript (creato da Netscape, 1995)

Semplice linguaggio di scripting, inserito nel codice HTML e (standardizzato da ECMA col nome di ECMAScript)Interpretato da una Javascript Engine• DOM (Document Object Model)

Librerie di funzioni associate a Javascript, per la manipolazione delle pagine e degli elementi dell'interfaccia del browser• Applet Java (Java: linguaggio a oggetti creato da Sun, 1995)Programmi già compilati in codice intermedio ("bytecode"), che viene eseguito da una Java Virtual Machine. Devono essere inviati dal server, e quindi per motivi di sicurezza non hanno accesso al file system del client (Sandbox).• AJAX (Asynchronous JavaScript and XML)

Un gruppo di tecnologie e metodi che rendono asincrone la gestione della interazione con l'utente e il dialogo con il web server

5

Page 6: 07 - Web apps e CMS

Applicazioni Web: script client-side

6

HTTPinternetBrowser

Web server

HTML con script client-side

Esecutore dei programmi client-side

Sandbox: in questo contesto, si intende un meccanismo per mantenere separati gli script dalle risorse del client (memoria, memoria persistente). Non è detto che i diversi esecutori di script client-side siano davvero efficaci in questo senso… sistemi open source danno maggiore affidabilità (trasparenza)

AJAX Engine

Page 7: 07 - Web apps e CMS

Esempi<html> <head> …. </head> <body> …. <script type="text/javascript"> Document.write('Hello World') </script> ….. </body></html>

7

<applet code="Hello class” width="200" hight="200"> </applet>

Page 8: 07 - Web apps e CMS

Applet Java: esempio

8

Page 9: 07 - Web apps e CMS

Applicazioni Web: script server-side (pagine dinamiche)

9

HTTPinternetBrowser

Web server

HTML con programmi server- e client-side

HTML con script client-side

Esempi:• script PHP (Personal Home Page

Tools)• script JSP (Java Server Pages)• Servlet Java• …

Codice generato server-side

Esecutore diprogrammi server-side

Codice server-side

Page 10: 07 - Web apps e CMS

La trasmissione dei dati di input

10

HTTPWeb

server

HTML

HTTP e HTML forniscono degli strumenti per richiedere dati all'utente e trasmetterli al Web server

GET (URL)1

HTMLPUT

2

Nome:OK

35

GET URL', Nome=mario

4

Scrive "Mario" e preme OK

6

Elaborazione dati e produzione / invio di una nuova pagina

Page 11: 07 - Web apps e CMS

<form method="get" action=http://www.google.com/search> <input type="text" name="querystring">

<input type="submit" name="button1" value="Google Search"></form>

Form: esempio

11

bla bla

querystring=bla+bla&button1=Google+Search

Al server

Page 12: 07 - Web apps e CMS

AJAX (Asynchronous JavaScript and XML)

12Da leggere: http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications

Page 13: 07 - Web apps e CMS

Architetture a più livelli ("multi-tier")

13

HTTPinternetBrowser

Web server HTML con script

client-side

Pagine generate dinamicamente

Applicationserver

dbserver

Data base

Page 14: 07 - Web apps e CMS

Come “installare” un sito Web?

14

HTTPinternetBrowser

Web server

Pagine web

Editor

HTTP

FTP

HTML

Es.: Dreamweaver

Una soluzione elementare

Page 15: 07 - Web apps e CMS

Content Management Systems (CMS)

15

HTTPinternetBrowser

Web server

Pagine generate dinamicamente

CMS dbserver

Data base

Lettore

Un'applicazione che permette di costruire e installare le pagine, e di

servirle ai lettori

Page 16: 07 - Web apps e CMS

Content Management Systems (CMS)

16

HTTPinternetBrowser

Web server

Pagine generate dinamicamente

CMS dbserver

Data base

Lettore

Browser

Editor

Page 17: 07 - Web apps e CMS

Browser

Content Management Systems (CMS)

17

HTTPinternetBrowser

Web server

Pagine generate dinamicamente

CMSdbserver

Data base

Autore

Lettore

Browser

Amministratore

Page 18: 07 - Web apps e CMS

Content Management Systems (CMS)

18

HTTPinternetBrowser

Web server

Pagine generate dinamicamente

CMSdbserver

Data base

Browser

Autore

Lettore

Browser

Amministratore

Templates

Materiale autoreMateriale amministratore

Page 19: 07 - Web apps e CMS

CMS: tipologie

19

Codice proprietario Codice aperto(open source)

Codice preinstallato

(server di terza parte)

Codice da installare

(necessità di un server)

“Online site builders”Es.:blogger (Google)Weebly, Webs,Ning, Socialgo, …

Es.:www.wordpress.com….

Es.:wordpressJoomladrupal

(ne esistono, ma sono molto meno interessanti… esempio: il sito di Ateneo)

Page 20: 07 - Web apps e CMS

CMS: tipologie

20

Codice proprietario Codice aperto(open source)

Codice preinstallato

(server di terza parte)

Codice da installare

(necessità di un server)

“Online site builders”Es.:blogger (Google)Weebly, Webs,Ning, Socialgo, …

Es.:www.wordpress.com….

Es.:wordpressJoomladrupal

(ne esistono, ma sono molto meno interessanti…)

Domanda legittima, anzi, quasi

obbligatoria… come si collocano i cosidetti

Wiki in questo schema?

Ne riparleremo…

Page 21: 07 - Web apps e CMS

Online site builders

• Applicazioni proprietarie che permettono di costruire e pubblicare siti web interamente on-line, senza necessità di programmazione• Il sito può essere personalizzato in vari modi: scelta del tema grafico, uso di widget, … A volte si può personalizzare il codice o modificare i CSS•Quasi sempre a pagamento (canone mensile), a volte servizi di base gratuiti• Esempi:Per blog: www.blogger.com (di Google, gratuito), …Per siti: www.weebly.com, www.webs.com, …Per social networks: www.ning.com, www.socialgo.com, …

21

Page 22: 07 - Web apps e CMS

CMS open source•Si deve scaricare il software e installarlo su un server (proprio o di un provider)•Si rivolgono a utenti più esperti, e sono più flessibili•Esempi:• WordPress (www.wordpress.org)

Molto semplice da usare, molto ricco di plugin pronti all’uso. Esiste anche una versione online semplificata: www.wordpress.com (funzionalmente limitata, molto diffusa: http://en.wordpress.com/stats/ )• Joomla (www.joomla.org)

Più complesso• Drupal (www.drupal.org)

Più complesso

R.Polillo - Marzo 2015

22

Page 23: 07 - Web apps e CMS

WordPress

• Il CMS open source più diffuso•Nato per realizzare blog nel 2003 sulla base di un precedente sistema del 2001, ora permette di realizzare anche siti molto sofisticati•Grande community che ne sviluppa l'ecosistema•Facile da usare, può essere personalizzato anche in modo molto sofisticato (HTML, PHP, MySQL)•http://en.wikipedia.org/wiki/WordPress 23

Page 24: 07 - Web apps e CMS

Blog iniziale:tema di default

24

Page 25: 07 - Web apps e CMS

Temi: strutture tipiche

25

Header

Colonna 1 Colonna 2 [Colonna 3]

Footer

[Menu orizzontale]

1, 2 o 3 colonne

Page 26: 07 - Web apps e CMS

Altro tema predefinito (2 colonne)

26

Page 27: 07 - Web apps e CMS

Altro tema predefinito: 2 colonne

27

Page 28: 07 - Web apps e CMS

Altro tema predefinito (3 colonne)

28

Page 29: 07 - Web apps e CMS

29

Altro tema predefinito (3 colonne)

Page 30: 07 - Web apps e CMS

Esempi realizzati con WordPress

Versione .com:•https://strumentiapplicazioniweb.wordpress.com/•http://www.corsow.wordpress.com Versione scaricabile:•http://www.rpolillo.it •http://www.stylenest.co.uk •http://mosaic-consulting.com

30