SlideShare a Scribd company logo
1 of 71
vs




Matt Casto
http://mattcasto.info
vs




Did You Want
 an Answer?
vs
vs




It Depends
vs




Opinions
vs




Religion
HTML5 is many things ...
HTML5 is many things ...

Offline / Storage   Multimedia

Communication      CSS 3

Hardware Access    3D Effects

Semantics          Performance
HTML5 is many things ...
This is not
 an overview of
 HTML5 Features.

http://www.w3.org/html5
http://www.html5rocks.com/
http://slides.html5rocks.com
http://diveintohtml5.org
Silverlight
vs




Platforms
Platforms
IE 9 (Vista, Win7)
Firefox 3.5+ (WinXP, OSX, Android, Linux)
Chrome (WinXP, OSX, Linux)
Safari (OSX, iOS)
Webkit (Android, etc)
Platforms
IE 9 (Vista, Win7)
Firefox 3.5+ (WinXP, OSX, Android, Linux)
Chrome (WinXP, OSX, Linux)
Safari (OSX, iOS)
Webkit (Android, etc)


Just about everywhere
Platforms
IE 9 (Vista, Win7)
Firefox 3.5+ (WinXP, OSX, Android, Linux)
Chrome (WinXP, OSX, Linux)
Safari (OSX, iOS)
Webkit (Android, etc)


Just about everywhere
 ... to varying degrees.
Platforms
          IE 6+ ( WinXP+)
 Firefox 2+ (WinXP, OSX)
       Chrome (WinXP+)
              Safari (OSX)
        Windows Phone 7
Platforms
            IE 6+ ( WinXP+)
   Firefox 2+ (WinXP, OSX)
         Chrome (WinXP+)
                Safari (OSX)
          Windows Phone 7

Don’t forget about Moonlight
Platforms
             IE 6+ ( WinXP+)
    Firefox 2+ (WinXP, OSX)
          Chrome (WinXP+)
                 Safari (OSX)
           Windows Phone 7

Don’t forget about Moonlight
  ... even though Novell has.
vs




Storage
Storage
Local Storage
// use localStorage for persistent storage
// use sessionStorage for per tab storage
window.localStorage.setItem('value', area.value);
window.sessionStorage.setItem('timestamp', (new Date()).getTime());
var val = window.localStorage.getItem('value');
window.localStorage.removeItem('value');
window.localStorage.clear();
Storage
Local Storage




Source: http://caniuse.com
Storage
ApplicationSettings / Site Settings
// ApplicationSettings are plugin instance specific
// SiteSettings are site (URL) specific
private IsolatedStorageSettings userSettings =
    IsolatedStorageSettings.ApplicationSettings;
private IsolatedStorageSettings siteSettings =
    IsolatedStorageSettings.SiteSettings;

userSettings.Add("value", "hello world");
userSettings.Remove("value");
userSettings.Clear();
Storage
Isolated Storage
// GetUserStoreForApplication() - plugin specific
// GetUserStoreForSite() - site (URL) specific
var isf = IsolatedStorageFile.GetUserStoreForApplication();

using (var isfs = new IsolatedStorageFileStream(fileName,
FileMode.Create, isf))
  using (StreamWriter sw = new StreamWriter(isfs))
    sw.Write(data);

using (var isfs = new IsolatedStorageFileStream(fileName,
FileMode.Open, isf))
  using (StreamReader sr = new StreamReader(isfs))
    var allData = sr.ReadToEnd();
vs




Databases
Databases
Web SQL Database
var db = openDatabase('exampleDB', '1.0', 'example database', 5 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
  tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "bar")');
  tx.executeSql('SELECT * FROM foo', [], function (tx, results) {
    var len = results.rows.length, i;
    for (i = 0; i < len; i++) {
      alert(results.rows.item(i).text);
    }
  });
});
Databases
Web SQL Database




Source: http://caniuse.com
Databases
IndexedDB
var trans = db.transaction(["foo"], IDBTransaction.READ_WRITE, 0);
var store = trans.objectStore("foo");
var request = store.put( {"bar": foobar} );

request.onsuccess = function(e) { alert("Success!" + "rnrn" + e.value); };
request.onerror = function(e) { alert("Error! " + "rnrn" + e.value); };
Databases
IndexedDB




Source: http://caniuse.com
Databases
3rd Party Client-Side Databases for Silverlight

 •   Sterling - http://sterling.codeplex.com/
 •   Perst - http://www.mcobject.com/silverlight-demo
 •   siaqodb - http://siaqodb.com/
 •   effiproz - http://www.effiproz.com/
 •   Ninja Database - http://www.kellermansoftware.com/p-42-ninja-
     database-lite.aspx
vs




Offline
Offline
AppCache - Cache Manifest
CACHE MANIFEST
# version 0.0.8
index.html
site.css
jquery-1.4.1.js
emoticon_smile.png
emoticon_unhappy.png

