Progettazione e sviluppo WEB - Laboratorio Libero · Conoscenza del linguaggio CSS (per il layout:...
Transcript of Progettazione e sviluppo WEB - Laboratorio Libero · Conoscenza del linguaggio CSS (per il layout:...
Progettazione e sviluppo WEB
Antonio Gallo
✗ Progettazione (come deve essere fatto)✗ Grafica e fotografia
✗ Progr. HTML – Front-end (HTML)✗ Progr. lato server – Back-end (PHP + MYSQL)
✗ Scrittura e revisione dei testi✗ Infrastruttura (Server)
✗ Test, collaudo e pubblicazione✗ Promozione (SEO)
Progettazione e sviluppo WEB
✗ Gestione e-mail istituzionali✗ Newsletter
✗ Blog promozionale✗ Integrazione Social (Facebook, etc)
✗ Servizio fotografico✗ Marketing
✗ Pagamento online✗ Integrazione con gestionale aziendale
✗ Integrazione con App dedicata✗ Altro...
E molto altro...
Progettazione e sviluppo WEB
✗ Basi della comunicazione web✗ Introduzione alla programmazione lato client
(HTML e correlati)✗ Introduzione alla programmazione lato server
(PHP e correlati)✗ Basi di SEO, basi di integrazione con Social
Network
Che cosa faremo in questo modulo
✗ Blog✗ Sito web di vetrina
✗ Quotidiano✗ E-commerce
✗ Area riservata online✗ Agenda online
✗ Forum✗ ...
Sito internet?
http://www.lyonaeroports-t1.com/enhttp://www.barlasapaydin.com/#!/
http://www.windowsofnewyork.com/#aboutwofnyhttp://orangina.eu/
Alcuni siti estremi
✔ Struttura home page✔ Navigazione (menù in alto)
✔ Categorizzazione dei prodotti: pagine, sotto pagine
✔ Pagine istituzionali: l’azienda, contatti, altro✔ Sezioni correlate: news, eventi, referenze
✔ Area riservata per i clienti?
Progettazione e sviluppo WEB
✔ Sviluppata da un grafico (designer o creativo)✔ Creazione mockup da presentare al cliente✔ Creazione finale della grafica di tutto il sito✔ Creazione banner e icone✔ Eventuale servizio fotografico
Grafica e fotografia
Glossario
Browser: il programma che si usa per navigare internet e vedere un sito. Ex: Chrome, Firefox,
Edge, IE, Safari
Glossario
Client: il programma/computer che “fa una richiesta” attraverso una rete (internet / locale / VPN). Ex: client di posta elettronica, browser
Server: il computer “che prende in carico la richiesta del client e risponde” (ad esempio il
computer dove è installato il sito internet)
Glossario
Front-end: la parte pubblica del sito (quella che vede chi si collega all’indirizzo del sito web con un
browser)
Back-end: la parte amministrativa del sito web, riservata a chi conosce login e password, che
permette la gestione dei contenuti del sito
Glossario
Sito statico: tutti i contenuti sono scritti direttamente all’interno di file .html. Non ha
backend (puro front-end)
Sito dinamico: i contenuti della parte front-end sono generati da un software che interpreta le richieste e genera l’HTML richiesto (è spesso presente un back-end con accesso riservato)
HTML
HTML (HyperText Markup Language):
linguaggio di markup per descrivere la struttura di un sito web (1993 – 2017)
Versione corrente: HTML5
CSS
CSS (Cascading Style Sheets): linguaggio usato per la formattazione di un sito web (strutturazione
e decorazione grafica)
Versione corrente: CSS3
Javascript
Javascript: linguaggio lato client (cioè eseguito dal browser) che permette di interagire con gli
elementi della pagina.
✗ Animazioni✗ Eventi
✗ Processi in background✗ Altro
Sono quei linguaggi che vengono eseguiti dal CLIENT (quindi dal vostro computer)
✗ HTML : Struttura✗ CSS : Aspetto
✗ Javascript : Animazioni e user interaction
Linguaggi lato client
Sono quei linguaggi che vengono eseguiti dal server e che generano il codice HTML che verrà
poi “trasformato in sito internet” dal vostro browser.
Linguaggi lato server
✗ Linguaggio vero e proprio: PHP (PYTHON, C#, RUBY, …)
✗ Database: MYSQL (MSSQL, POSTRESQL, ...)
Linguaggi lato server
Competenze:
✔ Conoscenza del linguaggio HTML (versione 5)✔ Conoscenza del linguaggio CSS (per il layout: font, colori, sfondi, etc …. animazioni con CSS3)
✔ Conoscenza del linguaggio Javascript per le animazioni e la user interaction (jQuery)
✔ Utilizzo di plugin Javascript✔ Spesso, ma non necessario… conoscenza di Photoshop o Illustrator
Sviluppo front-end
Lo sviluppo front-end è “più o meno” programmazione ed è complicato. Richiede un front-ender.
In alcuni casi lo sviluppo HTML è la fase che richiede maggior tempo di sviluppo
Sviluppo front-end
Alternativa… più economica:
Usare un tema HTML (template) acquistato su internet.
Esempio: themeforest (https://themeforest.net/)
Sviluppo front-end
Vantaggi utilizzo tema✔ Non serve un frontender (costo tema: 15 euro)✔ Non serve un grafico✔ Tempo sviluppo: bassissimo (basta backend)
Svantaggi utilizzo tema✔ Minore flessibilità (non si parte dalla grafica, ci si adatta al tema che si trova)
✔ Altri siti potrebbero aver usato lo stesso tema
Sviluppo front-end
Lo sviluppo back-end serve per la creazione del pannello amministratore:
✔ Accesso riservato con login✔ Aggiunta / modifica contenuto✔ Aggiunta modifica utente✔ Altro...
Sviluppo back-end: PHP + MYSQL
Oltre a questo, chi si occupa della programmazione back-end deve anche “cablare” il front-end in modo che questo diventi “dinamico”.In particolare deve:
✔ Fare in modo che il front-end prenda i contenuti dal database (esempio news, commenti, etc)
✔ Attivare i servizi correlati: invio mail, upload, aree riservate front-end, etc
Sviluppo back-end: PHP + MYSQL
Competenze necessarie:✔ Un linguaggio “lato server” (PHP, PYTHON, RUBY, C#)
✔ Un linguaggio SQL per Database relazionali (MYSQL, MSSQL, POSTGRESQL, …)
✔ Le basi della gestione di un server (APACHE,IIS)
Sviluppo back-end: PHP + MYSQL
Spesso chi fa il back-end si basa solitamente su un “CMS” (Content Management System), cioè un software costruito apposta per creare il pannello admin di un sito web.
Può essere di proprietà dello sviluppatore (costruito da lui o dall’azienda per cui lavora)
Può essere opensource: wordpress, joomla, altro
Può essere a pagamento
Sviluppo back-end: PHP + MYSQL
Svantaggi di un CMS generico (come wordpress):
✔ Meno flessibile (il cliente deve accontentarsi di quello che si può fare, o soprattutto dei modi in cui il software fa le cose)
Vantaggi
✔ Economico
Sviluppo back-end: PHP + MYSQL
Grazie ad un CMS un frontender può creare il pannello admin di un sito web senza avere particolari conoscenze di programmazione.
Se compra il tema, non servono neppure competenze di HTML, basta installare il CMS e successivamente installare il tema.
Il risultato finale è mediocre, ma il costo sarà bassissimo.
Sviluppo back-end: PHP + MYSQL
La soluzione CMS scaricato (wordpress) con tema acquistato va bene nei seguenti casi:
✔ Sito web non commerciale (blog personale, etc)✔ Sito web di vetrina personale (professionista, etc)
✔ Sito web commerciale ma a basso budget✔ Altro...
Sviluppo back-end: PHP + MYSQL
La soluzione più difficile è quella che hanno adottato diverse aziende di successo, e cioè iniziare a programmare e costruire il proprio CMS.
Questo permette di:✔ Avere maggiore flessibilità nella personalizzazione del pannello admin
✔ Vendere un prodotto che non ha nessun altro (non è “il solito wordpress”
✔ Poter fare sito web più customizzati (anche aree riservate, intranet)
Sviluppo back-end: PHP + MYSQL