SlideShare a Scribd company logo
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.
HTML5 vs Silverlight
HTML5 vs Silverlight
HTML5 vs Silverlight
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 (20)

PDF
Max Voloshin - "Organization of frontend development for products with micros...
IT Event
 
PDF
WebSockets wiith Scala and Play! Framework
Fabio Tiriticco
 
PDF
The DOM is a Mess @ Yahoo
jeresig
 
PDF
High Performance JavaScript - WebDirections USA 2010
Nicholas Zakas
 
PDF
Keypoints html5
dynamis
 
PDF
Hack & Fix, Hands on ColdFusion Security Training
ColdFusionConference
 
PDF
How do I Write Testable Javascript so I can Test my CF API on Server and Client
ColdFusionConference
 
PDF
Performance, Games, and Distributed Testing in JavaScript
jeresig
 
PPTX
What is HTML 5?
Susan Winters
 
PDF
Node.js vs Play Framework
Yevgeniy Brikman
 
PPT
Sanjeev ghai 12
Praveen kumar
 
PPTX
High Performance JavaScript (CapitolJS 2011)
Nicholas Zakas
 
PPTX
Enough with the JavaScript already!
Nicholas Zakas
 
PPTX
Introduction to Node.js
Vikash Singh
 
PDF
How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016
Gavin Pickin
 
PDF
Comment j'ai mis ma suite de tests au régime en 5 minutes par jour
CARA_Lyon
 
PDF
Choosing a Javascript Framework
All Things Open
 
PPTX
Browser Wars Episode 1: The Phantom Menace
Nicholas Zakas
 
PDF
Don't make me wait! or Building High-Performance Web Applications
Stoyan Stefanov
 
PDF
Ajax Security
Joe Walker
 
Max Voloshin - "Organization of frontend development for products with micros...
IT Event
 
WebSockets wiith Scala and Play! Framework
Fabio Tiriticco
 
The DOM is a Mess @ Yahoo
jeresig
 
High Performance JavaScript - WebDirections USA 2010
Nicholas Zakas
 
Keypoints html5
dynamis
 
Hack & Fix, Hands on ColdFusion Security Training
ColdFusionConference
 
How do I Write Testable Javascript so I can Test my CF API on Server and Client
ColdFusionConference
 
Performance, Games, and Distributed Testing in JavaScript
jeresig
 
What is HTML 5?
Susan Winters
 
Node.js vs Play Framework
Yevgeniy Brikman
 
Sanjeev ghai 12
Praveen kumar
 
High Performance JavaScript (CapitolJS 2011)
Nicholas Zakas
 
Enough with the JavaScript already!
Nicholas Zakas
 
Introduction to Node.js
Vikash Singh
 
How do I write Testable Javascript - Presented at dev.Objective() June 16, 2016
Gavin Pickin
 
Comment j'ai mis ma suite de tests au régime en 5 minutes par jour
CARA_Lyon
 
Choosing a Javascript Framework
All Things Open
 
Browser Wars Episode 1: The Phantom Menace
Nicholas Zakas
 
Don't make me wait! or Building High-Performance Web Applications
Stoyan Stefanov
 
Ajax Security
Joe Walker
 

Viewers also liked (10)

PPTX
Taking Web Applications Offline
Matt Casto
 
PDF
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Idexcel Technologies
 
PPT
Silverlight
BiTWiSE
 
PDF
Construindo aplicações ricas com Silverlight
Felipe Pocchini
 
PDF
Silverlight - What Is It And How Can We Use It
Venketash (Pat) Ramadass
 
PPTX
Dave Orchard - Offline Web Apps with HTML5
Web Directions
 
KEY
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Web Directions
 
PPT
HTML 5 Offline Web apps
Alexandre Marreiros
 
PPTX
Microsoft Silverlight - An Introduction
Mohammad Elsheimy
 
PPTX
Desenvolvimento web - conceitos, tecnologia e tendências.
Valmir Justo
 
Taking Web Applications Offline
Matt Casto
 
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Idexcel Technologies
 
Silverlight
BiTWiSE
 
Construindo aplicações ricas com Silverlight
Felipe Pocchini
 
Silverlight - What Is It And How Can We Use It
Venketash (Pat) Ramadass
 
Dave Orchard - Offline Web Apps with HTML5
Web Directions
 
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Web Directions
 
HTML 5 Offline Web apps
Alexandre Marreiros
 
Microsoft Silverlight - An Introduction
Mohammad Elsheimy
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Valmir Justo
 
Ad

Similar to HTML5 vs Silverlight (20)

PDF
soft-shake.ch - Introduction to HTML5
soft-shake.ch
 
