enib cours c.a.i. web - séance #1 - html5 css3-js - 1

53
Conception d'Applications Interactives : Applications Web et JEE Séance #1 Le web en 2013 - HTML5/CSS3/JS

Upload: horacio-gonzalez

Post on 06-Jul-2015

629 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Conception d'Applications Interactives :

Applications Web et JEESéance #1

Le web en 2013 - HTML5/CSS3/JS

Page 2: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Description du module

● Le web en 2013 : HTML5/CCS3/JS● Applications web avec GWT ● La webapp dans un écosystème JEE● Frameworks JEE

○ Spring● Nouveaux langages et frameworks JEE

○ Groovy et Scala, Grail & Play Framework ● Sortons un peu du monde JEE :

○ NodeJS, Dart● Examen et TP

Page 3: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Le web en 2013 : HTML5/CCS3/JS

● Les bases du web○ HTTP, URL, HTML, CSS, JS, AJAX...

● HTML5 ○ HTML5, CSS3, le casse-tête des navigateurs...○ Le web en 2013, le responsive design

● Twitter Bootstrap○ Outils, échafaudage, LessCSS, JQuery

● Le développeur web en 2013○ Rôles, technologies, langages, veille technologique

Page 4: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Qui sommes nous

Page 5: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Horacio Gonzalez

Spaniard lost in Brittany, Java developer, dreamer and all-around geek

● Architecte technique au Crédit Mutuel Arkea○ Direction Technique Informatique

● JUG Leader du FinistJUG

http://lostinbrittany.org/ +Horacio.Gonzalez @LostInBrittany

Page 6: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Sébastien Lambour

Le développeur de l'Est le plus à l'Ouest, Java & C++ Developer, coder addict, continuous intégration ayatollah

● Référent technique au Crédit Mutuel Arkea○ Direction des Etudes Informatiques

[email protected] +sebastien.lambour

@FinistSeb

Page 7: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

David Herviou

Java Developer, Programming addict, Curious about new technologies

● Responsable du service Méthodes Appliquées au Crédit Mutuel Arkéamots clés : Architecture Applicative, Intégration Continue, Qualimétrie de code, Optimisation, GWT, Thrift, Java, Test de charge, Big Data, APM, Revue de Code, Testing...

[email protected] +david.herviou @herviou

Page 8: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Les bases du web

Page 9: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Les bases du web

● Le Web, URLs, HTTP● HTML● CSS● JavaScript

Page 10: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Le Web, URLs, HTTP

Page 11: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Le Web

● Système hypertexte public fonctionnant sur internet qui permet de consulter, avec un navigateur, des ressources accessibles sur des sites (merci Wikipedia)

Image : CIA

Page 12: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Principaux composants du web

Page 13: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Uniform Resource Locator

Chaîne de caractères utilisée pour adresser les ressources du web

URLs

Page 14: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

URL - Query string

Chaîne de caractères envoyée au serveur● Des données à passer à l'application web● Personnalisation des contenus

Page 15: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

URL - Identifiant de fragment

Chaîne de caractères interprétée par le navigateur● Identifie une ressource dans le document

reçu● Jamais transmise au serveur

Page 16: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

HTTP

HyperText Transfer Protocol

Protocole de communication client-serveur développé pour le World Wide Web

Page 17: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Requête HTTP

● En-têtes HTTP : Information ajoutée○ Host : domaine appelé (serveurs multi-domaines)○ User-Agent : indentifiant navigateur○ Referer : Document duquel on vient○ ...

● Méthode : Commande demandée● Version : HTTP/1.0, HTTP/1.1

Page 18: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Méthodes HTTP

● GET● POST● PUT● DELETE

● HEAD● TRACE● OPTIONS● CONNECT● PATCH

Page 19: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Réponses HTTP

● Ligne de Statut● En-têtes HTTP : Information ajoutée

○ Date ○ Server : Info sur le serveur web○ Content-Type : identifiant de format de

données○ Content-Length : taille en octets de la

ressource○ ...

Page 20: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Web statique et web dynamique

Page 21: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

HTML

Page 22: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

HTML

HyperText Markup Language

