HTML5 & Dojo Futures- April 2011


Published on

HTML5 & Dojo Futures, IBM Impact 2011

Published in: Technology, Art & Photos
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • File Name Here.ppt
  • File Name Here.ppt
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt 02/10/10 03:37
  • Taking a quick peek - HTML5 offers access to local storage on the device, offers the ability to obtain location-based information through triangulation and GPS, as well as an off-line capability. Mobile phone vendors are the first vendors to implement early standards targetting HTML5 HTML5 and CSS are building in native capabilities to optimize audio, video, vector graphics, and animations on the device (thereby improving battery life and consumability on mobile devices). Technologies are emerging to help accelerate device access (such as PhoneGap) to help bridge the gap amongst device vendors and standards development as these specifications work towards standardization. This technologies are rapidly emerging since HTML5 was taken over by another effort called WHATWG - Web Hypertext Application Technology Workgroup – an unofficial collaboration of web browser manufacturers and interested parties. These parties are actively working on the specification – but implementing the specification as it ’s being developed.
  • Whether or not the technology is ready for prime time is a good question. However, you can look for yourself on whether what you are looking for is there, and supported on the devices…
  • Open technologies are evolving and maturing – and become a viable alternative. In fact, by 2015, Gartner predicts that web technologies will have advanced sufficiently by 2015 that ½ the apps would be written as web apps (vs. native apps). You ’ll soon see that I believe it will arrive faster than that. The specifications - HTML5, Javascript, CSS3 are evolving at a rapid rate.
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt 02/10/10 03:37 src and type are important for performance, so that browser doesn’ t download and play unsupported types
  • File Name Here.ppt 02/10/10 03:37 src and type are important for performance, so that browser doesn’ t download and play unsupported types
  • File Name Here.ppt 02/10/10 03:37 src and type are important for performance, so that browser doesn’ t download and play unsupported types
  • File Name Here.ppt 02/10/10 03:37 src and type are important for performance, so that browser doesn’ t download and play unsupported types
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt
  • File Name Here.ppt
  • File Name Here.ppt 02/10/10 03:37
  • IMPACT09_FP-for-Web2.0.ppt Page of 53
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt 02/10/10 03:37
  • File Name Here.ppt 02/10/10 03:37
  • This is (to put it simply) a server-side version of topic-based events.
  • IMPACT09_FP-for-Web2.0.ppt Page of 53
  • File Name Here.ppt 02/10/10 03:37 Talk about AMD, Asynch Loaders, Less.js … if time remains
  • File Name Here.ppt
  • File Name Here.ppt
  • HTML5 & Dojo Futures- April 2011

    1. 1. HTML5 & Dojo Futures Dylan Schiemann CEO, SitePen Inc. Co-Founder, Dojo Session Number: TDW-1313 Christopher C. Mitchell STSM, IBM UI Technologies
    2. 2. IBM's statements regarding its plans, directions, and intent are subject to change or withdrawal at IBM's sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.
    3. 3. Agenda <ul><li>State of the Art Standards-Based RIA Technologies </li></ul><ul><li>HTML5 & CSS </li></ul><ul><li>Dojo & HTML5 </li></ul>
    4. 4. Current State of Web Technologies HTML, CSS
    5. 5. Ubiquitous Web Programming Emerges Java Objective-C .Net CF Java HTML Javascript CSS HTML5 Javascript CSS3 Desktop OS Mobile OS 9 9
    6. 6. Trends
    7. 7. HTML5 and the Open Web are enabling new capabilities Offline Applications GeoLocation Support Local Storage
    8. 8. HTML5 Impact on Desktop and Mobile <ul><li>“ By 2015, mobile Web technologies will have advanced sufficiently such that half of the applications that today would be written as native apps will be, instead, delivered as Web apps.” </li></ul><ul><ul><li>Gartner Predications 2010: Web Technologies Will Evolve in Multiple Directions </li></ul></ul><ul><li>Browser use as a Web platform extends from traditional desktop OS into mobile </li></ul><ul><li>JavaScript toolkits & mobile scenarios are driving innovation in the Web </li></ul>
    9. 9. HTML5 Graphics <ul><li>Canvas & SVG </li></ul>
    10. 10. Canvas API <ul><li>Provides Web applications with API ’ s to draw graphics primitives on a resolution-dependent bitmap canvas </li></ul><ul><li>Useful for games, visual images, charts, editing images </li></ul><ul><li>Gives direct access to pixel data (import/export images) </li></ul><ul><li>Simple to create canvas surface in markup </li></ul><ul><li>Once created, draw on the canvas using JavaScript </li></ul>< canvas id=&quot;myCanvas&quot; width=&quot;300&quot; height=&quot;150&quot;> Sorry, browser does not support Canvas. </ canvas > var elem = document.getElementById('myCanvas'); if (elem && elem.getContext) { var context = elem.getContext('2d'); if (context) { context. drawGraphicsPrimitives(); } }
    11. 11. Canvas API <ul><li>HTML5 allows Canvas API to be used in conjunction with other media elements (eg. Video and Images) </li></ul><ul><li>Canvas has inherent limitations </li></ul><ul><ul><li>No object model or scene graph for programs to manipulate </li></ul></ul><ul><ul><ul><li>Redraw all commands performed on canvas </li></ul></ul></ul><ul><ul><li>No event support </li></ul></ul><ul><ul><li>No serialization format </li></ul></ul><ul><ul><li>Limited browser support of text and fonts </li></ul></ul><ul><ul><li>Not accessible </li></ul></ul><ul><ul><li>No true bitmap-based support on older browsers (IE6,7,8) </li></ul></ul>
    12. 12. Canvas & SVG Example: http://
    13. 13. SVG – Scalable Vector Graphics <ul><li>A markup language for 2d vector graphics and a set of related script interfaces </li></ul><ul><ul><li>A standard interchange format for describing 2d scene </li></ul></ul><ul><li>Has an object model and events, useful for interactive graphics applications that can be manipulated via user actions </li></ul><ul><ul><li>Manipulated via JavaScript and DOM API ’ s </li></ul></ul><ul><li>SVG1.1 adds Filter effects (eg. Gaussian blurs, shadows) </li></ul><ul><li>HTML5: </li></ul><ul><li>Browser support: </li></ul><ul><ul><li>Firefox, Webkit (Safari/Chrome), Opera, IE9 support SVG </li></ul></ul><ul><ul><li>Firefox 4 and IE9 support inline SVG </li></ul></ul><ul><ul><ul><li>Allows targeting video element, for example to apply filter effects </li></ul></ul></ul>
    14. 14. SVG <ul><li>Limitations </li></ul><ul><ul><li>Requires more memory than Canvas (due to retained scene) </li></ul></ul><ul><ul><li>No direct access to pixel data of the surface (use HTML5 Canvas) </li></ul></ul><ul><ul><li>Scripting API is DOM-based—unlike Canvas </li></ul></ul>
    15. 15. SVG Example: IBM Diagrams on iPad Highly interactive diagram
    16. 16. HTML5 MultiMedia <ul><li>Video & Audio </li></ul>
    17. 17. Video element <ul><li>Embeds video playback into a page </li></ul><ul><ul><li>Can specify multiple <source> tags for fallback formats </li></ul></ul><ul><li>Server-side must be configured to serve video files with correct MIME types </li></ul><ul><ul><li>video/ogg .ogv </li></ul></ul><ul><ul><li>video/mp4 .mp4 </li></ul></ul><ul><ul><li>video/webm .webm </li></ul></ul><ul><li>Video formats include encoded audio and video streams </li></ul><ul><ul><li>.mp4 = H.264 + AAC </li></ul></ul><ul><ul><li>.ogg/.ogv = Theora + Vorbis </li></ul></ul><ul><ul><li>.webm = VP8 + Vorbis </li></ul></ul>< video >   < source src=&quot;movie.mp4&quot; type='video/mp4; codecs=&quot;avc1.42E01E, mp4a.40.2&quot;' />   < source src=&quot;movie.webm&quot; type='video/webm; codecs=&quot;vp8, vorbis&quot;' /> </ video >
    18. 18. Video element <ul><li>Limitations </li></ul><ul><ul><li>Safari does not support WebM </li></ul></ul><ul><ul><li>Internet Explorer < 9 requires alternative plugins </li></ul></ul><ul><ul><ul><li>Chrome frame: / </li></ul></ul></ul><ul><ul><ul><li>Flash (.flv) </li></ul></ul></ul><ul><ul><li>Emerging api ’ s for video/audio capture expected to be implemented soon in browsers </li></ul></ul><ul><li>API ’ s allow scripted control over video playback </li></ul><ul><li>With HTML5, video content can be manipulated by CSS, Canvas and SVG api ’ s </li></ul><ul><ul><li>Including CSS3 advanced effects (reflections, masks, gradients, transforms, transitions, animations) </li></ul></ul><ul><ul><li>Draw on a video with Canvas or SVG, capture frames as images </li></ul></ul><ul><ul><li>Apply SVG filter effects </li></ul></ul>
    19. 19. Audio element <ul><li>Embeds audio playback into a page </li></ul><ul><ul><li>Can specify multiple <source> tags for fallback formats </li></ul></ul><ul><li>Server-side must be configured to serve audio files with correct MIME types </li></ul><ul><li>Audio formats vary by browser </li></ul>< audio controls preload =“auto” autobuffer > < source src =” foo.wav ” / > < source src =“ foo.ogg ” /> This browser does not support audio. </ audio > Browser MP3 Ogg (Vorbis) WAV FF3.6+ ✓ ✓ Safari 5 ✓ ✓ Chrome 6+ ✓ ✓ Opera 10.5+ ✓ ✓ IE9 ✓ ✓
    20. 20. Audio element <ul><li>Older browers need fallback option, and HTML5 audio features support may vary </li></ul><ul><ul><li>Check for HTML5 audio, fallback on Flash </li></ul></ul><ul><ul><li>Check level of HTML5 audio support, adapt app accordingly </li></ul></ul><ul><ul><li>Check supported file types, link to appropriate formats </li></ul></ul><ul><li>Script can control Audio content options & playback </li></ul><ul><ul><li>play() </li></ul></ul><ul><ul><li>pause() </li></ul></ul><ul><ul><li>canPlayType() </li></ul></ul><ul><ul><li>buffered() </li></ul></ul>
    21. 21. HTML5 WebSocket <ul><li>Defined in the W3C HTML5 specification </li></ul><ul><li>Allows full-duplex communication </li></ul><ul><li>Allows binary data transfer </li></ul><ul><li>Achieves goals of Comet http transport without the “hacks” </li></ul><ul><ul><li>(We’ll talk about this later in the presentation) </li></ul></ul><ul><li>Incomplete spec and browser support , still lots of specification adjustments being made for security, proxies, performance…will improve in 2011/2012 timeframe </li></ul>
    22. 22. HTML5 Drag and Drop <ul><li>An API for supporting drag and drop in web applications </li></ul><ul><ul><li><div id=&quot;columns&quot;> </li></ul></ul><ul><ul><li>  <div class=&quot;column&quot; draggable=&quot;true&quot;><header>A</header></div> </li></ul></ul><ul><ul><li>  <div class=&quot;column&quot; draggable=&quot;true&quot;><header>B</header></div> </li></ul></ul><ul><ul><li>  <div class=&quot;column&quot; draggable=&quot;true&quot;><header>C</header></div> </li></ul></ul><ul><ul><li></div> </li></ul></ul><ul><li>Events </li></ul><ul><ul><li>dragstart, drag, dragenter, dragleave, dragover, drop, dragend </li></ul></ul><ul><li>Can specify styling for drop targets and avatars via CSS </li></ul><ul><li>Also supports dragging files from the desktop to the browser! </li></ul>
    23. 23. HTML5 Offline Web Applications <ul><li>Contains several features that help with building web apps that work while offline or disconnected from a network. </li></ul><ul><li>App Cache </li></ul><ul><ul><li>Your html: </li></ul></ul><ul><ul><ul><li><!DOCTYPE HTML> </li></ul></ul></ul><ul><ul><ul><li><html manifest=&quot;cache-manifest&quot; > </li></ul></ul></ul><ul><ul><ul><li>... </li></ul></ul></ul><ul><ul><li>cache-manifest (text file): </li></ul></ul><ul><ul><ul><li>CACHE MANIFEST </li></ul></ul></ul><ul><ul><ul><li>index.html </li></ul></ul></ul><ul><ul><ul><li>src.js </li></ul></ul></ul><ul><ul><ul><li>style/default.css </li></ul></ul></ul><ul><ul><ul><li>NETWORK: </li></ul></ul></ul><ul><ul><ul><li>server.cgi </li></ul></ul></ul>
    24. 24. HTML5 Offline Web Applications <ul><li>online/offline Window events & status </li></ul><ul><ul><li>var online = navigator.onLine; </li></ul></ul><ul><li>Web Storage API </li></ul><ul><li>localStorage, sessionStorage {objects} </li></ul><ul><ul><li>length – number of k/v pairs in the storage </li></ul></ul><ul><ul><li>key(n) – name of the nth key in the list </li></ul></ul><ul><ul><li>getItem(key) – clone of the current value at key, or null </li></ul></ul><ul><ul><li>setItem(key,val) – clone value and set value at given key </li></ul></ul><ul><ul><li>removeItem(key) – removes item at given key or noop </li></ul></ul><ul><ul><li>clear() – empty all key value pairs </li></ul></ul><ul><li>Good browser support: </li></ul><ul><ul><li>IE8+, FF3.5+, Safari 4+, Chrome 4+, iOS 2.0+, Android 2.0+, Opera 10.5+ </li></ul></ul>
    25. 25. HTML5 Indexed DB & older SQL DB <ul><li>Two separate proposals for local database access </li></ul><ul><ul><li>Indexed DB </li></ul></ul><ul><ul><ul><li>Indexed DB current spec frontrunner </li></ul></ul></ul><ul><ul><ul><li>Implemented by </li></ul></ul></ul><ul><ul><ul><ul><li>FF, IE </li></ul></ul></ul></ul><ul><ul><li>Web SQL DB </li></ul></ul><ul><ul><ul><li>Spec at an impasse due to inconsistent specification of SQL grammar, and reliance on single vendor implementation (SQLLite) </li></ul></ul></ul><ul><ul><ul><li>Implemented by </li></ul></ul></ul><ul><ul><ul><ul><li>Safari 4+, Chrome 4+, Opera 10.5+, iOS3.0+, Android 2.0+ </li></ul></ul></ul></ul>
    26. 26. CSS3 <ul><li>C ascading S tyle s heets v3 </li></ul>
    27. 27. What is CSS3? <ul><li>CSS3 – “ Cascading Style Sheets ” </li></ul><ul><ul><li>A style sheet language allowing content authors to attach styles (colors, fonts, layout, etc.) to elements of structured documents such as HTML </li></ul></ul><ul><ul><li>Separates the presentation style from the content of documents. </li></ul></ul>This is the content Uses default browser style if none specified CSS CSS CSS3 Styles content, allowing different appearances for the same content CSS3 Styles content, allowing different appearances for the same content
    28. 28. CSS3 Overview <ul><li>CSS3 is not a single specification </li></ul><ul><ul><li>Collection of specification modules (sub-specifications) </li></ul></ul><ul><ul><ul><li>Effort began in 2001, work toward CSS3 continues to date </li></ul></ul></ul><ul><ul><ul><li>Each in varying degrees of completeness </li></ul></ul></ul><ul><li>Like HTML5, CSS3 is not final and may not be for a long time </li></ul><ul><ul><li>Each of the sub-specifications are in varying degrees of completeness </li></ul></ul><ul><li>Much of CSS3 is implemented consistently in modern browsers </li></ul><ul><ul><li>But still have to design for graceful degradation </li></ul></ul><ul><ul><li>Often need to use browser-qualified variations of “ standard ” features </li></ul></ul><ul><ul><ul><li>Because the browsers are innovating </li></ul></ul></ul>
    29. 29. CSS3 Modules (Candidates & Working Drafts) <ul><li>Basic User Interface </li></ul><ul><li>Backgrounds & Borders </li></ul><ul><li>Cascading & inheritance </li></ul><ul><li>Media Queries </li></ul><ul><li>Font </li></ul><ul><li>Box Model </li></ul><ul><li>Marquee </li></ul><ul><li>Text </li></ul><ul><li>Column </li></ul><ul><li>Color </li></ul><ul><li>Flexible Box Layout </li></ul><ul><li>Transitions </li></ul><ul><li>Grid Positioning </li></ul><ul><li>Outline </li></ul><ul><li>3d/2d Transform </li></ul><ul><li>Generated Content </li></ul><ul><li>Line Box </li></ul><ul><li>Hyperlink </li></ul><ul><li>Positioning </li></ul><ul><li>Ruby </li></ul><ul><li>Paged Media </li></ul><ul><li>Selectors </li></ul><ul><li>Table </li></ul><ul><li>Speech </li></ul><ul><li>List & Markers </li></ul><ul><li>Animations </li></ul>
    30. 30. Getting the Broadest Reach <ul><li>Working with incomplete standards and older browsers </li></ul>
    31. 31. Working Around Limitations of CSS LESS – Dynamic Stylesheet Language Variables Mixins Developed by Alexis Sellier
    32. 32. LESS - Examples <ul><li>Dojo is currently refactoring it's themes to leverage LESS </li></ul><ul><li>Starting with dijit and then onto themes </li></ul><ul><li>Makes it easy to create custom themes based on an existing theme </li></ul>
    33. 33. Dojo & HTML5
    34. 34. Dojo Toolkit <ul><li>Dojo is an Open Source JavaScript toolkit written in JavaScript. It consists of many libraries which are commonly needed in RIA and Mobile Web application development </li></ul><ul><ul><li>HTML/CSS Query and Manipulation </li></ul></ul><ul><ul><li>Animation & Effects </li></ul></ul><ul><ul><li>Widget Framework </li></ul></ul><ul><ul><li>Rich Set of Desktop Widgets </li></ul></ul><ul><ul><li>Rich event handling system </li></ul></ul><ul><ul><li>General purpose libraries </li></ul></ul><ul><ul><li>Several other utilities </li></ul></ul><ul><ul><li>Math, XML to JS parsing, etc… </li></ul></ul><ul><li>Helps smooth cross-browser inconsistencies (desktop and mobile) </li></ul><ul><li>IBM supported via Web2.0 & Mobile Feature Pack for WebSphere </li></ul>
    35. 37. What is Dojo GFX? <ul><li>JavaScript API for cross-browser graphics </li></ul><ul><ul><li>Write graphics application once, run on many renderers </li></ul></ul><ul><li>Supports for HTML5 Graphics: SVG, Canvas </li></ul><ul><ul><li>Also works on older non-HTML5 desktop browsers </li></ul></ul><ul><ul><ul><li>VML, Silverlight, and SVGWeb(Flash) </li></ul></ul></ul><ul><li>Based on SVG concepts, but JavaScript—not XML </li></ul><ul><ul><li>Geometry, shapes, transformation matrices </li></ul></ul><ul><ul><li>Stroke, fill, fonts, other visuals </li></ul></ul><ul><ul><li>Surfaces and groups </li></ul></ul><ul><ul><li>Interactive (events) </li></ul></ul><ul><li>Optional SVG to JSON import/export conversions </li></ul><ul><ul><li>Can send user-created drawings to the server </li></ul></ul>
    36. 38. HTML5 Data Attributes – Declarative Markup <ul><li>In Dojo 1.6, parser support for HTML5 ’ s Data-Attributes has been added </li></ul><ul><ul><li>Compatible with older Dojo parser (dojoType attributes) </li></ul></ul><ul><ul><li>Validates with HTML5 validators </li></ul></ul><ul><ul><li>This will be the preferred declarative style in Dojo 2.0 </li></ul></ul><ul><li>data-dojo-config </li></ul><ul><ul><li><script src=&quot;dojo.js&quot; data-dojo-config=&quot;parseOnLoad: true, isDebug: true&quot;></script> </li></ul></ul><ul><li>data-dojo-* for widgets </li></ul><ul><ul><li>< div data-dojo-type=&quot;dijit.Dialog&quot; data-dojo-props='title:&quot;My Dialog&quot;, </li></ul></ul><ul><ul><li>     onFocus:function(){ /* a focus event handler */ }' </li></ul></ul><ul><ul><li>     data-dojo-id=&quot;myDialog&quot;> </li></ul></ul><ul><ul><li></ div > </li></ul></ul><ul><li>data-dojo-event replaces <script type= “ dojo/method ” > scripts </li></ul>
    37. 39. Dojo Object Store API <ul><li>Added in Dojo1.6 </li></ul><ul><li>Based on HTML5 IndexedDB object store API </li></ul><ul><li>Greatly simplifies the construction and use of data stores </li></ul><ul><li>Follows HTTP/REST naming conventions </li></ul><ul><li>Key philosophies </li></ul><ul><ul><li>Separate UI from data </li></ul></ul><ul><ul><li>Keep it simple </li></ul></ul><ul><ul><li>Plain JavaScript Objects </li></ul></ul><ul><ul><li>Promise based </li></ul></ul><ul><ul><li>Simple feature discovery </li></ul></ul><ul><ul><li>Layered functionality </li></ul></ul>
    38. 40. Dojo Object Store API – Simple Example <ul><li>Added in Dojo1.6 </li></ul><ul><li>var product = myStore.get( “ fruit ” ); </li></ul><ul><li>var name =; </li></ul><ul><li> = “ New name ” ; </li></ul><ul><li>myStore.put(product); </li></ul>
    39. 41. Comet <ul><li>Develop event-driven web applications </li></ul><ul><li>Deliver data from server to the client at any time “Push” </li></ul><ul><li>High frequency (seconds, not minutes) </li></ul><ul><li>Runs over existing HTTP network/ports and on older browsers </li></ul><ul><li>Requires server backend that makes efficient use of threads </li></ul><ul><li>Improve speed and scaling over traditional Ajax polling </li></ul><ul><li>Various “implementation techniques” have been used to achieve the push event effect, because html/http not designed for this </li></ul><ul><ul><li>Forever Frame </li></ul></ul><ul><ul><li>Long-polling </li></ul></ul><ul><ul><li>Callback-polling or JSONP-Polling </li></ul></ul>
    40. 42. Comet Use <ul><li>Google Talk </li></ul><ul><li>Meebo </li></ul><ul><li>Facebook Chat </li></ul><ul><li>Many more... </li></ul>
    41. 43. XHR Streaming <ul><li>Continuous connection </li></ul><ul><li>Messages can come at any time </li></ul><ul><li>Streaming supported on non-IE browsers </li></ul>
    42. 44. Rational Application Developer 8.0.2 Web2.0 Feature Pack Integration
    43. 45. Web 2.0 & Rich Internet Application Tools <ul><li>HTML5, CSS3, JavaScript tools </li></ul><ul><ul><li>JS syntax highlighting, content assist, validation, outline, refactoring </li></ul></ul><ul><li>Dojo tools </li></ul><ul><ul><li>JS+HTML source content-assist, validation for Dojo widgets, APIs </li></ul></ul><ul><ul><li>WYSIWYG design view </li></ul></ul><ul><ul><li>Palette items, property views, events view, class wizard </li></ul></ul><ul><ul><li>Custom widgets – wizard, content-assist, validation </li></ul></ul><ul><ul><li>Preview server </li></ul></ul><ul><ul><li>Custom Build Tools </li></ul></ul><ul><ul><li>Project management </li></ul></ul><ul><li>Multi-browser support </li></ul><ul><ul><li>IE, Firefox previews </li></ul></ul><ul><li>CSS style creation, validation </li></ul><ul><li>JSON editing </li></ul><ul><li>JavaScript debugging </li></ul><ul><ul><li>Firebug integration </li></ul></ul><ul><li>iWidget tools </li></ul><ul><li>JAX-RS tools </li></ul><ul><ul><li>Project setup support for any JAX-RS implementation </li></ul></ul><ul><ul><li>Editor support for JAX-RS annotations, to guide developers usage </li></ul></ul><ul><ul><ul><li>Also includes validation with the JSR-311 specification </li></ul></ul></ul><ul><ul><li>JAX-RS Quick Fixes for java code, and the web.xml file </li></ul></ul>
    44. 46. Project Explorer Browse project resources, including JavaScript libraries Page Designer HTML page editing, syntax highlighting, content-assist validation. Split view with browser preview. Widget palette HTML controls and Dojo widgets for easy drag-n-drop to page. Properties view Easily set HTML and Dojo widget properties Services view Explore existing services and bind to Dojo widgets Project Setup Configure your project for how you wish to access Dojo HTML5 and CSS3 support
    45. 47. New Dojo Widget Wizard Makes it easy to create custom widgets Custom widgets automatically appear in palette Dojo Build Tools Create a custom Dojo build for improved performance Browser Preview Preview pages with either Internet Explorer or Firefox to identify cross-browser issues Ajax Test Server Built-in fast, lightweight server for testing during development JSON editor
    46. 48. Line stepping is synchronized JavaScript call stack Variables
    47. 49. Maqetta Open Source Visual Tools for HTML5 IBM Confidential
    48. 50. Visual authoring of HTML5 user interfaces IBM Confidential Drag/drop widgets from widget palette onto design canvas A key Maqetta feature is bidirectionality between visual editing and source editing. Users can edit in either WYSIWYG view, source view or split view shown above) and changes instantaneously reflect in the other view. Adjust visual styling (“pixel tweaking”) in the Properties palette. Designers can organize their UI prototype into distinct panels (referred to as “states” in Maqetta) where certain elements appear and disappear depending on the current state. Runs in browser (zero install)
    49. 51. Toughest Problems <ul><li>Scaling apps to enterprise level </li></ul><ul><ul><li>Modularity, dependencies & organization </li></ul></ul><ul><ul><ul><li>HTML </li></ul></ul></ul><ul><ul><ul><li>CSS on large scale apps “OOCSS, LESS” </li></ul></ul></ul><ul><ul><li>Supporting the web browsers (not just the latest) </li></ul></ul><ul><ul><ul><li>API stability, ability to fill gaps on older browsers </li></ul></ul></ul><ul><ul><ul><ul><li>HTML5, CSS3 great, but what about IE7/8? </li></ul></ul></ul></ul><ul><ul><ul><li>Test matrix – expands with mobile </li></ul></ul></ul><ul><ul><li>Loading minimal code, targeted to specific client agent (browser) </li></ul></ul><ul><ul><li>Keeping instant access </li></ul></ul><ul><ul><li>Scaling organization & skills </li></ul></ul><ul><ul><ul><li>Standards help </li></ul></ul></ul><ul><ul><ul><li>Tools are mandatory </li></ul></ul></ul>
    50. 52. We love your Feedback! <ul><li>Don’t forget to submit your Impact session and speaker feedback! Your feedback is very important to us, we use it to improve our conference for you next year. </li></ul><ul><li>Go to from your mobile device </li></ul><ul><li>From the Impact 2011 Online Conference Guide; </li></ul><ul><ul><li>Select Agenda </li></ul></ul><ul><ul><li>Navigate to the session you want to give feedback on </li></ul></ul><ul><ul><li>Select the session or speaker feedback links </li></ul></ul><ul><ul><li>Submit your feedback </li></ul></ul>
    51. 53. Copyright and Trademarks © IBM Corporation 2011. All Rights Reserved. IBM, the IBM logo, and are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at