<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Rich Internet Apps</title><link>http://hinchcliffe.org/category/13.aspx</link><description>Rich Internet Apps</description><managingEditor>Dion Hinchcliffe</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Dion Hinchcliffe</dc:creator><title>The state of RIA moves forward: Ajax, Silverlight, and JavaFX</title><link>http://hinchcliffe.org/archive/2007/12/23/16592.aspx</link><pubDate>Sun, 23 Dec 2007 15:33:00 GMT</pubDate><guid>http://hinchcliffe.org/archive/2007/12/23/16592.aspx</guid><wfw:comment>http://hinchcliffe.org/comments/16592.aspx</wfw:comment><comments>http://hinchcliffe.org/archive/2007/12/23/16592.aspx#Feedback</comments><slash:comments>360</slash:comments><wfw:commentRss>http://hinchcliffe.org/comments/commentRss/16592.aspx</wfw:commentRss><trackback:ping>http://hinchcliffe.org/services/trackbacks/16592.aspx</trackback:ping><description>&lt;img align="right" src="http://hinchcliffe.org/img/ria_masterclass.002.png"&gt;&lt;p&gt;I've just returned from Europe after delivering our new three day masterclass on Web 2.0 combined with the very latest in Rich Internet Application techniques for Web application development. We tried to create a highly innovative learning event that covered the latest in Internet design patterns and business models while at the same time tying tightly it with execution at the architecture and technology level.  After covering Ajax fundamentals and then adding in an injection of the very latest cutting edge RIA technologies from Microsoft and Sun, I believe we delivered one of the most leading-edge, fast-moving, and educational three days of high concept and hands-on Web application development.&lt;/p&gt;
&lt;p&gt;Delivering on this vision required a serious review of the latest alpha and beta code drops for Silverlight 1.1/2.0 and JavaFX as well as a deep dive into ASP .NET Ajax.  We found that these RIA platforms and frameworks are really starting to get ready for prime time even in their "under construction" state.  The capabilities that are germinating in these new platforms are fascinating and are clearly poised to move the RIA industry state-of-the-art forward significantly.  This is the story of what we learned along the way...&lt;/p&gt;
&lt;p&gt;Lately, we've been struck by the challenge in the magnitude of the diversity in knowledge that must be acquired and mastered before one can deliver online offerings that are successful, much less highly competitive.  The Web is currently the world's the best place to create and offer an online software product and lack of potent RIA approaches were one of the key missing ingredients that held back the potential of genuine online software applications.  Furthermore, the real upside potential of the Web is scale and more scale to a readily accessible audience of many hundreds of millions of potential users.  The delivery models are now just about here while the audience and demand continues to grow (SaaS, or Software-as-a-service, is on target to be the dominant software model by 2011/2012.)&lt;/p&gt;
&lt;p&gt;The challenge currently is creating RIA applications that can deliver in terms of a competitive user experience while still enabling the other key aspects of Web apps that drive their success.  These key aspects including ensuring a strong &lt;a href="http://web2.socialcomputingmagazine.com/web_20s_real_secret_sauce_network_effects.htm"&gt;network effect&lt;/a&gt;, turning the Web app into an reusable 3rd party platform via open APIs, avoiding the various standard issues with RIAs (loss of SEO, poor GUI conventions, significant reductions in page views, etc.) and last but far from least, a workable long-term business model beyond tons of unmonetized traffic.&lt;/p&gt;
&lt;p&gt;&lt;img align="right" src="http://hinchcliffe.org/img/ria_masterclass.001.png"&gt;The masterclass itself included a half-day of heavy duty Web 2.0 principles and then 2.25 days of intensive RIA study.  The Web 2.0 portion focused on the main principles as originally espoused by O'Reilly Media when they defined the term and which also forms of the backbone of our popular strategic &lt;a href="http://web20university.com"&gt;Web 2.0 University&lt;/a&gt; courses.  We then consistently tied back the strategic principles to the discussions of the various RIA approaches (Ajax, Silverlight, and JavaFX), such as discussing &lt;a href="http://blogs.zdnet.com/Hinchcliffe/?p=80"&gt;widget delivery models&lt;/a&gt; for RIAs and organizing Web applications around a true Web-Oriented Architecture (WOA) with granular URLs/URIs and creating an applications public and private APIs in &lt;a title="" href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm" &gt;REST&lt;/a&gt; or JSON form.  In formal Web 2.0 terms, this is the &lt;em&gt;Lightweight Programming and Business Models principle&lt;/em&gt;, which can really help technical folks begin to map the overarching ideas to specific patterns and practices.  We also had a good group of experienced developers as students, most with some RIA experience, which allowed us to really kick the tires on these technologies.  Finally, we also said we'd create RIA scorecard at the end of the course to see how capable the class as a whole found these various RIA technologies for building Web 2.0 apps.  So far so good...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Web-Oriented Architecture (WOA) in support of RIA architectures was a fundamental concept that we revisited repeatedly in the masterclass.  Read an &lt;a href="http://blogs.zdnet.com/Hinchcliffe/?p=27"&gt;intro to WOA&lt;/a&gt; as well as our &lt;a href="http://hinchcliffe.org/archive/2006/08/05/8489.aspx"&gt;conception of WOA/Client.&lt;/a&gt;&lt;/strong&lt;/p&gt;
&lt;p&gt;The four RIA models that we covered and compared in-depth were 1) "bare metal" Ajax (without the assistance of a framework or library, 2) &lt;a href="http://asp.net/ajax/"&gt;ASP .NET Ajax&lt;/a&gt;, 3) &lt;a href="http://silverlight.net"&gt;Silverlight 1.0 and 1.1/2.0&lt;/a&gt;, and 4) Sun's &lt;a href="http://www.sun.com/software/javafx/index.jsp"&gt;JavaFX&lt;/a&gt;.  Given that &lt;a href="http://ajaxpatterns.org"&gt;AjaxPatterns.org&lt;/a&gt; currently lists over &lt;a href="http://ajaxpatterns.org/Frameworks"&gt;200 Ajax frameworks&lt;/a&gt;, picking the Ajax framework for the course came down to the practicality of time and we selected ASP .NET Ajax from Microsoft since we were already going to have the development tools in place for Silverlight, which are almost identical to the ones used for ASP .NET Ajax.  Some of you will ask why we didn't cover Flex or Flash, and the answer is mostly that we didn't have a request for it in this course.  We will be adding a &lt;a href="http://www.adobe.com/products/flex/"&gt;Flex and &lt;a href="http://openlaszlo.org"&gt;OpenLaszlo&lt;/a&gt; section shortly to this and bring it out to four total days that will cover the full gamut of the major ways to design and build an RIA.&lt;/p&gt;
&lt;h2&gt;Comparing and Contrasting Pure Ajax, ASP .NET Ajax, Siliverlight and JavaFx&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img align="right" src="http://hinchcliffe.org/img/ria_masterclass.003.png"&gt;&lt;p&gt;&lt;strong&gt;Pure Ajax&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Not for the faint of heart, building a Rich Internet Application with plain nuts-and-bolts Ajax requires fairly good working knowledge of a slew of browser technologies including the Document Object Model, JavaScript, DHTML techniques, XmlHttpRequest, timer management, CSS, and Web services/SOA/WOA.  While the most compact and high performance result can come out of this, most Web developers will be looking for at least some assistance to elide browser differences, provide a component model and useful components, and handle plumbing, infrastructure, and assist in debugging, which is still in a largely deplorable state in browsers, despite advances such as &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;Firebug&lt;/a&gt;.  Pure Ajax has a lot of draw however, since it's based on 100% open standards and does not tie you to anyone else's code or to any vendors or organizations (other than standards bodies.)  We had everyone build a "bare metal" Ajax application based on the &lt;a href="http://www.google.com/webhp?complete=1&amp;hl=en"&gt;Google Suggest concept&lt;/a&gt; to see what it's like to develop an RIA using only the capabilities that are built into every common browser today, and no external code, utilities, or libraries.  Most attendees felt this model was going to work best for embedded apps but that it required a lot of effort.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ASP .NET Ajax&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A powerhouse of an Ajax framework that I've been &lt;a href="http://hinchcliffe.org/archive/2005/09/18/2192.aspx"&gt;writing about&lt;/a&gt; for a few years now, this framework brings a distinctively Microsoft flavor to the Ajax arena.  Although ASP .NET Ajax has a competent set of controls and even a full Javascript base class library, the strength of this framework is that it's designed to solve some of the tougher issues in building dynamic applications that are fed by server-side APIs.  The UpdatePanel is the "crown jewel" of the ASP .NET Ajax framework (&lt;a href="http://dotnetslackers.com/articles/atlas/The_UpdatePanel_opened_what_happens_behind_the_scenes.aspx"&gt;a good overview here&lt;/a&gt;) that is so compelling that it even has its &lt;a href="http://dotnetslackers.com/articles/ajax/BookReviewAspNetAjaxUpdatePanelControl.aspx"&gt;own book&lt;/a&gt; on the subject.  The essential job of the UpdatePanel?  Specifically, handling the complexity of managing the updates of the visual elements of an Ajax application that are bound to remote Web services.  However, despite the rich functionality designed specifically to simplify the Ajax development process, the GUI editor for ASP .NET Ajax in Visual Studio 2008 is somewhat confusing for the new user and is one of the minor disappointments in an otherwise excellent Ajax product.  ASP .NET Ajax is fairly egalitarian in terms of browser support and the applications it generates run on most major browsers.  For the masterclass, we did an in-depth overview of the platform and built an application that used the UpdatePanel.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;img align="right" src="http://hinchcliffe.org/img/ria_masterclass.004.png"&gt;&lt;p&gt;&lt;strong&gt;Silverlight 1.0 and 1.1/2.0&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Microsoft has been working for years on a Flash competitor that will provide developers with a large set of options for developing capable and compelling RIAs.  While Siliverlight 1.0 only had basic capability in terms of simple animation and media support using Javascript as the primary scriptiong language, Siliverlight 1.1/2.0 (now officially version numbered as 2.0 &lt;a href="http://blogs.msdn.com/tims/archive/2007/11/29/silverlight-1-1-is-now-silverlight-2-0.aspx"&gt;a few weeks ago according to Tim Sneath&lt;/a&gt;) is a completely different animal.  Silverlight 2.0 offers a complete .NET common language run-time in the browser including managed versions of Javascript and Python that will compile to binary on client and run extremely quickly.  Obviously, by supporting Python (and Ruby as well, though not in the current alpha distribution) in the client, Silverlight's CLR in the browser now also support the Dynamic Language Runtime (DLR), making Silverlight have the richest support for RIA client-side languages currently available.  Of course, sporting a lightweight version of .NET and its libraries comes at some cost, particularly download and installation time, but it's surprising at how much they fit into a relatively small footprint that comes in at only a few megabytes.  Combine that will some of the neatest RIA apps I've seen (visit a few of these &lt;a href="http://blogs.msdn.com/tims/archive/2007/07/07/from-a-to-z-50-silverlight-applications.aspx"&gt;50 different Silverlight demo apps&lt;/a&gt;), and Silverlight is well positioned to offer high performance RIAs that provides the broadest set of developer choices as well as potential creative inputs.  Because it will ultimately support so many languages, libraries and code can be reused from a much broader source than has been possible before in RIAs.  Silverlight also has incredible tool support with nearly seamless integration fo Visual Studio 2008 for developers and Expression Blend 2 for designers, which can operate on the same files depending on what you work on: the code or the creative parts of a Silverlight application.  In the course, students used Visual Studio 2008 and Expression Blend 2 December Beta to create controls and applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;img align="right" src="http://hinchcliffe.org/img/ria_masterclass.005.png"&gt;&lt;p&gt;&lt;strong&gt;JavaFX&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Far from being left out of the emerging RIA story, Sun has created a very interesting new entry in the RIA space. Designed to leverage the full breadth and depth of the extremely mature and robust &lt;a title="Java" href="http://java.sun.com" &gt;Java&lt;/a&gt; platform, JavaFX is a scripting language that doubles as a declarative programming model.  With the express goal of making it significantly easier to create Rich Internet Applications than it is now with current Java technologies, JavaFX offers some serious productivity-oriented features including: A highly efficient Model-View-Controller (MVC) data binding construct in the scripting language itself, declarative event triggers for assertions and CRUD, and even some cutting edge features such as extents (a notation to let you see all class instances of a certain type) and other mechanisms that will give one some concerns about the sacrifice of long-term code maintenance to the altar of code efficiency, but it's a pretty well thought-out model.  You can see some of the &lt;a href="https://openjfx.dev.java.net/downloads.html#demos"&gt;JavaFX&lt;/a&gt; demo applications here.  For the masterclass, we examined an existing JavaFX application and explored how easy it was to declaratively modify the view of the RIA by changing the data model as well as add new features, triggers, and data bindings.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
While highly efficient Web development platforms have emerged in recent years -- such as the &lt;a href="http://web2.socialcomputingmagazine.com/ruby_on_rails_11_web_20_on_rocket_fuel.htm"&gt;rise of Ruby on Rails&lt;/a&gt; -- to show how much improvement there is to make to our often too general purpose programming environments, it's fascinating to see that the latest approaches, particularly Silverlight and JavaFX have explicit strategies that both focus on productivity-orientation as well as leveraging the vast existing sets of code, tools, and talent.  Declarative approaches are the clearly favored here too, and though procedural coding is also fully supported in ASP .NET Ajax, Silverlight, and JavaFX, much of what RIAs need in terms of design fits extremely well with the declarative model that harkens all the way back to HTML, which forms the pure Ajax duo of XHTML (declarative structure) and JavaScript (application behavior.)&lt;/p&gt;
&lt;p&gt;All in all, the state of the RIA is clearly getting ready to take a major stride forward in 2008 while the options for design Web 2.0 applications with RIA technologies continues to expand significantly.  The RIA scorecard that the inaugural class created showed there all four options have strengths in different areas with Silverlight currently taking the highest overall score.&lt;/p&gt;
&lt;p&gt;Note: For those of you that would like to hold a Web 2.0 Apps RIA Masterclass at your facility or attend one our public deliveries in 2008, &lt;a href="mailto:info@web20university.com"&gt;please contact us&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Help form a picture of the state of the RIA industry&lt;/h2&gt;
&lt;p&gt;Please take 60 seconds of your time and participate in the RIA survey below so we can get a sense of where things are going in the RIA industry.  Only participants (and the subscribers to the Hinchcliffe Advisory) will get a copy of the data, so it's worth your time, plus you can get a free subscription. Survey closes on January 31st, 2008 and the results will be issued in February.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://www.surveymonkey.com/s.aspx?sm=MFCsXmnW43O1W8jKam_2fSzA_3d_3d"&gt;&lt;img border="0" src="http://hinchcliffe.org/img/ria_survey.007.png"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://hinchcliffe.org/aggbug/16592.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>