NETWORK:
noncached.html

FALLBACK:
/ offline.html
Offline
AppCache - Referencing Caching
<!DOCTYPE HTML>
<html manifest="cache.manifest">
    <head><title>Hello AppCache</title></head>
    <body>
        <h1>Hello AppCache!</h1>
    </body>
</html>
Offline
OnLine / Offline API
document.body.addEventListener("online", function() { checkOnLineState(); }, false);
document.body.addEventListener("offline", function() { checkOnLineState(); }, false);
checkOnLineState();

function checkOnLineState() {
    if (typeof (navigator.onLine) == 'undefined') {
        alert("navigator.onLine isn't defined.");
        return;
    }
    if (navigator.onLine) {
        alert("You are online.");
    } else {
        alert("You are online.");
    }
}
Offline
AppCache & onLine API




Source: http://caniuse.com
Offline
Out-of-Browser (OOB)
•   OOB applications run in a separate window and work
    regardless of network connectivity.
•   Silverlight API gives full control of installation and updates.
•   Default Isolated Storage capacity increases from 5 MB to
    25 MB
•   Web Browser control for OOB applications
•   With Elevated Trust you can call COM APIs
•   Silverlight 5 introduces p/invoke, multiple windows
vs




Threading
Threading
Web Workers
var worker = new Worker("worker.js");
worker.onmessage = function(e){ alert(e.data) };
worker.postMessage("Hello Worker");



worker.js
onmessage = function(e) {
    if (e.data === "Hello Worker") {
        postMessage("Hello World");
    }
};
Threading
Web Workers




Source: http://caniuse.com
Threading
Silverlight BackgroundWorker
var bg = new BackgroundWorker
{
    WorkerReportsProgress = true,
    WorkerSupportsCancellation = true
};
bg.DoWork += (o, e) =>
{
    for (var i = 1; i <= 100; i++)
    {
        System.Threading.Thread.Sleep(500);
        ((BackgroundWorker) o).ReportProgress(i);
    }
};
bg.ProgressChanged += (o, e) => MessageBox.Show("Working %" + e.ProgressPercentage);
bg.RunWorkerAsync();
vs




Communication
Communication
WebSocket API
var ws = new WebSocket("ws://websocket.example.com");
ws.onopen = function(e) { alert("WebSocket connection open"); };
ws.onmessage = function(e) { alert("WebSocket message received: "
    + e.data); };
ws.onclose = function(e) { alert("WebSocket connection closed"); };
ws.postMessage("Hello WebSocket");
ws.disconnect();
Communication
Silverlight & WCF
 •   Silverlight WCF client supports PollingDuplexHttpBinding
     for a simulated duplex communication over HTTP
 •   Silverlight supports System.Net.Sockets for low level
     sockets communication
 •   Silverlight supports UDP multicast clients over Sockets
 •   The only thing Silverlight doesn’t support that WebSockets
     API does is secure socket communication
vs




Notification
Notification
Notifications API
if (window.webkitNotifications.checkPermission() == 0) {
  // you can pass any url as a parameter
  window.webkitNotifications.createNotification(tweet.picture,
    tweet.title, tweet.text).show();
} else {
  window.webkitNotifications.requestPermission();
}
Notification
Notifications API




Source: http://caniuse.com
Notification
Silverlight NotificationWindow
if (App.Current.IsRunningOutOfBrowser)
{
    var nw = new NotificationWindow();
    nw.Content = "Look at me!";
    nw.Show(5000); // milliseconds

}
vs




Audio
Audio
Audio Tag
Audio
Audio Tag




Source: http://caniuse.com
Audio
Audio Tag
  Browser      Ogg   mp3   wav
Firefox 3.5+   ✓           ✓
  Safari 5+          ✓     ✓
Chrome 6+      ✓     ✓
Opera 10.5+    ✓           ✓
     IE 9            ✓     ✓
Audio
MediaElement
<MediaElement x:Name="media" Source="example.mp3"
    Width="300" Height="300" />
Audio
MediaElement
 Container                  Codecs
   MP3                        MP3

   ASF             WMA Standard & Professional

             AAC-LC, HE-AAC v1 (AAC+), HE-AAC v2
   MP4
             (eAAC+)
vs




Video
Video
Video Tag
Video
Video Tag




Source: http://caniuse.com
Video
 Browser        Ogg   H.264   WebM
 Firefox 3.5+   ✓
  Firefox 4+    ✓              ✓
   Safari 3+           ✓
 Chrome 6+      ✓              ✓
Opera 10.5+     ✓              ✓
      IE 9             ✓       ✓
iPhone Safari          ✓
   Android             ✓       ✓
Video
MediaElement
<MediaElement x:Name="media" Source="example.wmv"
    Width="300" Height="300" />
