2. Introduction à David Rousset - @davrousGiovanni Clément http://blogs.msdn.com/davrousWygwam France Microsoft France - DPE
3. Agenda C’est quoi HTML5 et pourquoi c’est important ? Introduction aux bases de HTML5 Bonnes pratiques HTML5Labs Les challenges de l’écriture d’applications HTML5
16. HTML5 Working Groups HTML WebApps CSS SVG webPerformance EcmaScript Geo-Location hybi Plus de 100 specifications !
17. HTML5 devrait être prêt pour le “Last Call” en Mai 2011 CSS GENERATED CONTENT FOR PAGED MEDIA PROGRAMMABLE HTTP CACHING & SERVING CSS CASCADING & INHERITANCE CSS BACKGROUNDS & BORDERS DOM L2 TRAVERSAL AND RANGE UNIFORM MESSAGING POLICY CSS MULTI-COLUMN LAYOUT DOM L3 VIEWS & FOMUTING DOM L3 ABSTRACT SCHEMAS CSS 2D TRANSFORMATIONS CSS 3D TRANSFORMATOINS CSS BASIC USER INTERFACE CSS FLEXIBLE BOX LAYOUT PAINTING, FILLING, COLOR HTML5 DIFF FROM HTML4 DOCUMENT STRUCTURE CSS GRID POSITIONING CSS TEMPLATE LAYOUT CSS BASIC BOX MODEL DOM L3 LOAD & SAVE CANVAS 2D CONTENT XMLHTTPREQUEST L2 SERVER-SENT EVENTS WEB SQL DATABASDE CSS WRITING MODES ELEMENT TRAVERSAL CSS VALUES & UNITS DOM L3 VALIDATION CSS SNAPSHOT 2007 CSS MEDIA QUERIES TEXT ALTERNATIVES POLYGLOT MARKUP CSS IMAGE VALUES CSS PRINT PROFILE XMLHTTPREQUEST PROGRESS EVENTS CSS PAGED MEDIA CSS TRANSITIONS CSS ANIMATIONS CSS NAMESPACES WEB SOCKETS API SELECTORS API L2 ECMASCRIPT 262 WEB DOM CORE DOM L3 EVENTS HTML5 MARKUP DOM L2 EVENTS SELECTORS API DOM L3 XPATH WEB STORAGE WEB WORKERS DOM L2 VIEWS DOM L2 HTML DOM L2 STYLE CSS LINE GRID TRANSFORMS BASIC SHAPES CSS SCOPING DOM L3 CORE HTML + RDFA DOM L2 CORE CSS SPEECH MICRODATA GRADIENTS CSS COLOR CSS FONTS SCRIPTING INDEX DB CSS RUBY CSS TEXT STYLING WEB IDL FILE API DOM L1 FILTERS HTML5 FONTS PATHS CORS SMIL TEXT HTML CSS ECMA Script SVG Web Apps First published working draft Candidaterecommendation Working draft Last call Recommendation
18. Mais qui est prêt pour HTML5 ? Pas encore tout le monde…
19. Part de marché des navigateurs « HTML5 » IE9 + FF 4.0 + FF 3.6 + Chrome 8/9/10/11/12 + Opera 10/11 + Safari 5 Selon Netmarketshare.com le 10/05/2011
28. HTML5 HTML5 : Le markup de la future génération d’applications Web CSS3 (CascadingStyle Sheets) : permet d’appliquer des styles au document SVG 1.1 (ScalableVectorGraphics) : moteur de dessin vectoriel + plein d’autres technologies plus ou moins en rapport Un terme générique devenu cool… mais fourre-tout !
35. HTML5Labs.com Permet de tester des spécifications encore trop expérimentales sans toucher le navigateur Actuellement 4 spécifications en test : WebSockets File API IndexDB Media Capture API L’approche de Microsoft pour les expérimentations
36. Méthodes existantes Pour palier aux limitations d’HTTP Serveur Polling Client Polling interval Serveur Long Polling Client
37. La spécification WebSockets – 2 groupes W3C WebSockets API Web Applications Working Group WebSockets Protocol HyBi Working Group
38. Web Sockets W3C API First Draft W3C API Second Draft W3C API Third Draft APR 2011 JAN 2009 [Revs 02– 76] ~80 drafts so far and still changing IETF v00 IETF v01 IETF v02 IETF v03 IETF v04 IETF v05 IETF v06 First Working Draft IETF HyBi WG Adopts 9/1/10 10/17/10 1/9/09 10/29/09 4/23/09 5/23/10 9/24/10 1/11/11 2/8/11 2/9/11 2/25/11 3/11/11 12/22/09 Implemented in browsers v.75 Jan 2010 Breaking change WebSockets v.76 June 2010 Potential Security Issue Identified WebSockets disabled Dec 2010 Prototype w/ v04 Prototype w/ v05 Prototype w/ v06
41. Le rêve des développeurs Ecrire l’application 1 fois et le plus vite possible Eviter de tester 12 523 fois l’application sur autant de plateformes différentes Exécution cross-plateformes pour augmenter la rentabilité HTML5, le messie?
42. Arrêtez de rêver Le père noël HTML5 ne règle pas encore tout… mais ce n’est pas une ordure pour autant ;-)
43. 1er Challenge : les différences de rendu Il est logique d’avoir des différences entre navigateurs Microsoft travaille sur la suite de tests officielle 6401 soumis: http://samples.msdn.microsoft.com/ietestcenter/ Certains pensent qu’il en faudra plus de 100 000 Vous pouvez participer ! Nous ne sommes pas encore en 2014
45. Challenge 1 Pas de magie : il faut tester sur les différents navigateurs et savoir s’adapter
46. 2ème Challenge : les différences de performance Différence sur le matériel ARM/Atom vs Intel Core i3/5/7 & AMD GPU Intégré vs ATI/nVidia Différence sur la qualité d’implémentation de l’accélération matérielle Différence sur les performances du moteur JavaScript Un iPad c’est fin mais pas forcément très puissant
47. Accélération matérielle dans les navigateurs Niveau de support IE9 vs Firefox 4 vs Safari 5 vs Chrome 10 vs Opera 11.50 labs
48. Challenge 2 Soit on vise une plateforme préciseSoit on s’adapte dynamiquement en testant les perfsSoit on nivèle vers le bas
49. 3ème Challenge : les différences de tailles et de formes Une application PC n’est pas faite pour une tablette Plusieurs types d’applications envisageable : PC, Tablette, téléphone voir TV. Résolutions différentes Ergonomies différentes
51. 4ème Challenge : l’outillage et la productivité Nous en sommes qu’au début Aujourd’hui, l’outillage est limité ou très diffus Visual Studio 2010 SP1 et Expression Web 4 SP1 Adobe CS5 (basé sur WebKit) Récemment : BlueGriffon (basé sur Gecko) Beaucoup de frameworks JavaScript différents plus ou moins matures et spécialisés Coûts de production potentiellement plus élevés que les plug-ins pour l’instant
53. HTML5 est bien l’avenir du Web On peut commencer à utiliser HTML5 en production Mais ne laissez pas les anciens navigateurs sur le carreau Microsoft continu d’investir sur HTML5 et IE Rythme de mises à jour des PP soutenu et non délirant Expérimentation avec HTML5Labs Certaines spécifications instables sont très prometteuses Attention à bien préfixer et soyez conscient du risque HTML5 ne résout pas tous les problèmes Mais de nouveaux scénarios pointent le bout de leur nez
1 – balisevidéo. Demo simple from scratch avec video : http://msnvidweb.vo.msecnd.net/o3/IE9%20Demo/ToyStory_HTML5.mp42 – Scénario vrai vie : www.dailymotion.com/stream et www.lancome.fr 3 – Démo simple : https://david.blob.core.windows.net/html5graphics/003_SVGBasics_OnClick.htm & http://david.blob.core.windows.net/html5graphics/004_SVGBasics_svgstyling.htm4 - SVG : ThemePark: http://david.blob.core.windows.net/html5graphics/002_SVGBasics_RichScene.htm5 – Scénariovrai vie : Bing Maps : http://www.bing.com/maps/#Y3A9NDguODQ2MjgzNjA3MTc5MzV+Mi4yNzk3OTgwMTU2MTg4MDgmbHZsPTEzJnN0eT1yJnJ0cD1wb3MuNDguODM0MzEyXzIuMjY1MTAxXzM5JTIwUXVhaSUyMGR1JTIwUHIlQzMlQTlzaWRlbnQlMjBSb29zZXZlbHQlMkMlMjA5MjEzMCUyMElzc3ktbGVzLU1vdWxpbmVhdXhfX19hX35wb3MuNDguODU4MjUwMzc5NTYyMzhfMi4yOTQ0OTUwMzEyMzc2MDIyX1RvdXIlMjBFaWZmZWwlMkMlMjBWaWxsZSUyMGRlJTIwUGFyaXMlMkMlMjBGcmFuY2VfX19lXyZtb2RlPUQmcnRvcD0wfjB+MH4=+ Diagrammehiérarchique Dynamics : http://ie.microsoft.com/testdrive/Graphics/MBSCustomerModel/Default.html+ Courbes : www.hightcharts.com + Raphael.Js : http://raphaeljs.com/6 – Intro Canvas : http://ie.microsoft.com/testdrive/Graphics/CanvasPad/Default.html7 – Scénariovrai vie : http://www.microsoft.com/office/onenote/ et angry birds8 – Combinaison de <audio>, <canvas> et <svg> et tags HTML5 sémantiques : http://www.sabrainpowerhtml5.com/8 – CSS3 Borders & Background avec WebMatrix9 – CSS3 Media Queries simple : http://david.blob.core.windows.net/html5graphics/SimpleMediaQueries.htm10 – Vraie vie : http://mediaqueri.es/ 11 – Dans le futur : CSS3 MediaQueries + CSS3 Grid + CSS3 Multi Columns + Flexboxdans IE10 : http://ie.microsoft.com/testdrive/HTML5/Griddle/Default.html#popular
Design by Mark McCorkell
Scalability issuesProgramming modelCOMET technique (http://en.wikipedia.org/wiki/Comet_(programming)) Long PollingHidden iFrame
Specs are separately managed, they can get out of syncMicrosoft is participating actively in both WGs providing input into the process - Gabriel Montenegro is now co-char if HyBiProtocol can be outside the browserMicrosoft continues to offer feedback on areas that require additional detail to ensure interoperability by different implementations.Microsoft has recently offered an API proposal for Binary message support in WebSockets based on our API prototypes.