SlideShare a Scribd company logo
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers Todd Anglin, Chief EvangelistTelerikE: anglin@telerik.com | T: @toddanglin
IntroductionsTodd AnglinChief Evangelist, TelerikMicrosoft MVPASP InsiderPresident NHDNUG & O’Reilly AuthorTelerikWatch.com@toddanglin
RICH LEARNING AHEAD
the “plan”
“Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind.”-Steve Jobs April, 2010
<HTML5 ?>
what do these *platforms* have in common?
the rich webNew!Web 3D
HTML5
famously dead* proprietary platformsColdFusionPowerBuilderWinFormsFoxProOS/2VB6OS 9BeOS
when will HTML5 be “official?”
2022
<HTML5>
the basics<!DOCTYPE html>9 new “structure” tags16 new HTML elements13 new <input> types
compatible
 HTMLCSS++JavaScript
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
[browsers]
which browsers matter?99%of internet browses withIE, FF, Safari, Chrome, or Opera
browser supportBetter, but not perfectKnow your users. Know your browsers.
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
fixing IEThree options:Shiv itKill itTarget it
Because some browsers run on many different operating systems, there can be a tendency to use a 'least common denominator' approach to implementing HTML5. By using more of the underlying operating system, and taking advantage of the power of the whole PC, IE9 enables developers to do more with HTML5.“”-Dean HachamovitchGeneral Manager, IE Team
html5test.com?Updated March 2011
in the future, browsers compete on speed, not on features
HTML5 Test + IE9Testing old browsers
using ittoday
how do you use HTML5 today?
modernizer
ModernizrShiv’r + InspectorSimple way to check feature supportConditional JS and CSS.multiplebgs div p {  /* properties for browsers that     support multiple backgrounds */}.no-multiplebgs div p {  /* optional fallback properties     for browsers that don't */}if (Modernizr.canvas) {   //Canvas supported}if (Modernizer.cssColumns){  //Columns supported}//Etc...*Don’t use with IE HTML5shiv. One or the other.
progressiveenhancementgracefuldegradation
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
stuff you can do todaystuff you can do tomorrow
semantic tagstag: <header> <footer> <nav> <article> <hgroup><header>  <hgroup>     <h1>My Site</h1>      <h2>My site tag line</h2>  </hgroup></header><article>   <header>      <h1>An article title</h1>   <header></article><footer><p>Copyright 1987</p></footer>support: IE9, FF3.5, Safari, Chrome, Opera
enriching VS ExperienceAdd Intellisense & Schema Validation to Visual Studio editorhttp://bit.ly/vsHTML5http://bit.ly/vsSVG
fixing IE<head>  <meta charset="utf-8" />  <title>My Weblog</title>  <!--[if lt IE 9]>  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>  <![endif]--></head>
semantic datadata-*Valid approach to storing data in HTML<!--Store values in data-* attributes--><div id="mydiv" data-key="26" data-name="My product name">This product is an extremely popular choice.</div><!--Access values with JavaScript-->//Using DOM's getAttribute() propertyvarkey = mydiv.getAttribute("data-key") //returns "26" //OR Using JavaScript's dataset property**var key = mydiv.dataset.key //returns "26"support: IE9, FF3.5, Safari, Chrome, Opera
videotag: <video /><!-- Single video --><video src="mymovie.mp4" width="320" height="240"></video><!-- Multiple encoded versions --><video width="320" height="240" controls>  <source src="mymovie.ogv" type='video/ogg; codecs="theora, vorbis"'>  <source src="mymovie.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'></video>support: IE9, FF3.6, Safari, Chrome, Opera
video for all browsersMultiple encodingsGraceful degradation<video width="320" height="240" controls>  <source src="mymovie.ogv">  <source src="mymovie.mp4">  <object data="videoplayer.swf">   <param name="flashvars" value="mymovie.mp4">   HTML5 and Flash video not supported </object></video>
WebMRoyalty FreeVP8/Vorbissupport: IE9*, FF3.5, Safari*, Chrome, Opera
input types*tag: time, date, search, email, etc.Web Forms 2.0 HTML5 Forms<form>	<input type="email" autofocus="autofocus" 			    placeholder="Enter your email" /></form>support: Safari, FF4*, Chrome, Opera
browser autofocusImproved usabilitySupported in Safari, Chrome, Opera (so far)<form name="f">  <input id="q" autofocus> <!--Technique to support older browsers-->  <script>    if (!("autofocus" in document.createElement("input"))) {document.getElementById("q").focus();    }  </script>  <input type="submit" value="Go"></form>
geolocationopt-in user feature to share physical positionnavigator.geolocation.getCurrentPosition(callback);function callback(position){varlat = position.coords.latitude;varlng = position.coords.longitude;varacc = position.coords.accuracy;}support: IE9, Safari, FF3.5, Chrome, Opera
local storagesessionStorage = per windowlocalStorage = per browser<script>sessionStorage.setItem('value', this.value);localStorage.setItem('value', this.value);sessionStorage.getItem(‘value’);sessionStorage.clear();localStorage.clear();</script>5 MB limitsupport: IE9, FF3.5, Safari, Chrome, Opera
messagingsend cross-document (and domain) local messages//Sender (http://example.com)varo = $('iframe')[0];o.contentWindow.postMessage('Hello world','http://b.example.org/');//Receiver (http://b.example.org)window.addEventListener('message', receiver, false);function receiver(e) {  if (e.origin == 'http://example.com') alert(e.data);}support: IE8, FF3.5, Safari, Chrome, Opera
canvastag: <canvas /><canvas id=“b" width="300" height="225"></canvas>function draw_b() {varb_canvas = document.getElementById("b");varb_context = b_canvas.getContext("2d");b_context.fillRect(50, 25, 150, 100);}support: IE*, FF3, Safari, Chrome, Opera
fixing IE<head>  <!--[if IE]>    <script src="excanvas.js"></script>  <![endif]--></head>Explorercanvas
svgvs canvas
stuff you can do todaystuff you can do tomorrow
offlinetag: <html manifest="html5demo.manifest">MIME type: text/cache-manifestCACHE MANIFEST# Files you want cached for your app to work offlinemyLogo.jpg//Interacting with cachewindow.applicationCache.update();alert(window.applicationCache.status);support: FF3.5, Safari, Chrome,Opera 10.6
web socketsapi: WebSocketws = new WebSocket("ws://localhost:8282/test”);ws.onopen	= WSonOpen;ws.onmessage 	= WSonMessage;ws.onclose 	= WSonClose;ws.onerror 	= WSonError;function WSonMessage(event) {   $(“#myDiv”).html(event.data);};support: IE9**, Safari 5, Chrome, FF4*, Opera 11*
web sqlapi: openDatabasedb= openDatabase("html5demos", "1.0", "HTML 5 Database API example", 200000);if (db) {db.transaction(function(tx) {tx.executeSql("CREATE TABLE IF NOT EXISTS tweets (id REAL UNIQUE,                     text TEXT, created_atTEXT, screen_name TEXT,                      mention BOOLEAN)", [], callback);      });}db.transaction(function (tx) {tx.executeSql('SELECT * FROM tweets WHERE mention = ? AND id > ? ORDER BY id DESC', [mention, latest], callbackFunc);});“This specification has reached an impasse: all interested implementors have used the same SQL backend (Sqlite), but we need multiple independent implementations to proceed along a standardisation path.” –W3Csupport: Safari, Chrome, Opera
indexedDBJavaScript API for indexed local storagevar request = window.indexedDB.open("CandyDB",                                    "My candy store database");request.onsuccess= function(event) {vardb = event.result;  if (db.version != "1") {    // User's first visit, initialize database.    ... }}support: IE9*, FF4, (Chrome)
web workersbackground threads for JavaScriptvar worker = new Worker('worker.js');worker.onmessage= function (event) {$('#result').innerHTML= event.data;};//Worker communicates viapostMessage([value]);support: FF3.5, Safari, Chrome,Opera
CSS3
CSS HistoryCSS3Improve consistency & power of styling languageCSS: Plagued by implementation bugs & inconsistencies
What’s CSS3?Extensions for CSS2.1Add functionality, refine definitions
leveling the playing fieldCSS ResetBrowsers ship with built-in styles – zero them out!Enable newer features in older browsershttp://html5reset.orghttp://html5boilerplate.com
Browser Prefixes-webkit-moz-o-ms“standard” way browsers implement custom features.
custom fontsBiggest Problem?Licensing!@font-face { 	font-family: Delicious; src: url('Delicious-Roman.otf') format(“opentype”); } //Usageh3 { font-family: Delicious, sans-serif; }
Web Font ProvidersSolve the licensing problemHost the TTF/OTF font filesProvide easy-to-use codehttp://code.google.com/webfontshttp://webfonts.fonts.comhttp://typekit.com/libraries
rounded cornersEasy corner controlExpect GD for older browsers (IE)-moz-border-radius: 5px 5px 5px 5px; //Optionally ”explicit”-webkit-border-radius: 5px;border-radius: 5px;//Can also control specific cornersborder-bottom-left-radius:0px;border-bottom-right-radius:0px;
drop shadowsExactly like it soundsbox-shadow: <hShift> <vShift> <size> <color>;-moz-box-shadow: 2px 2px2px #333;-webkit-box-shadow: 2px 2px2px #333;box-shadow: 2px 2px2px #333;
text shadowsUniform across supported browsers!text-shadow: <h offest> <v offset> <blur size> <color>;text-shadow: 2px 2px2px #333;//You can apply multiple shadowstext-shadow: 2px 2px2px #333, 2px 2px 3px #CCC;
BackgroundsMore options, more powermultiple backgroundsresize backgroundsbackground clipping/*Background size*/-webkit-background-size: 137px 50px;-o-background-size: 137px 50px;background-size: 137px 50px;/*Multiple Backgrounds*/background: url(top.gif) top left no-repeat,url(bottom.gif) bottom left no-repeat,url(middle.gif) left repeat-y;/*Background origin*/background-origin: border;/*Other options: padding or content*/
GradientsNot CSS3!But useful and desirableCan be “shived” to support all browsers
LESS for CSSUse LESS to write less CSSVariables, operations, mix-ins, nested rules/*Variables*/@primaryColor: #383939;background-color: @primaryColor;/*Mix-ins!!*/.roundedCorners (@radius: 12px) {	-moz-border-radius: @radius;	-webkit-border-radius: @radius;	border-radius: @radius;}#page { background-color: @primaryColor; .roundedCorners; }
animating with CSSAnimate by setting CSS propertiesWorks when JS is disabled#id_of_element { -webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; transition: all 1s ease-in-out; }
the One-OffsFeatures waiting for friends
CSS3 Demos
mobile
considerationsBandwidthScreen SizeInteractionLook-and-feelReusability
320px980px
<meta>Rendering hints for mobile browsers<meta name="viewport" content="width=device-width, initial-scale=1.0">Optional: user-scalable=notarget-densitydpi=device-dpi (Android Only)<!--iOS specific--><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black" /><link rel="apple-touch-icon" href="./apple-touch-icon.png" />
media queriesTarget styles to specific devices…And features!/*These two rules do the same thing*/@media all and (min-width:500px) { … } @media (min-width:500px) { … }/*Multiple conditions*/@media screen and (min-width: 600px) and (max-width: 900px) {  .class {    background: #333;  }}
frameworks
javascriptjQuery
universal languageMobileDesktopServer (node.js)Devices
frameworksjQueryMooToolsYUIextJSDojoprototypeGoogle Trends
jQueryAvailable from numerous CDNSGoogle, Microsoft, TelerikjQuery APIBrowser VersionsJavaScriptEnginesJägerMonkeyV8NitroChakraEMCAScript “Standard”
HTML5 + JavaScriptAware & Dependent
should I use HTML5 today?
The consumer should be able to decide which technologies they want to use, but a multi-platform world is definitely where the world is headed.-ShantanuNarayen April, 2010
The future of the web is HTML5.-Dean Hachamovitch April, 2010
Your Feedback is ImportantPlease fill out a session evaluation form drop it off at the conference registration desk.Thank you!telerikwatch.com@toddanglinanglin@telerik.com
ResourcesQuoteshttp://www.apple.com/hotnews/thoughts-on-flash/http://www.dailytech.com/Adobes+CEO+Responds+to+Steve+Jobs+Rant+about+Flash/article18267.htmhttp://blogs.msdn.com/ie/archive/2010/04/29/html5-video.aspxHTML5 Resourceshttp://www.w3.org/TR/html5-diff/#backwards-compatiblehttp://html5demos.com/http://ishtml5ready.comhttp://caniuse.comhttp://html5readiness.comhttp://html5test.comhttp://www.browserscope.org/http://www.html5rocks.com/HTML5 Demoshttp://9elements.com/io/projects/html5/canvas/http://html5demos.com/http://www.chromeexperiments.com/CSS3 Demoshttp://www.zachstronaut.com/lab/text-shadow-box/text-shadow-box.htmlhttp://anthonycalzadilla.com/css3-ATAT/index.htmlIE9 Downloadhttp://ie.microsoft.com/testdrive/
CSS3 ResourcesLESS CSS “framework” + tutorialhttp://designshack.co.uk/articles/css/using-less-js-to-simplify-your-css3LESS T4 Template from Phil Haackhttp://haacked.com/archive/2009/12/02/t4-template-for-less-css.aspxLESS VS CSS code highlightinghttp://visualstudiogallery.msdn.microsoft.com/en-us/dd5635b0-3c70-484f-abcb-cbdcabaa9923
Slide TitlePlease use this template for your slidesPlease DO NOT change the format of this templatePlease DO NOT use special formatting such as shadowing for code or images, or shadows behind boxes, etc. Please DO NOT use layers or  slides because the text is unreadable when printed as handouts for students. Please send completed slides to erik@devconnections.comFilename for slides should be: lastname_conference_sessionnum_sessiontitle.ppt Please zip all files before sending them. Include sample code for the attendee disk in a subfolder.

More Related Content

What's hot (20)

PDF
Echo HTML5
Nathan Smith
 
KEY
HTML5 Video Player - HTML5 Dev Conf 2012
steveheffernan
 
PDF
Keypoints html5
dynamis
 
PPTX
Html5 Overview
Daniel Arndt Alves
 
ODP
HTML5
Hatem Mahmoud
 
PDF
Node.js Authentication and Data Security
Tim Messerschmidt
 
PDF
HTML5 for PHP Developers - IPC
Mayflower GmbH
 
PDF
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
IT Event
 
PPTX
HTML5 and CSS3 Techniques You Can Use Today
Todd Anglin
 
KEY
5 ways to embrace HTML5 today
Daniel Ryan
 
PDF
Ajax Security
Joe Walker
 
PPTX
What is HTML 5?
Susan Winters
 
PDF
HTML5--The 30,000' View (A fast-paced overview of HTML5)
Peter Lubbers
 
PDF
Building an HTML5 Video Player
Jim Jeffers
 
PDF
Using Web Standards to create Interactive Data Visualizations for the Web
philogb
 
PDF
Wrangling Large Scale Frontend Web Applications
Ryan Roemer
 
PDF
Startup eng-camp 3
Jollen Chen
 
PPTX
Old code doesn't stink - Detroit
Martin Gutenbrunner
 
PDF
Offline strategies for HTML5 web applications - frOSCon8
Stephan Hochdörfer
 
PDF
Offline Strategies for HTML5 Web Applications - oscon13
Stephan Hochdörfer
 
Echo HTML5
Nathan Smith
 
HTML5 Video Player - HTML5 Dev Conf 2012
steveheffernan
 
Keypoints html5
dynamis
 
Html5 Overview
Daniel Arndt Alves
 
Node.js Authentication and Data Security
Tim Messerschmidt
 
HTML5 for PHP Developers - IPC
Mayflower GmbH
 
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
IT Event
 
HTML5 and CSS3 Techniques You Can Use Today
Todd Anglin
 
5 ways to embrace HTML5 today
Daniel Ryan
 
Ajax Security
Joe Walker
 
What is HTML 5?
Susan Winters
 
HTML5--The 30,000' View (A fast-paced overview of HTML5)
Peter Lubbers
 
Building an HTML5 Video Player
Jim Jeffers
 
Using Web Standards to create Interactive Data Visualizations for the Web
philogb
 
Wrangling Large Scale Frontend Web Applications
Ryan Roemer
 
Startup eng-camp 3
Jollen Chen
 
Old code doesn't stink - Detroit
Martin Gutenbrunner
 
Offline strategies for HTML5 web applications - frOSCon8
Stephan Hochdörfer
 
Offline Strategies for HTML5 Web Applications - oscon13
Stephan Hochdörfer
 

Viewers also liked (20)

PDF
HTML 5, CSS3 and ASP.NET Best Practices by Example
Darren Sim
 
PPTX
ASP.NET vNext Beta 3
Maurice De Beijer [MVP]
 
PPTX
asp.net mvc-course-introduction
Ayaz Meher
 
PPTX
ASP.NET Core em Linux - Canal .NET Dev Week
Renato Groff
 
PPTX
Making HTML5 Work Everywhere
Todd Anglin
 
PPT
Building RESTful Applications with OData
Todd Anglin
 
PPT
HTML5 Mullet: Forms & Input Validation
Todd Anglin
 
PPTX
From zero to hero with running your asp.net core 1 application in a docker co...
Maurice De Beijer [MVP]
 
PDF
Using HTML5 to Build Mobile Apps
Todd Anglin
 
PPTX
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
Todd Anglin
 
PPTX
02 - [ASP.NET Core] ASP.NET Core MVC
Cellenza
 
PPTX
ASP.NET Core 1.0 Overview: Post-RC2
Shahed Chowdhuri
 
PDF
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
Todd Anglin
 
PDF
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
Rogério Moraes de Carvalho
 
PPTX
Getting Started with ASP.net Core 1.0
joescars
 
PDF
Los Angeles Lakers tops, Miami Heat and Chicago Bulls follow as the most soci...
Simplify360
 
PPTX
10 Lessons Graphic Designers Can Learn From Sports Celebrities
ZillionDesigns
 
PDF
Games Sense to Coaching Basketball
Chris Oliver
 
PDF
A World of Talent: What Perennial NBA Contenders Teach Us About Collaboration
Cureo
 
PPTX
GraphTalks Rome - Selecting the right Technology
Neo4j
 
HTML 5, CSS3 and ASP.NET Best Practices by Example
Darren Sim
 
ASP.NET vNext Beta 3
Maurice De Beijer [MVP]
 
asp.net mvc-course-introduction
Ayaz Meher
 
ASP.NET Core em Linux - Canal .NET Dev Week
Renato Groff
 
Making HTML5 Work Everywhere
Todd Anglin
 
Building RESTful Applications with OData
Todd Anglin
 
HTML5 Mullet: Forms & Input Validation
Todd Anglin
 
From zero to hero with running your asp.net core 1 application in a docker co...
Maurice De Beijer [MVP]
 
Using HTML5 to Build Mobile Apps
Todd Anglin
 
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
Todd Anglin
 
02 - [ASP.NET Core] ASP.NET Core MVC
Cellenza
 
ASP.NET Core 1.0 Overview: Post-RC2
Shahed Chowdhuri
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
Todd Anglin
 
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
Rogério Moraes de Carvalho
 
Getting Started with ASP.net Core 1.0
joescars
 
Los Angeles Lakers tops, Miami Heat and Chicago Bulls follow as the most soci...
Simplify360
 
10 Lessons Graphic Designers Can Learn From Sports Celebrities
ZillionDesigns
 
Games Sense to Coaching Basketball
Chris Oliver
 
A World of Talent: What Perennial NBA Contenders Teach Us About Collaboration
Cureo
 
GraphTalks Rome - Selecting the right Technology
Neo4j
 
Ad

Similar to Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers (20)

PPT
Internet Explorer 8 for Developers by Christian Thilmany
Christian Thilmany
 
PPTX
HTML5 and web technology update
Doug Domeny
 
PPTX
Client-side JavaScript Vulnerabilities
Ory Segal
 
PPT
HTML5 Introduction by Dhepthi L
SPRITLE SOFTWARE PRIVATE LIMIT ED
 
PPT
Html5 Overview
Owen Williams
 
PPTX
HTML5 Introduction
beforeach
 
PPT
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Alfresco Software
 
PPTX
HTML5 and Search Engine Optimization (SEO)
Performics.Convonix
 
PPT
Rey Bango - HTML5: polyfills and shims
StarTech Conference
 
PDF
IPhone Web Development With Grails from CodeMash 2009
Christopher Judd
 
PPTX
Peter lubbers-html5-overview-sf-dev-conf-2011
Peter Lubbers
 
PPTX
Real-World AJAX with ASP.NET
goodfriday
 
PPT
GTLAB Installation Tutorial for SciDAC 2009
marpierc
 
KEY
HTML5 - techMaine Presentation 5/18/09
pemaquid
 
PPT
Thadomal IEEE-HTML5-Workshop
Romin Irani
 
PPT
Advanced SEO for Web Developers
Nathan Buggia
 
ZIP
Looking into HTML5
Christopher Schmitt
 
PPT
Developing Gadgets
Quirk
 
PPT
New Browsers
Rafael Mumme
 
Internet Explorer 8 for Developers by Christian Thilmany
Christian Thilmany
 
HTML5 and web technology update
Doug Domeny
 
Client-side JavaScript Vulnerabilities
Ory Segal
 
HTML5 Introduction by Dhepthi L
SPRITLE SOFTWARE PRIVATE LIMIT ED
 
Html5 Overview
Owen Williams
 
HTML5 Introduction
beforeach
 
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Alfresco Software
 
HTML5 and Search Engine Optimization (SEO)
Performics.Convonix
 
Rey Bango - HTML5: polyfills and shims
StarTech Conference
 
IPhone Web Development With Grails from CodeMash 2009
Christopher Judd
 
Peter lubbers-html5-overview-sf-dev-conf-2011
Peter Lubbers
 
Real-World AJAX with ASP.NET
goodfriday
 
GTLAB Installation Tutorial for SciDAC 2009
marpierc
 
HTML5 - techMaine Presentation 5/18/09
pemaquid
 
Thadomal IEEE-HTML5-Workshop
Romin Irani
 
Advanced SEO for Web Developers
Nathan Buggia
 
Looking into HTML5
Christopher Schmitt
 
Developing Gadgets
Quirk
 
New Browsers
Rafael Mumme
 
Ad

More from Todd Anglin (9)

PPTX
Developing a Modern Mobile App Strategy
Todd Anglin
 
PPTX
5 Tips for Better JavaScript
Todd Anglin
 
PPTX
50in50: Resources for HTML5, CSS3, & JavaScript Developers
Todd Anglin
 
PPTX
HTML5 for Tablets and Mobile
Todd Anglin
 
PPTX
Doing More with LESS for CSS
Todd Anglin
 
PPT
Building a Testable Data Access Layer
Todd Anglin
 
PPTX
HTML5 and CSS3 Techniques You Can Use Today
Todd Anglin
 
PPTX
The Rich Standard: Getting Familiar with HTML5
Todd Anglin
 
PPTX
What’s New in ASP.NET 4
Todd Anglin
 
Developing a Modern Mobile App Strategy
Todd Anglin
 
5 Tips for Better JavaScript
Todd Anglin
 
50in50: Resources for HTML5, CSS3, & JavaScript Developers
Todd Anglin
 
HTML5 for Tablets and Mobile
Todd Anglin
 
Doing More with LESS for CSS
Todd Anglin
 
Building a Testable Data Access Layer
Todd Anglin
 
HTML5 and CSS3 Techniques You Can Use Today
Todd Anglin
 
The Rich Standard: Getting Familiar with HTML5
Todd Anglin
 
What’s New in ASP.NET 4
Todd Anglin
 

Recently uploaded (20)

PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 

Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers

Editor's Notes

  • #4: Going off-template for better instructional effectiveness
  • #6: http://www.apple.com/hotnews/thoughts-on-flash/
  • #7: Talk about the major “platforms” for the web. Introduce the players.
  • #8: Looking for people to identify that Flash, Silverlight, and HTML5 are all competing to deliver the rich web
  • #13: Ian Hickson of Google, Inc. is the editor of HTML5Fun facts:- It takes about 10 years to build a nuclear power plant (http://wiki.answers.com/Q/How_long_does_it_take_to_build_a_Nuclear_Power_Station)- Deposit $10/day for 12 years @ 8% = $73,000 (http://calcnexus.com/savings-calculator.php)
  • #14: he HTML5 specification will not be considered finished before there are at least two complete implementations of the specification.http://www.w3.org/TR/html5-diff/#backwards-compatibleThe Living Standard: http://www.whatwg.org/specs/web-apps/current-work/multipage/
  • #18: http://html5demos.com/
  • #20: http://marketshare.hitslink.com/browser-market-share.aspx?qprid=1
  • #22: Mozilla’s take on IE9: http://people.mozilla.com/~prouget/ie9/ie9_vs_fx4.htmlTesting older IE: http://spoon.net/ie6(News on MSFT take down of testable browsers: http://blog.thomascsherman.com/2010/11/spoon-net-forced-to-pull-internet-explorer/)Another old IE option: http://www.my-debugbar.com/wiki/IETester/HomePageOfficial MSFT option for testing old IE: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&amp;displaylang=en
  • #23: http://code.google.com/p/ie7-js/Testing IE:http://spoon.net/browsers/Three choices: Hack it – Force features with JS shivsSupport it – Provide gracefully degraded experienceKill it – Provide message indicating no or limited support
  • #25: http://caniuse.com/http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML5)http://html5test.com/
  • #26: Sun Spider benchmark test:http://www.webkit.org/perf/sunspider/sunspider.html
  • #30: http://www.modernizr.com/
  • #31: http://www.modernizr.comhttp://www.alistapart.com/articles/taking-advantage-of-html5-and-css3-with-modernizr/
  • #36: http://www.w3.org/TR/html5/text-level-semantics.htmlhttp://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/html5-cheat-sheet/html5-cheat-sheet.pdfhttp://gsnedders.html5.org/outlinerhttp://diveintohtml5.org/examples/blog-original.htmlhttp://visualstudiogallery.msdn.microsoft.com/en-us/d771cbc8-d60a-40b0-a1d8-f19fc393127d
  • #39: http://www.javascriptkit.com/dhtmltutors/customattributes.shtmlhttp://html5doctor.com/html5-custom-data-attributes/Two methods of access:- Via Attributes (http://api.jquery.com/category/attributes/)Via “dataset” (plug-in required today: http://www.orangesoda.net/jquery.dataset.html)
  • #40: http://diveintohtml5.org/video.html
  • #41: Chrome H.264 from MSFT:http://arstechnica.com/microsoft/news/2011/02/microsoft-offers-h264-plugin-for-chrome-queries-google-on-webm.arshttp://blogs.msdn.com/b/ie/archive/2011/02/01/html5-and-web-video-questions-for-the-industry-from-the-community.aspxChrome’s pull of H.264: http://arstechnica.com/web/news/2011/01/googles-dropping-h264-from-chrome-a-step-backward-for-openness.ars/
  • #42: WebM support via a plug-in: http://tools.google.com/dlpage/webmmfTechCrunch on WebM: http://techcrunch.com/2011/01/14/webm-plugins/
  • #43: http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#states-of-the-type-attributehttp://www.html5laboratory.com/s/simple-html5-contact-form.htmlWeb Forms 2 (old spec – now Forms in HTML5): http://dev.w3.org/html5/web-forms-2/http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#formsDefined input types: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-elementCross browser input types: http://net.tutsplus.com/tutorials/html-css-techniques/how-to-build-cross-browser-html5-forms/Cross browser forms 2.0: https://github.com/westonruter/webforms2
  • #44: http://diveintohtml5.org/forms.html
  • #45: http://diveintohtml5.org/geolocation.htmlSpec: http://dev.w3.org/geo/api/spec-source.htmlOnly lat, long, acc are guranteed. Other values might be available, including altitude, altitudeAccuracy, heading, speedCan force maximum age for cached geolocation objectsCan handle errors and make repeat location calls using navigatior.geolocation.watchPosition(successCallback, errorCallback, {maximumAge:time})Google Maps API v3 Reference: http://code.google.com/apis/maps/documentation/javascript/basics.html(Free to use on all apps that are free to consumers – no API keys needed)
  • #46: http://html5demos.com/storageTutorial:http://html5tutorial.net/tutorials/working-with-html5-localstorage.html
  • #47: http://dev.w3.org/html5/postmsg/http://ajaxian.com/archives/cross-window-messaging-with-html-5-postmessageAvailability: http://caniuse.com/#search=messaging
  • #48: http://blog.nihilogic.dk/2009/02/html5-canvas-cheat-sheet.html
  • #49: http://code.google.com/p/explorercanvas/
  • #50: http://upload.wikimedia.org/wikipedia/en/d/d0/Chrome_Logo.svgComparison articles:Great comparison: http://dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/http://blogs.sitepoint.com/2010/07/06/canvas-vs-svg-how-to-choose/ (IDEA: progressive enhancement techniques — for example, IE8 and earlier versions show a table of data whereas supported browsers show an animated pie chart.)SVG Bridge for all browsers:http://raphaeljs.com/CANVAS Bridge for IE: http://code.google.com/p/explorercanvas/(Pointless canvas example: http://paulirish.com/2010/high-res-browser-icons/)SVG is DOM-based. All elements exist in DOM. Thus, you can attach event handlers. CON: Many objects can hurt perf.CANVAS is PIXEL-based. All elements rendered quickly, but not part of DOM. CON: Harder to interact.
  • #52: http://html5demos.com/offlineapphttp://diveintohtml5.org/offline.htmlhttp://html5doctor.com/go-offline-with-application-cache/ (Good practical tips)Inspect appcache in Chrome: chrome://appcache-internals/Stephen Walther on using ASP.NET to serve Cache manifest: http://stephenwalther.com/blog/archive/2011/01/26/creating-html5-offline-web-applications-with-asp-net.aspxFix IIS Express manifest type: http://www.danielroot.info/2010/07/how-microsofty-writes-ipad-apps.htmlC:\\Users\\{YOU}\\Documents\\IISExpress\\config\\applicationHost.configComment out the .manifest mime type (sorry ClickOnce!)Add the following line: &lt;mimeMapfileExtension=&quot;.manifest&quot; mimeType=&quot;text/cache-manifest&quot; /&gt;Can also override in IIS7+ config (integrated pipeline):&lt;system.webServer&gt; &lt;staticContent&gt; &lt;mimeMapfileExtension=&quot;.manifest&quot; mimeType=&quot;text/cache-manifest&quot; /&gt; &lt;/staticContent&gt; &lt;/system.webServer&gt;Application Cache API: http://www.w3.org/TR/html5/offline.html#application-cache-api
  • #53: Example code for .NET WebSockets:http://www.undisciplinedbytes.com/2010/06/html-5-c-web-sockets-server-and-asp-net-client-implementation/Online demo: http://websocket.org/echo.htmlOpera on Sockets:http://my.opera.com/core/blog/websocketsSockets disabled by default in FF and Opera: http://annevankesteren.nl/2010/12/websocket-protocol-vulnerabilityEnabling sockets in Opera 11: opera:config#UserPrefs|EnableWebSocketsEnabling sockets in FF4: about:config -&gt; network.websocket.override-security-block;trueIE9 can do WebSockets via a prototype Silverlight hack: http://html5labs.interoperabilitybridges.com/prototypes/available-for-download/websocketsLimits: http://html5labs.interoperabilitybridges.com/media/2311/readme.htmSockets vs. traditional polling performance: http://soa.sys-con.com/node/13154733rd party sockets solution for older browsers:
  • #54: WebSql is not proceeding: http://dev.w3.org/html5/webdatabase/State of web local storage: http://rethink.unspace.ca/2010/5/10/the-state-of-html5-local-data-storageReplacement Tech is IndexedDB:http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.htmlSyncing back to a server database: http://stackoverflow.com/questions/1744522/best-way-to-synchronize-local-html5-db-storage-with-a-serverPersistenceJS:https://github.com/zefhemel/persistencejsGoogle Web Stroage Portability Layer: http://google-opensource.blogspot.com/2009/05/web-storage-portability-layer-common.html
  • #55: Kills Google Gearshttp://www.w3.org/TR/IndexedDB/https://developer.mozilla.org/en/IndexedDBhttp://www.html5rocks.com/tutorials/indexeddb/todo/Good comparison by Mozilla to formerWebDatabase approach: http://hacks.mozilla.org/2010/06/comparing-indexeddb-and-webdatabase/
  • #56: http://en.wikipedia.org/wiki/Web_Workershttp://www.whatwg.org/specs/web-workers/current-work/http://caniuse.com/#search=web worker
  • #58: http://en.wikipedia.org/wiki/Cascading_Style_SheetsIE Mac: Shipped in March 20009 style sheet languages proposed in early 90sLanguages:1996:JavaScript Style Sheets (JSSS) – Netscape1994: Cascading HTML Style Sheets (CHSS)1994: Stream-based Style Sheet Proposal (SSP)
  • #59: New CSS3 featuresCSS3 principlesShow example of CSS3 in actionList of all CSS properties:http://meiert.com/en/indices/css-properties/http://www.w3.org/Style/CSS/current-workhttp://www.w3.org/TR/2010/WD-css-2010-20101202/#css3
  • #60: http://html5reset.org/http://meyerweb.com/eric/tools/css/reset/http://html5doctor.com/html-5-reset-stylesheet/http://html5boilerplate.com/
  • #61: Microsoft Extensions: http://blogs.msdn.com/b/ie/archive/2008/09/08/microsoft-css-vendor-extensions.aspxVendor specific prefixes: http://reference.sitepoint.com/css/vendorspecific
  • #62: @font-face was first proposed for CSS2 and has been implemented in Internet Explorer since version 5IE relied on proprietary Embedded Open Type (.eot)Old school solutions involved things like sIFR (http://www.mikeindustries.com/blog/sifr/)Modern browsers finally support TTF and OTFResources:http://www.css3.info/preview/web-fonts-with-font-face/http://www.alistapart.com/articles/cssatten
  • #63: Making fonts compatible with IE requires some work-around:http://randsco.com/index.php/2009/07/04/p680
  • #64: Fix “bleeding” in Webkit with: -webkit-background-clip: padding-box;http://tumble.sneak.co.nz/post/928998513/fixing-the-background-bleed
  • #67: http://designshack.co.uk/articles/introduction-to-css3-part-6-backgroundshttp://www.css3.info/preview/background-origin-and-background-clip/
  • #68: IMAGES FROM: http://www.webdesignerwall.com/tutorials/cross-browser-css-gradient/Great visual CSS gradient generator: http://www.display-inline.fr/projects/css-gradient/#startType=hex&amp;startValue=aaeeff&amp;endType=hex&amp;endValue=3399ccSimple Visual gradient creator: http://gradients.glrzad.com/Good explanation:http://www.dynamicdrive.com/style/csslibrary/item/css3_linear_gradients/background: black;background: -moz-linear-gradient(top, black, white);background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(black), to(white)); /*You can also make gradient stops*/-moz-linear-gradient( top,rgb(214,24,166) 0%,rgb(255,51,200) 50%,rgb(255,77,240) 87%)
  • #69: Great tutorial:http://designshack.co.uk/articles/css/using-less-js-to-simplify-your-css3LESS site: http://lesscss.org/Enable .less with IIS Express:C:\\Program Files (x86)\\IIS Express&gt;appcmd set config /section:staticContent /+[fileExtension=&apos;.less&apos;,mimeType=&apos;text/css&apos;]
  • #70: CSS3 Animation Examples:http://webdeveloperjuice.com/demos/css/css3effects.html#secondhttp://anthonycalzadilla.com/css3-ATAT/index.htmlhttp://www.optimum7.com/css3-man/animation.html
  • #71: Full list of -moz extensions: https://developer.mozilla.org/en/CSS_Reference/Mozilla_Extensions
  • #72: http://www.zachstronaut.com/lab/text-shadow-box/text-shadow-box.htmlhttp://paulbakaus.com/lab/js/coverflow/http://www.cssplay.co.uk/menu/css3-animation.htmlhttp://anthonycalzadilla.com/css3-ATAT/index.html
  • #73: General discussion of best practices: http://dev.opera.com/articles/view/designing-and-developing-mobile-web-site/ (a bit old, from 2007, but some good concepts)
  • #75: http://www.quirksmode.org/mobile/viewports2.htmlhttp://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.htmlhttps://developer.mozilla.org/en/Mobile/Viewport_meta_tag
  • #76: http://matt.might.net/articles/how-to-native-iphone-ipad-apps-in-javascript/http://html5boilerplate.com/docs/#the-markuphttp://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html#//apple_ref/doc/uid/TP40008193Discussion of viewport and older mobile meta tags: http://davidbcalhoun.com/tag/handheldfriendly
  • #77: http://www.webdesignerwall.com/tutorials/css3-media-queries/http://www.w3.org/TR/css3-mediaqueries/Code for targeting iPhone: http://perishablepress.com/press/2010/10/20/target-iphone-and-ipad-with-css3-media-queries/
  • #78: http://www.the-m-project.org/http://www.appcelerator.com/products/titanium-mobile-application-development/http://jquerymobile.com/http://jqtouch.com/http://www.sencha.com/products/touch/Good comparison:http://stackoverflow.com/questions/5063117/choosing-mobile-web-html5-framework
  • #79: Good presentation: http://www.slideshare.net/remy.sharp/html5-javascript-apis
  • #81: http://stackoverflow.com/questions/394601/which-javascript-framework-jquery-vs-dojo-vshttp://www.google.com/trends?q=jquery%2Cdojo%2Cmootools%2Cyui%2Cextjs
  • #82: http://stackoverflow.com/questions/1447184/microsoft-cdn-for-jquery-or-google-cdnhttp://en.wikipedia.org/wiki/JavaScript_engine#JavaScript_engines
  • #85: http://www.dailytech.com/Adobes+CEO+Responds+to+Steve+Jobs+Rant+about+Flash/article18267.htm
  • #86: http://blogs.msdn.com/ie/archive/2010/04/29/html5-video.aspx