Video
MediaElement
 Container                     Codecs
     ASF                    WMV & VC-1
     MP4                        H.264

Also Supports...
 •   Progressive Download & Windows Media Streaming
 •   Server Side Play Lists
 •   Server Logs
 •   Timeline Markers
vs




Canvas
Canvas
<canvas id="canvas" width="838" height="220"></canvas>
<script>
  var canvasContext = document.getElementById("canvas").getContext("2d");
  canvasContext.fillRect(250, 25, 150, 100);

  canvasContext.beginPath();
  canvasContext.arc(450, 110, 100, Math.PI * 1/2, Math.PI * 3/2);
  canvasContext.lineWidth = 15;
  canvasContext.lineCap = 'round';
  canvasContext.strokeStyle = 'rgba(255, 127, 0, 0.5)';
  canvasContext.stroke();
</script>
Canvas
Canvas




Source: http://caniuse.com
Canvas
<Canvas x:Name="LayoutRoot" Background="White" >
  <Rectangle Canvas.Left="250" Canvas.Top="25"
             Height="100" Width="150"
             Stroke="Black" Fill="Black"/>
  <Path Canvas.Left="406" Canvas.Top="10" Height="290" Width="137"
        Stroke="#7FFF7F00" Fill="#00FFFFFF" StrokeThickness="15"
        StrokeLineJoin="Round" StrokeStartLineCap="Round" StrokeEndLineCap="Round">
    <Path.Data>
        <PathGeometry>
            <PathGeometry.Figures>
                 <PathFigure>
                     <PathFigure.Segments>
                         <ArcSegment Size="50,50" RotationAngle="45" IsLargeArc="True"
SweepDirection="Counterclockwise" Point="0,250"/>
                     </PathFigure.Segments>
                 </PathFigure >
            </PathGeometry.Figures>
        </PathGeometry>
    </Path.Data>
  </Path>
</Canvas>
vs




Potpourri
Potpourri
•   Canvas 3D - WebGL
•   SVG (inline, etc)
•   Drag & Drop, Drop In, Drag Out
•   File System API
•   Geolocation API
•   Semantic HTML Tags
•   New form types (email, date, range, search, tel, color,
    number)
Potpourri
•   CSS - Selectors, Rounded Corners, Shadows, Transitions,
    Tranforms, Animations, etc.
•   Webfonts
•   Javascript selectors (getElementsByClassName,
    querySelector, querySelectorAll)
•   data-* attributes
•   element.classList
•   Browser History API
Potpourri
•   XAML
•   Languages - C#,Visual Basic.NET, Iron Ruby, Iron Python
•   3D - Silverlight 5 Beta
•   GPU Hardware Acceleration
•   Devices - Webcam, Microphones
•   Printing - Bitmap in SL 4, Postscript vector in SL 5
•   COM Interop (Out-of-browser full trust)
•   P/Invoke (Out-of-browser full trust in SL 5)
vs




It Depends
vs




Matt Casto
http://mattcasto.info

More Related Content

What's hot

Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...IT Event
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkFabio Tiriticco
 
The DOM is a Mess @ Yahoo
The DOM is a Mess @ YahooThe DOM is a Mess @ Yahoo
The DOM is a Mess @ Yahoojeresig
 
High Performance JavaScript - WebDirections USA 2010
High Performance JavaScript - WebDirections USA 2010High Performance JavaScript - WebDirections USA 2010
High Performance JavaScript - WebDirections USA 2010Nicholas Zakas
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5dynamis
 
Hack & Fix, Hands on ColdFusion Security Training
Hack & Fix, Hands on ColdFusion Security TrainingHack & Fix, Hands on ColdFusion Security Training
Hack & Fix, Hands on ColdFusion Security TrainingColdFusionConference
 
How do I Write Testable Javascript so I can Test my CF API on Server and Client
How do I Write Testable Javascript so I can Test my CF API on Server and ClientHow do I Write Testable Javascript so I can Test my CF API on Server and Client
How do I Write Testable Javascript so I can Test my CF API on Server and ClientColdFusionConference
 
Performance, Games, and Distributed Testing in JavaScript
Performance, Games, and Distributed Testing in JavaScriptPerformance, Games, and Distributed Testing in JavaScript
Performance, Games, and Distributed Testing in JavaScriptjeresig
 
High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)Nicholas Zakas
 
Enough with the JavaScript already!
Enough with the JavaScript already!Enough with the JavaScript already!
Enough with the JavaScript already!Nicholas Zakas
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsVikash Singh
 
How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016
How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016
How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016Gavin Pickin
 
Comment j'ai mis ma suite de tests au régime en 5 minutes par jour
Comment j'ai mis ma suite de tests au régime en 5 minutes par jourComment j'ai mis ma suite de tests au régime en 5 minutes par jour
Comment j'ai mis ma suite de tests au régime en 5 minutes par jourCARA_Lyon
 
