SlideShare una empresa de Scribd logo
1 de 118
Descargar para leer sin conexión
App HTML5 superveloci
HTML5 Italy




http://www.meetup.com/HTML5-Italy/
            … prossimamente a Milano
Di cosa parleremo



                    ?
Di cosa parleremo
Facebook abbandona HTML5
   Perché?
   Cosa non ha funzionato?
   E’ tutta colpa di HTML5?
   Quante persone ha licenziato?




Is HTML5 too slow for Facebook?
http://www.codefessions.com/2012_08_01_archive.html
App HTML5 superveloci

Riusciamo a
 convincere Zuck
 a tornare sui suoi
 passi?
Sommario

 Velocità di download
 Velocità di comunicazione client/server
 Velocità hardware
 Considerazioni generali
 Oltre il codice
Velocità di download

 Quale libreria
 Minification
 Gzip Compression
 Embedding
App HTML5 superveloci

Esiste una libreria
 utile come jQuery,
 ma molto più
 performante?
Quale libreria

 Lib di base     Lib grafiche




 …               …
Quale libreria

                                                               252KB (32KB)
                                                               47KB (8.4KB)
                                                               86KB (6KB)


http://www.codefessions.com/2012/08/performance-of-jquery-compatible-mobile.html
Quale libreria




http://www.codefessions.com/2012/08/performance-of-jquery-compatible-mobile.html
Quale libreria




http://www.codefessions.com/2012/08/performance-of-jquery-compatible-mobile.html
Quale libreria




http://www.codefessions.com/2012/08/performance-of-jquery-compatible-mobile.html
Quale libreria




http://www.codefessions.com/2012/08/performance-of-jquery-compatible-mobile.html
Quale libreria




http://www.codefessions.com/2012/08/performance-of-jquery-compatible-mobile.html
Quale libreria




http://www.codefessions.com/2012/08/performance-of-jquery-compatible-mobile.html
Velocità di download

Quale libreria
 Minification
Gzip Compression
 Embedding
Minification + Gzip

Riusciamo a
 comprimere i file
 del 90%?
Minification + GZip
1. Rimuovere ciò che non serve (JS e CSS)
2. Offuscare il codice (obfuscation, JS)
Minification + GZip
File ridotti in media al


                           originale
                           minified



                                       25%
Minification + GZip
Librerie per javascript:
• JSMin
• YUI compressor
• Closure compiler

Librerie per i CSS:
• YUI compressor
• SimpLess
Minification + GZip
File ridotti in media al


                           originale
                           minified



                                       12%
                           gzipped
Velocità di download

Quale libreria
 Minification YUI compressor
 Gzip Compression Documentazione del server!!!
 Embedding
Embedding
• Asymmetric internet connections

• HTTP over TCP/IPv4 overhead

• Latenza significativa su connessioni
  mobile
Embedding

     Upload:Download 1:20
  500bytes up ≈ 10kB down




   + 1.5KB a richiesta HTTP
Embedding

One shot apps: tutta
 l’app in una sola
richiesta http!
Embedding
<div style=“color:red”>ciao</div>

<div
 onclick=“javascript:alert()”>ok</di
 v>
Embedding
Nota sugli sprites CSS:



NON USATELI
Embedding
<div style=“color:red”>ciao</div>

<div
 onclick=“javascript:alert()”>ok</di
 v>
Embedding
Embedding
<html>    <script src=“file.js”></script>

<head>    <link rel=“stylesheet” “file.css” />




</head>
<body>

</body>
</html>
Embedding
<html>    <script src=“file.js”></script>

<head>    <link rel=“stylesheet” “file.css” />



          <script>
</head>   </script>
                   //code of the file.js file


<body>    <style>
                     // style here
          </style>


</body>
</html>
Embedding
Manipolazione DOM server side:

  – Jsoup in JAVA
  – Jquery in NodeJS
  –Querypath in PHP
Embedding


            1 sola
            richiesta
Embedding
<html>
<head>

</head>
<body>

</body>
</html>
Embedding
Sprites CSS

              background-position: -20px -30px
Embedding
Nota sugli sprites CSS:



NON USATELI
Embedding
Sprites CSS

              background-position: -20px -30px
Embedding
<html>
<head>
            Base64
</head>
<body>

</body>
</html>
Embedding
<html>
<head>             <img
                   src="data:image/
                   gif;base64,R0lGl…"
</head>            width="16“ height="14">
<body>
          Base64   background:url(
</body>                data:image/
                   gif;base64,R0lG1…
</html>
Embedding

1



2




3
Embedding
                 PRO                                 CONTRO
Ottimo per i first time users             Non utilizzabile su elementi dinamici
                                          (o forse no?)

Riduzione numero di richieste             No cache


Distinguere tra file fissi e dinamici     No CDN


Pensare bene a cosa poter caricare dopo   Non è consigliabile embeddare troppi file
per snellire la pagina                    creando pagine complete >100KB


    La cache de browser è cancellata su iPhone 4 (e precedenti) quando spento
Velocità di download

Quale libreria
 Minification YUI compressor
 Gzip Compression Documentazione del server!!!
 Embedding Jsoup per Java, Jquery per NodeJs
App HTML5 superveloci

 Velocità di download
 Velocità di comunicazione client/server
 Velocità hardware
 Considerazioni generali
 Oltre il codice
Velocità comunicazione

 Architetture
 Server+DB
 Websocket / SPDY
Architetture lato client
    Aggiornamenti totali

1
Architetture lato client


1




2

    Aggiornamenti parziali
Architetture lato client


 1

history.pushState(null,null,path)

 2
Architetture lato client
history.pushState(null,null,path)

                      2.2


                       4
Architetture lato client
history.pushState(null,null,path)

                      2.2


                       4
Velocità comunicazione

 Architetture Aggiornamenti parziali (history.pushState)
 Server+DB
 Websocket / SPDY
Server + DB
E’ arrivato il momento
 di mandare in
 pensione
     Apache + MySql
Server + DB

              Server
               + DB
Server + DB

                          Server
                           + DB
 Client   Comunicazione    Server
Server + DB

                                        Server
                                         + DB
 Client                Comunicazione     Server




    Tempo di elaborazione server + DB
Server + DB

                              Server
                               + DB
     Client   Comunicazione    Server



1

2
Server + DB

                              Server
                               + DB
     Client   Comunicazione    Server



1

2
Server + DB
• Un server che non allochi un thread per
  ogni utente
Server + DB
• Un server che non allochi un thread per
  ogni utente



• NodeJS se volete usare Javascript Server
  Side
• Vert.x se volete usare Java, Ruby, Groovy,
  Javascript, Scala, Xtend
Server + DB
<p>Hello World</p>
Server + DB
<p>Hello World</p>

              1000000 richieste, 20000 concorrenti




  Richieste
  fallite
Server + DB
        <p>Hello World</p>

                                 1000000 richieste, 20000 concorrenti




             Richieste al
             secondo




http://zgadzaj.com/benchmarking-nodejs-basic-performance-tests-against-apache-php
Server + DB




http://vertxproject.wordpress.com/2012/05/09/vert-x-vs-node-js-simple-http-benchmarks/
Server + DB




http://vertxproject.wordpress.com/2012/05/09/vert-x-vs-node-js-simple-http-benchmarks/
Server + DB

              Apache

              NodeJs

              Vert.x
Server + DB
Server + DB
DB:
• NoSQL
• MySQL on the cloud

http://kkovacs.eu/cassandra-vs-mongodb-
vs-couchdb-vs-redis
Velocità comunicazione

 Architetture Aggiornamenti parziali (history.pushState)
 Server+DB Vert.x + MongoDB
 Websocket / SPDY
WebSockets / SPDY
•   Bassa latenza (non si trasmette l’header)
•   Full duplex
•   La connessione dura a lungo
•   Ideale per notifiche Push
•   Il processing time è molto minore
    http://www.youtube.com/watch?v=Z897fkPn7Rw



• Crea una connessione su un’altra porta
WebSockets / SPDY
• Non utilizzateli ‘nativamente’, ma fate
  riferimento a librerie che li utilizzano se
  possibile, altrimenti si servono del classico
  Ajax
WebSockets / SPDY
• AtmosphereJS
• Server (Java):
    – onRequest(AtmosphereResource r)
    – r.suspend(-1)
    – BroadcasterFactory.getDefault()
    .lookup()
• Client (JavaScript):
    – $.atmosphere.subscribe(request)
https://github.com/Atmosphere/atmosphere
http://dev.chromium.org/spdy
https://developers.google.com/speed/pagespeed
Web Sockets


              2.2


              4
Web Sockets


              2.2


              4
Velocità comunicazione

 Architetture Aggiornamenti parziali (history.pushState)
 Server+DB Vert.x + MongoDB
 Websocket / SPDY AtmosphereJS
App HTML5 superveloci

 Velocità di download
 Velocità di comunicazione client/server
 Velocità hardware
 Considerazioni generali
 Oltre il codice
Velocità hardware

Vogliamo
 superare le
 prestazioni di
 un’app nativa
Velocità hardware

 Perché
 Animazioni
 Canvas
Velocità hardware

Se usate animazioni ed effetti grafici, anche
  di minima entità, un processore mobile ne
  risente.

               setInterval

                 animate
Velocità hardware

 Perché .animate   è troppo lento

 Animazioni
 Canvas
Animazioni hardware
-webkit-transform: translate3d(0, 0, 0);
-webkit-transition: ALL 0.3s ease-out;
Animazioni hardware
-webkit-transform: translate3d(0, 0, 0);
-webkit-transition: ALL 0.3s ease-out;

left
background-position-left
Velocità hardware

 Perché .animate è troppo lento
 Animazioni Usate le transition3d CSS3
 Canvas
Canvas
   Particle test




  fps




http://www.codefessions.com/2012/03/how-fast-is-html5-canvas-part-2.html
Canvas
   Particle test




  fps




http://www.codefessions.com/2012/03/how-fast-is-html5-canvas-part-2.html
Canvas
 Pre-rendering:
context.drawImage(m_canvas, 0, 0)




      context         m_canvas
Canvas




 Android 2.3
 Android 4

 Chrome Mobile 16

 iPhone 4

 iPhone 5
Canvas
 Partial rendering:
context.fillRect(0, 0,
   canvas.width, canvas.height);
Canvas




 Android 2.3
 Android 4

 Chrome Mobile 16

 iPhone 4

 iPhone 5
Canvas
  Big fixed images:
<canvas id="background" width="640" height="480"
style="position: absolute; z-index: 0"> </canvas>

<canvas id="foreground" width="640" height="480"
style="position: absolute; z-index: 1"> </canvas>




        background             foreground
Canvas




          Android 2.3
          Android 4

          iPhone 4

          iPhone 5
http://www.html5rocks.com/en/tutorials/canvas/performance/
Velocità hardware

 Perché .animate è troppo lento
 Animazioni Usate le transition3d CSS3
 Canvas Ha prestazioni paragonabili a OpenGL
App HTML5 superveloci

 Velocità di download
 Velocità di comunicazione client/server
 Velocità hardware
 Considerazioni generali
 Oltre il codice
Considerazioni generali

 Responsive layouts: immagini
 Richieste statiche
 Manipolazione DOM
 Pre-load e Post-load
 Web Workers
Responsive layouts

• Immagini fisse
• Immagini di contenuto
• Le giuste immagini per il device
  – 2x (high density devices)
  – 1x
  – Thumbs
  – Don't Scale Images in HTML
Richieste statiche

• Minimizza i cookie inviati al server
• Usa lo storage server-side o client-side
  per salvare le info dell’utente
• Per le richieste statiche utilizza un
  sottodominio che non si serve dei
  cookie
Manipolazione DOM

• Salvate i riferimenti agli elementi che
  accedete con $(…)
• Aggiornate i nodi “offline” e solo alla fine
  aggiungeteli al DOM
• Utilizzate CSS per il layout e non
  JavaScript
Post-load & Pre-load


  Elementi non subito necessari



  Elementi necessari tra poco
Web Workers
• E’ come un Thread: non blocca l’interfaccia
  grafica
var worker = new Worker(“async.js")

worker.postMessage(“message")

worker.onmessage = function(event)
  {… event.data …}

worker.terminate()
Web Workers


              2.2


              4
Web Workers


              2.2


              4
App HTML5 superveloci

 Velocità di download
 Velocità di comunicazione client/server
 Velocità hardware
 Considerazioni generali
 Oltre il codice
Oltre il codice

Perché progettare
 app HTML5
 superveloci?
Oltre il codice
Oltre il codice
Oltre il codice
Oltre il codice
Oltre il codice
Oltre il codice


User
Experience
Oltre il codice

User Experience
 Chi userà l’app
 Dove userà l’app
 Come userà l’app
 Quando userà l’app
 Perché userà l’app
Oltre il codice

Es: loading piuttosto che niente
Oltre il codice

Es: loading piuttosto che niente
App HTML5 superveloci

 Velocità di download
 Velocità di comunicazione client/server
 Velocità hardware
 Considerazioni generali
 Oltre il codice
Misurare la velocità

 Chrome Web Tools
 Chrome Page Speed
 https://developers.google.com/speed/pagespeed/

 Chrome FPS Counter
  about:flag



Adobe Edge Inspect
Javascript
Altro

https://developers.google.com/speed/

http://mobile.smashingmagazine.com/2012/0
7/12/elements-mobile-user-experience/
Grazie


           stiamo cercando
           dev e designer
 linkedin.com/in/salvatoreromeo
 twitter.com/romeosalv

Más contenido relacionado

La actualidad más candente

WPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerceWPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerceFrancesco Terenzani
 
Drupal in the Cloud
Drupal in the CloudDrupal in the Cloud
Drupal in the CloudTwinbit
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Flavius-Florin Harabor
 
20160402_mlraviol_mariadb_TorinoWordCamp
20160402_mlraviol_mariadb_TorinoWordCamp20160402_mlraviol_mariadb_TorinoWordCamp
20160402_mlraviol_mariadb_TorinoWordCampmlraviol
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Codemotion
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleMarco Breveglieri
 
#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1Andrea Mauro
 
SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)Sabino Labarile
 

La actualidad más candente (15)

Node and the Cloud
Node and the CloudNode and the Cloud
Node and the Cloud
 
WPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerceWPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerce
 
Asp net (versione 1 e 2)
Asp net (versione 1 e 2)Asp net (versione 1 e 2)
Asp net (versione 1 e 2)
 
Drupal in the Cloud
Drupal in the CloudDrupal in the Cloud
Drupal in the Cloud
 
TOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in DominoTOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in Domino
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?
 
Html5
Html5Html5
Html5
 
Web frameworks
Web frameworksWeb frameworks
Web frameworks
 
20160402_mlraviol_mariadb_TorinoWordCamp
20160402_mlraviol_mariadb_TorinoWordCamp20160402_mlraviol_mariadb_TorinoWordCamp
20160402_mlraviol_mariadb_TorinoWordCamp
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
 
Domino Backup, Restore E Disaster Recovery
Domino Backup, Restore E Disaster RecoveryDomino Backup, Restore E Disaster Recovery
Domino Backup, Restore E Disaster Recovery
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarle
 
#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1
 
SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)
 

Destacado

Designing Flex and AIR applications
Designing Flex and AIR applicationsDesigning Flex and AIR applications
Designing Flex and AIR applicationsmarcocasario
 
Enterprise Spring and Flex applications
Enterprise Spring and Flex applicationsEnterprise Spring and Flex applications
Enterprise Spring and Flex applicationsmarcocasario
 
Adobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best PracticesAdobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best Practicesmarcocasario
 
Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012marcocasario
 
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3marcocasario
 
Developing Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIRDeveloping Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIRmarcocasario
 

Destacado (6)

Designing Flex and AIR applications
Designing Flex and AIR applicationsDesigning Flex and AIR applications
Designing Flex and AIR applications
 
Enterprise Spring and Flex applications
Enterprise Spring and Flex applicationsEnterprise Spring and Flex applications
Enterprise Spring and Flex applications
 
Adobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best PracticesAdobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best Practices
 
Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012
 
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
 
Developing Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIRDeveloping Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIR
 

Similar a Applicazioni HTML5 Superveloci - Salvatore Romeo

Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione webQabiria
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8DotNetCampus
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS DevicesAndrea Picchi
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBSteve Maraspin
 
Azure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDBAzure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDBDavide Benvegnù
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte
 
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureSQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureMarco Obinu
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLSinergia Totale
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterMatteo Baccan
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailDotNetMarche
 
node.js e Postgresql
node.js e Postgresqlnode.js e Postgresql
node.js e PostgresqlLucio Grenzi
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Fulvio Corno
 
Azure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET FrameworkAzure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET FrameworkNicolò Carandini
 
Lezione WordPress Università degli Studi di Milano: Installazione e Gestione
Lezione WordPress Università degli Studi di Milano: Installazione e GestioneLezione WordPress Università degli Studi di Milano: Installazione e Gestione
Lezione WordPress Università degli Studi di Milano: Installazione e Gestionealessandro gasparotto
 

Similar a Applicazioni HTML5 Superveloci - Salvatore Romeo (20)

Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8
 
Dominopoint meet the experts 2015 - XPages
Dominopoint   meet the experts 2015 - XPagesDominopoint   meet the experts 2015 - XPages
Dominopoint meet the experts 2015 - XPages
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
 
Portofino per Jug Padova
Portofino per Jug PadovaPortofino per Jug Padova
Portofino per Jug Padova
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
 
Azure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDBAzure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDB
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureSQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTML
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 
node.js e Postgresql
node.js e Postgresqlnode.js e Postgresql
node.js e Postgresql
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...
 
Linuxday2013
Linuxday2013 Linuxday2013
Linuxday2013
 
Azure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET FrameworkAzure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET Framework
 
Lezione WordPress Università degli Studi di Milano: Installazione e Gestione
Lezione WordPress Università degli Studi di Milano: Installazione e GestioneLezione WordPress Università degli Studi di Milano: Installazione e Gestione
Lezione WordPress Università degli Studi di Milano: Installazione e Gestione
 

Más de marcocasario

HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...marcocasario
 
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...marcocasario
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeomarcocasario
 
HTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermiHTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermimarcocasario
 
Local Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRLocal Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRmarcocasario
 
We make it RIA at Comtaste
We make it RIA at ComtasteWe make it RIA at Comtaste
We make it RIA at Comtastemarcocasario
 
Flex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and ExamplesFlex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and Examplesmarcocasario
 
Architecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVCArchitecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVCmarcocasario
 
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...marcocasario
 
Flex Daily Solutions @ FITC 2008
Flex Daily Solutions @ FITC 2008Flex Daily Solutions @ FITC 2008
Flex Daily Solutions @ FITC 2008marcocasario
 
Rich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e JavaRich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e Javamarcocasario
 
Developing Adobe AIR desktop applications
Developing Adobe AIR desktop applicationsDeveloping Adobe AIR desktop applications
Developing Adobe AIR desktop applicationsmarcocasario
 
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3marcocasario
 
Choosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology pathChoosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology pathmarcocasario
 

Más de marcocasario (15)

HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
 
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
 
HTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermiHTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermi
 
Local Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRLocal Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIR
 
We make it RIA at Comtaste
We make it RIA at ComtasteWe make it RIA at Comtaste
We make it RIA at Comtaste
 
Flex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and ExamplesFlex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and Examples
 
Architecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVCArchitecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVC
 
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
 
FlexCamp London
FlexCamp LondonFlexCamp London
FlexCamp London
 
Flex Daily Solutions @ FITC 2008
Flex Daily Solutions @ FITC 2008Flex Daily Solutions @ FITC 2008
Flex Daily Solutions @ FITC 2008
 
Rich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e JavaRich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e Java
 
Developing Adobe AIR desktop applications
Developing Adobe AIR desktop applicationsDeveloping Adobe AIR desktop applications
Developing Adobe AIR desktop applications
 
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
 
Choosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology pathChoosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology path
 

Applicazioni HTML5 Superveloci - Salvatore Romeo