Les documents HTML sont le cœur du web

● Composés de○ Texte ○ Balisage○ Références à d'autres documents○ Liens

Page 23: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Document HTML

Page 24: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Le contenu à marquer est délimité par des balises

Balises HTML

● Balises de premier niveau● Balises d'en-tête● Balises de structuration du texte● Balises de listes● Balises de tableau● Balises de formulaire● Balises sectionnantes● Balises génériques

Page 25: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Balises de structuration du texte

Page 26: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Balises avec attributs

Page 27: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Balises vides

Page 28: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Les espaces et les sauts de ligne

Page 29: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Éléments inline et éléments bloc

Page 30: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Balises génériques : <span> et <div>

Page 31: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

CSS

Page 32: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

La mise en page HTML

Image : Wikipedia

Page 33: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

La mise en page HTML

Image : Mosaic

Page 34: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

La mise en page HMTL

Sites Disney.com et Apple.com, 1997Source : Wayback Machine

Page 35: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

La mise en page HMTL

Site Disney.com, 1999Source : Wayback Machine

Page 36: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Les feuilles de style en cascade

Page 37: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

● Arbre logique du document○ DOM

● Concept de boîte

● Propriétés et valeurs

● Sélecteurs et blocs de règles

Principes des CSS

Page 38: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Objectifs des CSS

● Séparer la structure de la présentation

● Décliner les styles selon le récepteur

● Permettre la cascade des styles

Page 39: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Le problème

Problème : Support différent selon le navigateur

● Guerre des navigateurs

● Domination IE6

Technique du doctype switching ● Différents sous-ensembles de CSS 1

CSS 2 et CSS 2.1 jamais complètement implémentées

Page 40: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

L'exemple par excellence : CSS Zen Garden

Source : CSS Zen Garden

Page 41: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

DOM

Page 42: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

L'arbre DOMDocument Object Model

● Interface indépendante de tout langage de programmation et de toute plate-forme, permettant à des programmes informatiques et à des scripts d'accéder ou de mettre à jour le contenu, la structure ou le style de documents XML (merci Wikipedia)

Page 43: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

JavaScript

Page 44: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Objectif : donner du dynamisme

● Né chez Netscape en 1995○ Adopté par Internet Explorer 3 en 1996○ Standardisé comme ECMAScript en 1997

● Des scripts qui s'exécutent côté navigateur○ Pages webs dynamiques, DHTML

Page 45: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Caracteristiques de JavaScript

● Procédural et structuré

● Fonctionnel○ Les fonctions sont objets de premier niveau

● Dynamique○ Typage dynamique○ Avec objets : tableaux associatifx (clé-valeur)

■ Propriétés dynamiques

● Basé sur des Prototypes○ Héritage basé sur le clonage d'objets

Page 46: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

XMLHttpRequest

● Appeler un serveur depuis un script JS○ Traiter la réponse directement depuis le script○ Réponse en JSON, XML, HTML ou simple texte

● Origine : un ActiveX pour IE 5 (1998)○ Ré-implémenté par Mozilla (2002), Safari (2004)

● Permet de la vraie interactivité client-serveur○ Réponse synchrone ou asynchrone

● Sécurité : same origin policy

Page 47: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

AJAX

Asynchronous JavaScript and XML

● Ajax combine JavaScript, les CSS, XML, le DOM et le XMLHttpRequest afin d'améliorer maniabilité et confort d'utilisation des Applications Internet Riches (merci Wikipedia)

(c) Colgate-PalmoliveSource : Wikipedia

Page 48: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

AJAX polling● HTTP : modèle requête-réponse● Applications riches : besoin de pousser des infos du serveur vers client

● Comment fait-on ?

Page 49: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

JSON

Format de données● Simple et générique

● Textuel et independant du langage

● Dérivé de la notation des objets en JS

Page 50: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Conclusions

Page 51: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Des technologies à la base du web

On a passé en revue les technologies de base du web

Ces technologies sont encore très importantes aujourd'hui

Si vous ne les maîtrisez pas, c'est le bon moment pour vous y mettre...

Page 52: Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1

Voulez-vous en savoir plus ?