Choosing a Javascript Framework
Choosing a Javascript FrameworkChoosing a Javascript Framework
Choosing a Javascript FrameworkAll Things Open
 
Browser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceBrowser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceNicholas Zakas
 
Don't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web ApplicationsDon't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web ApplicationsStoyan Stefanov
 

What's hot (20)

Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 
The DOM is a Mess @ Yahoo
The DOM is a Mess @ YahooThe DOM is a Mess @ Yahoo
The DOM is a Mess @ Yahoo
 
High Performance JavaScript - WebDirections USA 2010
High Performance JavaScript - WebDirections USA 2010High Performance JavaScript - WebDirections USA 2010
High Performance JavaScript - WebDirections USA 2010
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
Hack & Fix, Hands on ColdFusion Security Training
Hack & Fix, Hands on ColdFusion Security TrainingHack & Fix, Hands on ColdFusion Security Training
Hack & Fix, Hands on ColdFusion Security Training
 
How do I Write Testable Javascript so I can Test my CF API on Server and Client
How do I Write Testable Javascript so I can Test my CF API on Server and ClientHow do I Write Testable Javascript so I can Test my CF API on Server and Client
How do I Write Testable Javascript so I can Test my CF API on Server and Client
 
Performance, Games, and Distributed Testing in JavaScript
Performance, Games, and Distributed Testing in JavaScriptPerformance, Games, and Distributed Testing in JavaScript
Performance, Games, and Distributed Testing in JavaScript
 
What is HTML 5?
What is HTML 5?What is HTML 5?
What is HTML 5?
 
Node.js vs Play Framework
Node.js vs Play FrameworkNode.js vs Play Framework
Node.js vs Play Framework
 
Sanjeev ghai 12
Sanjeev ghai 12Sanjeev ghai 12
Sanjeev ghai 12
 
High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)
 
Enough with the JavaScript already!
Enough with the JavaScript already!Enough with the JavaScript already!
Enough with the JavaScript already!
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016
How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016
How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016
 
Comment j'ai mis ma suite de tests au régime en 5 minutes par jour
Comment j'ai mis ma suite de tests au régime en 5 minutes par jourComment j'ai mis ma suite de tests au régime en 5 minutes par jour
Comment j'ai mis ma suite de tests au régime en 5 minutes par jour
 
Choosing a Javascript Framework
Choosing a Javascript FrameworkChoosing a Javascript Framework
Choosing a Javascript Framework
 
Browser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceBrowser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom Menace
 
Don't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web ApplicationsDon't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web Applications
 
Ajax Security
Ajax SecurityAjax Security
Ajax Security
 

Viewers also liked

Taking Web Applications Offline
Taking Web Applications OfflineTaking Web Applications Offline
Taking Web Applications OfflineMatt Casto
 
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...Idexcel Technologies
 
Silverlight
SilverlightSilverlight
SilverlightBiTWiSE
 
Construindo aplicações ricas com Silverlight
Construindo aplicações ricas com SilverlightConstruindo aplicações ricas com Silverlight
Construindo aplicações ricas com SilverlightFelipe Pocchini
 
Silverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItSilverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItVenketash (Pat) Ramadass
 
Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5Web Directions
 
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator ExperienceAlan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator ExperienceWeb Directions
 
Microsoft Silverlight - An Introduction
Microsoft Silverlight - An IntroductionMicrosoft Silverlight - An Introduction
Microsoft Silverlight - An IntroductionMohammad Elsheimy
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 

Viewers also liked (10)

Taking Web Applications Offline
Taking Web Applications OfflineTaking Web Applications Offline
Taking Web Applications Offline
 
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
 
Silverlight
SilverlightSilverlight
Silverlight
 
Construindo aplicações ricas com Silverlight
Construindo aplicações ricas com SilverlightConstruindo aplicações ricas com Silverlight
Construindo aplicações ricas com Silverlight
 
Silverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItSilverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use It
 
Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5
 
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator ExperienceAlan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
 
HTML 5 Offline Web apps
HTML 5 Offline Web apps HTML 5 Offline Web apps
HTML 5 Offline Web apps
 
Microsoft Silverlight - An Introduction
Microsoft Silverlight - An IntroductionMicrosoft Silverlight - An Introduction
Microsoft Silverlight - An Introduction
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 

Similar to HTML5 vs Silverlight

HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....Patrick Lauke
 
Building Web Sites that Work Everywhere
Building Web Sites that Work EverywhereBuilding Web Sites that Work Everywhere
Building Web Sites that Work EverywhereDoris Chen
 
Browser security
Browser securityBrowser security
Browser securityUday Anand
 
Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~Sho Ito
 