PDF
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
brucelawson
 
PDF
HTML5 Intoduction for Web Developers
Sascha Corti
 
PPTX
HTML5: The Good, the Bad, and Everything In Between
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
PPTX
HTML5 on Mobile
Adam Lu
 
PDF
openMIC barcamp 11.02.2010
Patrick Lauke
 
PPTX
HTML5: A complete overview
Kristof Degrave
 
PPTX
HTML5: An Overview
Nagendra Um
 
PDF
An Intro to Mobile HTML5
James Pearce
 
PPTX
About Best friends - HTML, CSS and JS
Naga Harish M
 
PPTX
HTML5 Programming
hotrannam
 
PDF
WordCamp Thessaloniki2011 The NextWeb
George Kanellopoulos
 
PPTX
Html 5
Nguyen Quang
 
PDF
HTML5 and the dawn of rich mobile web applications
James Pearce
 
KEY
HTML5 and the Mobile Web
MrJ1971
 
PDF
JavaOne 2011 - Going Mobile With Java Based Technologies Today
Wesley Hales
 
PDF
Word camp nextweb
Panagiotis Grigoropoulos
 
PDF
HTML5 and Google Chrome - DevFest09
mihaiionescu
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch
 
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
brucelawson
 
HTML5 Intoduction for Web Developers
Sascha Corti
 
HTML5: The Good, the Bad, and Everything In Between
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
HTML5 on Mobile
Adam Lu
 
openMIC barcamp 11.02.2010
Patrick Lauke
 
HTML5: A complete overview
Kristof Degrave
 
HTML5: An Overview
Nagendra Um
 
An Intro to Mobile HTML5
James Pearce
 
About Best friends - HTML, CSS and JS
Naga Harish M
 
HTML5 Programming
hotrannam
 
WordCamp Thessaloniki2011 The NextWeb
George Kanellopoulos
 
Html 5
Nguyen Quang
 
HTML5 and the dawn of rich mobile web applications
James Pearce
 
HTML5 and the Mobile Web
MrJ1971
 
JavaOne 2011 - Going Mobile With Java Based Technologies Today
Wesley Hales
 
Word camp nextweb
Panagiotis Grigoropoulos
 
HTML5 and Google Chrome - DevFest09
mihaiionescu
 
Ad

Recently uploaded (20)

PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 

HTML5 vs Silverlight

Editor's Notes

  • #2: \n
  • #3: \n
  • #4: \n
  • #5: \n
  • #6: \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: 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
  • #39: 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
  • #40: 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
  • #41: \n
  • #42: \n
  • #43: \n
  • #44: \n
  • #45: \n
  • #46: Browser Percentages according to StatCounter\n
  • #47: Mobile Browser Percentages according to StatCounter\n
  • #48: 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
  • #49: \n
  • #50: - 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
  • #51: \n
  • #52: A very simple key-value pair storage layer over Isolated Storage.\n\n
  • #53: - 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
  • #54: \n
  • #55: - 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
  • #56: 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
  • #57: - 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
  • #58: - 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
  • #59: \n
  • #60: \n
  • #61: - 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
  • #62: - 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
  • #63: - 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
  • #64: - 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
  • #65: 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
  • #66: \n
  • #67: Web Workers have no access to the DOM or the calling page; the only communication allowed is through messages.\n
  • #68: Web Workers have no access to the DOM or the calling page; the only communication allowed is through messages.\n
  • #69: - 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
  • #70: \n
  • #71: WebSocket API provides bi-directional, full-duplex communication over a single TCP socket.\n
  • #72: 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
  • #73: \n
  • #74: \n
  • #75: Supported in Chrome through the webkitNotifications property and in Firefox nightlies through the mozNotifications property. May slip to a later version in Firefox.\n
  • #76: - 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
  • #77: \n
  • #78: \n
  • #79: \n
  • #80: Note that no single encoding works for all browsers -- you WILL end up referencing multiple encodings.\n
  • #81: \n
  • #82: Windows Phone 7 supports more containers and codecs.\n
  • #83: \n
  • #84: \n
  • #85: \n
  • #86: Note that no single encoding works for all browsers.\n
  • #87: Bonus points if you notice that this looks just like the Audio for Silverlight.\n
  • #88: 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
  • #89: \n
  • #90: \n
  • #91: Note that Opera Mini&amp;#x2019;s partial support - it will display the canvas but is unable to play animations or complex operations.\n
  • #92: 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
  • #93: \n
  • #94: 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
  • #95: ... continued\n
  • #96: 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
  • #97: After considering all the features of each technology, it really all depends on what you need to solve your specific problem(s).\n
  • #98: Thank You!\n