The document discusses HTML5 versus Silverlight for developing rich internet applications and native apps. It provides an overview of the features and capabilities of HTML5, such as new semantic tags, multimedia support, graphics, offline storage and more. It also summarizes Silverlight's features. While Silverlight provides more robust capabilities currently, HTML5 has a much wider device reach though support varies by browser. The document concludes that the best approach is to know your audience, support the platforms they use, consider their desired experience, develop for the lowest common denominator, and target multiple platforms if possible.
2. MarkXA.com
What we’ll be covering
HTML5 – new features for application
development
Silverlight – a quick summary
Comparison of capabilities & reach
Choosing what to use for Rich Internet
Applications and native apps
3. MarkXA.com
What is HTML5?
HTML5 is a generic term for the next
generation of web applications. It refers to:
• HTML
• JavaScript APIs
• CSS
4. MarkXA.com
HTML5 Semantics - Structure
Tags for document structure,
semantic versions of <div>
and <span>:
• <header>, <footer>, <nav>
• <section>, <article>
• <hgroup>, <aside>
• <time>, <mark>
Used for document outlining,
syndication and accessibility
10. MarkXA.com
HTML5 Device Access
Geolocation API widely
supported
Also proposals and
implementations for
• Accelerometer
• Microphone
• Camera
• etc…
12. MarkXA.com
CSS3
Web Fonts
Transitions, transforms and
animations
Gradients
Flexible box model
Columns
Rounded corners
etc…
13. MarkXA.com
Silverlight
Plugin and out-of-browser
Nearly all the features of
HTML5 except semantics
All available now
Extra features like printing,
webcam/microphone
support, better media,
more controls, …
14. MarkXA.com
Silverlight – Ease of use
.NET framework
Visual Studio
Expression Blend
Write once, run everywhere
vs HTML5 write once, test
everywhere
So, just use Silverlight?
15. MarkXA.com
Reach – the critical issue
HTML5 Silverlight
Desktops A few Most
iOS Now* Never!
Android Now* One day?
RIM Now* Unlikely
WP7 Soon* Now
*But see next slide…
16. MarkXA.com
How much HTML5 can we use?
Current Future
IE 8.0: 29% 9.0: 61%
Firefox 3.6: 67% 5.0: 88%
Safari 5.0: 79% 6.0: 90%
Chrome 9.0: 89% 11.0: 90%
Opera 11.0: 74% 11.1: 77%
iOS 4.2: 70%
Android 2.3: 60%
17. MarkXA.com
Remember this?
As each browser vendor works on its own
implementation of HTML “standards”,
we’re back to this sort of thing:
with Modernizr and jQuery fallbacks
18. MarkXA.com
Ideal for the customer
Native apps for every platform
• Objective C + Cocoa (iOS)
• Java (Android)
• Java (RIM)
• Silverlight (WP7)
• HTML (everything else)
19. MarkXA.com
Write once, run anywhere
HTML5 is the best chance we have in the
long run
But the market wants native apps
Can use .NET to write native apps with
Mono, MonoTouch, MonoDroid
Can use JavaScript to write native-ish apps
with Appcelerator Titanium etc
20. MarkXA.com
Conclusions
Know your audience
What platforms are they using?
What experience do they want?
Develop for the lowest common
denominator
Consider targeting multiple platforms for
the best experience
HTML5 in particular and rich applications in general
Two halves:
First half is HTML5 – Run through features, quick demos, show what you can do with web applications now
Second half compares web apps to plugins and “native” apps
There’s been some confusion and controversy, but W3C seem to have settled on HTML5 not being HTML
HTML just declarative markup. Not applications by itself.
JavaScript APIs behind most useful HTML5.
CSS3 also bundled in with HTML5.
Recently W3C have updated marketing to split HTML5 into sections, see graphic
We’ll start with the actual HTML:
Think about a blog post – header, footer, menus, adverts, actual article
Instead of wrapping everything up in DIVs and using CSS classes
Gives some meaning, good for Google
More actual HTML.
This is where jQuery would have been used in the past.
Last bit of actual HTML.
Allows simple embedding of video and audio into pages
Only for basic use, not nearly as powerful as a Flash or Silverlight player
Currently need to transcode to several formats
Intended to remove need for Flash and other graphical plugins
SVG – inline or as backgrounds etc
Now getting into APIs and how to make real applications.
Imagine you’re writing text editor with offline capability:
Offline access – manifest for required resources, notification events for going on and offline
File API – access to local files
Local – persistent name-value pairs
Session – per tab name-value pairs, for running two independent sessions in parallel
WebDB – persistent local database with SQL querying
IndexedDB – persistent local object database with LINQ-style querying
Web sockets allow full-duplex direct network connections, e.g. for chat applications or other notifications
Server-sent events basically use sockets as a transport for a simpler way for servers to perform a callback on a client
Geolocation includes altitude, direction, speed, accuracy, etc
Web workers are basically JavaScript threads with a messaging interface.
XHR2 new features cross-origin requests, progress updates, timeouts, binary objects and streams
A whole load of new features for making pages pretty!
Just a quick review of what Silverlight is – cross-platform .NET
You can’t ignore mobiles and tablets any more, even for line of business apps.
These figures are for roughly how much of the spec is supported
Anyone on IE6 or 7 is even worse off.
At the moment, this is where HTML is
Customers want native apps. Persuading phone users to use websites is hard.
If you have a captive audience, e.g. administrators, you can force them onto Chrome or Silverlight