Talk about html5 security
Talk about html5 securityTalk about html5 security
Talk about html5 securityHuang Toby
 
Play framework productivity formula
Play framework   productivity formula Play framework   productivity formula
Play framework productivity formula Sorin Chiprian
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Sadaaki HIRAI
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSocketsGonzalo Ayuso
 
WebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at GoogleWebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at GoogleRobert Nyman
 
Brave new world of HTML5
Brave new world of HTML5Brave new world of HTML5
Brave new world of HTML5Chris Mills
 
webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5smueller_sandsmedia
 
WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008WSO2
 
Krzysztof Kotowicz - Hacking HTML5
Krzysztof Kotowicz - Hacking HTML5Krzysztof Kotowicz - Hacking HTML5
Krzysztof Kotowicz - Hacking HTML5DefconRussia
 

Similar to HTML5 vs Silverlight (20)

Edge of the Web
Edge of the WebEdge of the Web
Edge of the Web
 
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
 
HTML5와 모바일
HTML5와 모바일HTML5와 모바일
HTML5와 모바일
 
Building Web Sites that Work Everywhere
Building Web Sites that Work EverywhereBuilding Web Sites that Work Everywhere
Building Web Sites that Work Everywhere
 
Browser security
Browser securityBrowser security
Browser security
 
Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~
 
Building Client-Side Attacks with HTML5 Features
Building Client-Side Attacks with HTML5 FeaturesBuilding Client-Side Attacks with HTML5 Features
Building Client-Side Attacks with HTML5 Features
 
Talk about html5 security
Talk about html5 securityTalk about html5 security
Talk about html5 security
 
Play framework productivity formula
Play framework   productivity formula Play framework   productivity formula
Play framework productivity formula
 
Attacking HTML5
Attacking HTML5Attacking HTML5
Attacking HTML5
 
Html5 hacking
Html5 hackingHtml5 hacking
Html5 hacking
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSockets
 
WebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at GoogleWebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at Google
 
Brave new world of HTML5
Brave new world of HTML5Brave new world of HTML5
Brave new world of HTML5
 
webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5
 
WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008
 
Html 5
Html 5Html 5
Html 5
 
Krzysztof Kotowicz - Hacking HTML5
Krzysztof Kotowicz - Hacking HTML5Krzysztof Kotowicz - Hacking HTML5
Krzysztof Kotowicz - Hacking HTML5
 
Echo HTML5
Echo HTML5Echo HTML5
Echo HTML5
 

Recently uploaded

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 

Recently uploaded (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 

HTML5 vs Silverlight

  • 2. vs Did You Want an Answer?
  • 3. vs
  • 7. HTML5 is many things ...
  • 8. HTML5 is many things ... Offline / Storage Multimedia Communication CSS 3 Hardware Access 3D Effects Semantics Performance
  • 9. HTML5 is many things ...
  • 10. This is not an overview of HTML5 Features. http://www.w3.org/html5 http://www.html5rocks.com/ http://slides.html5rocks.com http://diveintohtml5.org
  • 13. Platforms IE 9 (Vista, Win7) Firefox 3.5+ (WinXP, OSX, Android, Linux) Chrome (WinXP, OSX, Linux) Safari (OSX, iOS) Webkit (Android, etc)
  • 14. Platforms IE 9 (Vista, Win7) Firefox 3.5+ (WinXP, OSX, Android, Linux) Chrome (WinXP, OSX, Linux) Safari (OSX, iOS) Webkit (Android, etc) Just about everywhere
  • 15. Platforms IE 9 (Vista, Win7) Firefox 3.5+ (WinXP, OSX, Android, Linux) Chrome (WinXP, OSX, Linux) Safari (OSX, iOS) Webkit (Android, etc) Just about everywhere ... to varying degrees.
  • 16. Platforms IE 6+ ( WinXP+) Firefox 2+ (WinXP, OSX) Chrome (WinXP+) Safari (OSX) Windows Phone 7
  • 17. Platforms IE 6+ ( WinXP+) Firefox 2+ (WinXP, OSX) Chrome (WinXP+) Safari (OSX) Windows Phone 7 Don’t forget about Moonlight
  • 18. Platforms IE 6+ ( WinXP+) Firefox 2+ (WinXP, OSX) Chrome (WinXP+) Safari (OSX) Windows Phone 7 Don’t forget about Moonlight ... even though Novell has.
  • 19.
  • 20.
  • 21.
  • 23. Storage Local Storage // use localStorage for persistent storage // use sessionStorage for per tab storage window.localStorage.setItem('value', area.value); window.sessionStorage.setItem('timestamp', (new Date()).getTime()); var val = window.localStorage.getItem('value'); window.localStorage.removeItem('value'); window.localStorage.clear();
  • 25. Storage ApplicationSettings / Site Settings // ApplicationSettings are plugin instance specific // SiteSettings are site (URL) specific private IsolatedStorageSettings userSettings = IsolatedStorageSettings.ApplicationSettings; private IsolatedStorageSettings siteSettings = IsolatedStorageSettings.SiteSettings; userSettings.Add("value", "hello world"); userSettings.Remove("value"); userSettings.Clear();
  • 26. Storage Isolated Storage // GetUserStoreForApplication() - plugin specific // GetUserStoreForSite() - site (URL) specific var isf = IsolatedStorageFile.GetUserStoreForApplication(); using (var isfs = new IsolatedStorageFileStream(fileName, FileMode.Create, isf)) using (StreamWriter sw = new StreamWriter(isfs)) sw.Write(data); using (var isfs = new IsolatedStorageFileStream(fileName, FileMode.Open, isf)) using (StreamReader sr = new StreamReader(isfs)) var allData = sr.ReadToEnd();
  • 28. Databases Web SQL Database var db = openDatabase('exampleDB', '1.0', 'example database', 5 * 1024 * 1024); db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)'); tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "bar")'); tx.executeSql('SELECT * FROM foo', [], function (tx, results) { var len = results.rows.length, i; for (i = 0; i < len; i++) { alert(results.rows.item(i).text); } }); });
  • 30. Databases IndexedDB var trans = db.transaction(["foo"], IDBTransaction.READ_WRITE, 0); var store = trans.objectStore("foo"); var request = store.put( {"bar": foobar} ); request.onsuccess = function(e) { alert("Success!" + "rnrn" + e.value); }; request.onerror = function(e) { alert("Error! " + "rnrn" + e.value); };
  • 32. Databases 3rd Party Client-Side Databases for Silverlight • Sterling - http://sterling.codeplex.com/ • Perst - http://www.mcobject.com/silverlight-demo • siaqodb - http://siaqodb.com/ • effiproz - http://www.effiproz.com/ • Ninja Database - http://www.kellermansoftware.com/p-42-ninja- database-lite.aspx
  • 34. Offline AppCache - Cache Manifest CACHE MANIFEST # version 0.0.8 index.html site.css jquery-1.4.1.js emoticon_smile.png emoticon_unhappy.png NETWORK: noncached.html FALLBACK: / offline.html
  • 35. Offline AppCache - Referencing Caching <!DOCTYPE HTML> <html manifest="cache.manifest"> <head><title>Hello AppCache</title></head> <body> <h1>Hello AppCache!</h1> </body> </html>
  • 36. Offline OnLine / Offline API document.body.addEventListener("online", function() { checkOnLineState(); }, false); document.body.addEventListener("offline", function() { checkOnLineState(); }, false); checkOnLineState(); function checkOnLineState() { if (typeof (navigator.onLine) == 'undefined') { alert("navigator.onLine isn't defined."); return; } if (navigator.onLine) { alert("You are online."); } else { alert("You are online."); } }
  • 37. Offline AppCache & onLine API Source: http://caniuse.com
  • 38. Offline Out-of-Browser (OOB) • OOB applications run in a separate window and work regardless of network connectivity. • Silverlight API gives full control of installation and updates. • Default Isolated Storage capacity increases from 5 MB to 25 MB • Web Browser control for OOB applications • With Elevated Trust you can call COM APIs • Silverlight 5 introduces p/invoke, multiple windows
  • 40. Threading Web Workers var worker = new Worker("worker.js"); worker.onmessage = function(e){ alert(e.data) }; worker.postMessage("Hello Worker"); worker.js onmessage = function(e) { if (e.data === "Hello Worker") { postMessage("Hello World"); } };
  • 42. Threading Silverlight BackgroundWorker var bg = new BackgroundWorker { WorkerReportsProgress = true, WorkerSupportsCancellation = true }; bg.DoWork += (o, e) => { for (var i = 1; i <= 100; i++) { System.Threading.Thread.Sleep(500); ((BackgroundWorker) o).ReportProgress(i); } }; bg.ProgressChanged += (o, e) => MessageBox.Show("Working %" + e.ProgressPercentage); bg.RunWorkerAsync();
  • 44. Communication WebSocket API var ws = new WebSocket("ws://websocket.example.com"); ws.onopen = function(e) { alert("WebSocket connection open"); }; ws.onmessage = function(e) { alert("WebSocket message received: " + e.data); }; ws.onclose = function(e) { alert("WebSocket connection closed"); }; ws.postMessage("Hello WebSocket"); ws.disconnect();
  • 45. Communication Silverlight & WCF • Silverlight WCF client supports PollingDuplexHttpBinding for a simulated duplex communication over HTTP • Silverlight supports System.Net.Sockets for low level sockets communication • Silverlight supports UDP multicast clients over Sockets • The only thing Silverlight doesn’t support that WebSockets API does is secure socket communication
  • 47. Notification Notifications API if (window.webkitNotifications.checkPermission() == 0) { // you can pass any url as a parameter window.webkitNotifications.createNotification(tweet.picture, tweet.title, tweet.text).show(); } else { window.webkitNotifications.requestPermission(); }
  • 49. Notification Silverlight NotificationWindow if (App.Current.IsRunningOutOfBrowser) { var nw = new NotificationWindow(); nw.Content = "Look at me!"; nw.Show(5000); // milliseconds }
  • 53. Audio Audio Tag Browser Ogg mp3 wav Firefox 3.5+ ✓ ✓ Safari 5+ ✓ ✓ Chrome 6+ ✓ ✓ Opera 10.5+ ✓ ✓ IE 9 ✓ ✓
  • 55. Audio MediaElement Container Codecs MP3 MP3 ASF WMA Standard & Professional AAC-LC, HE-AAC v1 (AAC+), HE-AAC v2 MP4 (eAAC+)
  • 59. Video Browser Ogg H.264 WebM Firefox 3.5+ ✓ Firefox 4+ ✓ ✓ Safari 3+ ✓ Chrome 6+ ✓ ✓ Opera 10.5+ ✓ ✓ IE 9 ✓ ✓ iPhone Safari ✓ Android ✓ ✓
  • 61. Video MediaElement Container Codecs ASF WMV & VC-1 MP4 H.264 Also Supports... • Progressive Download & Windows Media Streaming • Server Side Play Lists • Server Logs • Timeline Markers
  • 63. Canvas <canvas id="canvas" width="838" height="220"></canvas> <script> var canvasContext = document.getElementById("canvas").getContext("2d"); canvasContext.fillRect(250, 25, 150, 100); canvasContext.beginPath(); canvasContext.arc(450, 110, 100, Math.PI * 1/2, Math.PI * 3/2); canvasContext.lineWidth = 15; canvasContext.lineCap = 'round'; canvasContext.strokeStyle = 'rgba(255, 127, 0, 0.5)'; canvasContext.stroke(); </script>
  • 65. Canvas <Canvas x:Name="LayoutRoot" Background="White" > <Rectangle Canvas.Left="250" Canvas.Top="25" Height="100" Width="150" Stroke="Black" Fill="Black"/> <Path Canvas.Left="406" Canvas.Top="10" Height="290" Width="137" Stroke="#7FFF7F00" Fill="#00FFFFFF" StrokeThickness="15" StrokeLineJoin="Round" StrokeStartLineCap="Round" StrokeEndLineCap="Round"> <Path.Data> <PathGeometry> <PathGeometry.Figures> <PathFigure> <PathFigure.Segments> <ArcSegment Size="50,50" RotationAngle="45" IsLargeArc="True" SweepDirection="Counterclockwise" Point="0,250"/> </PathFigure.Segments> </PathFigure > </PathGeometry.Figures> </PathGeometry> </Path.Data> </Path> </Canvas>
  • 67. Potpourri • Canvas 3D - WebGL • SVG (inline, etc) • Drag & Drop, Drop In, Drag Out • File System API • Geolocation API • Semantic HTML Tags • New form types (email, date, range, search, tel, color, number)
  • 68. Potpourri • CSS - Selectors, Rounded Corners, Shadows, Transitions, Tranforms, Animations, etc. • Webfonts • Javascript selectors (getElementsByClassName, querySelector, querySelectorAll) • data-* attributes • element.classList • Browser History API
  • 69. Potpourri • XAML • Languages - C#,Visual Basic.NET, Iron Ruby, Iron Python • 3D - Silverlight 5 Beta • GPU Hardware Acceleration • Devices - Webcam, Microphones • Printing - Bitmap in SL 4, Postscript vector in SL 5 • COM Interop (Out-of-browser full trust) • P/Invoke (Out-of-browser full trust in SL 5)

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  7. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  8. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  9. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  10. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  11. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  12. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  13. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  14. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  15. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  16. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  17. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  18. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  19. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  20. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  21. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  22. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  23. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  24. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  25. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  26. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  27. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  28. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  29. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  30. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  31. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  32. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  33. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  34. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  35. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  36. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  37. HTML 5 is really updated HTML, CSS, and Javascript specifications. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  38. Although most features of HTML 5 will be mentioned by this presentation, I will not go in depth into any of these features. For more information, check out these links.\n
  39. This presentation is given at .NET focused conferences so I&amp;#x2019;m discussing Silverlight. This presentation could just as easily be called HTML5 vs Plugins or HTML5 vs Native Apps.\n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. Browser Percentages according to StatCounter\n
  46. Mobile Browser Percentages according to StatCounter\n
  47. Browser Plugins Installed according to RIA Stats\nNote that 72.68 % of browsers have Silverlight 2+ installed, while 73.37% of browsers have Canvas &amp; Video support ... virtually the same!\n
  48. \n
  49. - Very simple key-value pair storage\n- jquery-jstore - jQuery based library implemented over local storage\n- 5MB limit with no API to increase quote - at the users&amp;#x2019; mercy!\n
  50. \n
  51. A very simple key-value pair storage layer over Isolated Storage.\n\n
  52. - You can write whatever you want to Isolated Storage, and its up to you to make sure you have space and whether files exist or not\n- 5MB space by default\n
  53. \n
  54. - this is an implementation of SQLite in javascript\n- W3C deprecated specification on 11/18/2010 which means you shouldn&amp;#x2019;t use it :-(\n
  55. Firefox has stated it will never add support for Web SQL. Coupled with IE&amp;#x2019;s lack of interest, the W3C deprecated the specification.\n
  56. - Indexed Database API, aka IndexedDB, formerly known as WebSimpleDB\n- this is an object store, not a relational database, storing Javascript Objects\n- Asynchronous and Transactional only\n- You can create indexes against your stored objects\n
  57. - Microsoft is reportedly experimenting with the technology.\n- The best example I could find online did not work and was out of date\n- IMO, this technology shows great promise, but is not ready for prime time.\n
  58. \n
  59. \n
  60. - CACHE MANIFEST section includes all resources loaded into cache\n- NETWORK section includes all resources not cached\n- FALLBACK section includes page to fall back to when offline and referencing a page that is not included in the cache\n
  61. - The cache manifest document is referenced in whatever page you want to automatically load all resources into the local application cache.\n- This is brittle - a problem with loading any resource will cause the entire process to fail, and the error notifications are very limited.\n
  62. - Note that onLine won&amp;#x2019;t tell you if your site is down or not responding - only whether the browser has network connectivity.\n- IE and Firefox have &amp;#x201C;Work Offline&amp;#x201D; menu options, but WebKit browsers don&amp;#x2019;t.\n
  63. - Each browser has a different default size for the cache&amp;#x2019;s quota, with no API for checking the quota size or increasing it defined in the specification!\n- Again, at the users&amp;#x2019; mercy for cache size.\n- Why no IE support?\n
  64. The concept of Silverlight OOB couldn&amp;#x2019;t be distilled into a simple code sample, so I&amp;#x2019;m listing main capabilities here.\n
  65. \n
  66. Web Workers have no access to the DOM or the calling page; the only communication allowed is through messages.\n
  67. Web Workers have no access to the DOM or the calling page; the only communication allowed is through messages.\n
  68. - Silverlight has the concept of the UI Thread\n- Asynchronous networking calls return on a different thread (not UI)\n- DispatcherTimer class runs your code in a different thread\n- BackgroundWorker class is preferred, although you can go old school\n
  69. \n
  70. WebSocket API provides bi-directional, full-duplex communication over a single TCP socket.\n
  71. The concept of Silverlight and WCF is too much for a simple code example, so I&amp;#x2019;ll just list the pertinent comparable features.\n
  72. \n
  73. \n
  74. Supported in Chrome through the webkitNotifications property and in Firefox nightlies through the mozNotifications property. May slip to a later version in Firefox.\n
  75. - only available out-of-browser\n- cannot receive keyboard focus or events\n- no stacking or queueing support - you have to handle that yourself\n
  76. \n
  77. \n
  78. \n
  79. Note that no single encoding works for all browsers -- you WILL end up referencing multiple encodings.\n
  80. \n
  81. Windows Phone 7 supports more containers and codecs.\n
  82. \n
  83. \n
  84. \n
  85. Note that no single encoding works for all browsers.\n
  86. Bonus points if you notice that this looks just like the Audio for Silverlight.\n
  87. I&amp;#x2019;m no video expert but I&amp;#x2019;m listing these features just to show that Silverlight has more video support than whats currently available in the HTML specification.\n
  88. \n
  89. \n
  90. Note that Opera Mini&amp;#x2019;s partial support - it will display the canvas but is unable to play animations or complex operations.\n
  91. This renders a very similar image as the HTML Canvas example.\nOf course, this could be created in code as the HTML Canvas objects were created in Javascript, but why the heck would you want to do that??\n
  92. \n
  93. These are all features considered part of HTML5 that I haven&amp;#x2019;t covered thus far. I didn&amp;#x2019;t consider them major talking points in the comparison with Silverlight, especially in the context of building business applications.\n
  94. ... continued\n
  95. These are all features of Silverlight that I wanted to call out because there isn&amp;#x2019;t any comparable feature of HTML5.\nXAML is a category unto itself - it covers so many HTML5 enhancements out of the box.\n
  96. After considering all the features of each technology, it really all depends on what you need to solve your specific problem(s).\n
  97. Thank You!\n