Comments
litl_phil wrote: While it's nice that Google and Acer share the vision of cloud-based computing, it's also worth noting that we at litl already have a webbook on the market (available at litl.com) that runs our own cloud-based OS. Unlike Chrome, litlOS is focused on creating a new and better web experience for the home, so we don't have the usual browser interface, we have our own innovative UI. In conjunction with easel mode (litl's inverted-V position) and our growing cohort of litl channels (special apps t...
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..


2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
Everyone wants to lower their capital expenditures and increase operational efficiency - it's a sign of the times. The economy of the past 12 - 18 months has forced all organizations to do more with less and become more efficient. While everyone can identify with the request to do more with less, th...
SYS-CON.TV
Book Review: Advanced AJAX by Shawn M. Lauriat
"Advanced AJAX: Architecture and Best Practices" (Prentice Hall, 2008, 360p)

Brian Dillard's "Agile AJAX" Blog

Because AJAX moves so much application logic from the server to the client, it forces many developers to master a wider range of web technologies than ever before. To work effectively on AJAX projects, front-end developers have to concern themselves with database performance, business logic and other server-side concerns. Back-end and middleware developers, meanwhile, have to make friends with XHTML, CSS, JavaScript and a wide range of browsers.

Sure, it's possible to develop AJAX apps in a siloed team environment. But it's not the easiest way, and it rarely provides the strongest results.

Shawn M. Lauriat's "Advanced Ajax: Architecture and Best Practices" (Prentice Hall, 2008, 360p) bridges the gap between developers with exclusive client- or server-side skills. By exploring tools, technologies and best practices for every layer of the AJAX programming model, this solid new programming manual promises to plug the holes in any developer's resume. Lauriat's tops-to-tails approach offers something for almost any developer, but it also guarantees most readers will find some sections remedial. As this review will demonstrate, that's not necessarily a liability.

The book's first four chapters focus almost exclusively on the client-side technologies that are my own personal speciality. Lauriat's announces his goals early, shortly after pointing out the introductory nature of many existing AJAX books and tutorials:

"This book, instead, looks at using Ajax to create rich, browser-based interfaces for enterprise-level web applications, taking into account the flexibility, reusability, scalability, and maintainability necessary for such an undertaking. Ajax does not exist in this book as the latest and greatest acronym to hit web development. It instead exists as a tool like any other - extremely useful in some instances and totally wrong in others."

This focus on AJAX as a means rather than an end continues in the author's examination of user-focused application design:

"Ajax-based functionality fits best where it makes a given task easier for the user, rather than just replicating functionality easily achieved by simpler, faster-developed means. Using half a dozen JavaScript files, numerous CSS files, and several Ajax calls just to render a company home page uses a lot of time and memory for very little benefit to the user."

Having established his mission statement, Lauriat dives right into the specific technologies and approaches that client-side Ajax demands. He makes the case for semantic markup, web standards, progressive enhancement and accessibility in a way that should compute for server-side developers who may be encountering these concepts in depth for the first time. Advanced AJAX doesn't tackle these concepts to the level that, say, Jeffrey Zeldman would, but Lauriat doesn't scrimp on the real-world details. He provides compelling examples of the way high-contrast design, resizable page layouts, easily targeted controls and even the draft ARIA spec can enhance accessibility and usability for everyone, not just disabled users.

Once he's covered the basics of how to use client-side technologies appropriately, the author examines the specifics of client-side architecture. He explains JavaScript's object model and prototype-based inheritance with the appropriate level of detail for programmers better versed in Java or other server-side languages. Extensive code examples eschew jQuery and other AJAX frameworks, allowing readers to understand the nuts and bolts of cross-browser JavaScript development. Here, again, Lauriat displays a knack for providing neither too little nor too much detail. He discusses design patterns and strategies for abstraction just like he discusses Ajax itself: as tools rather than mandates. Readers with previous exposure to MVC architecture and event-driven programming should gain a better understanding of those techniques. Novices, meanwhile, should learn enough to understand the code samples and perhaps find their curiosity piqued for further study.

Having covered client-side technologies and architecture, Lauriat finally turns to development and debugging tools. Validators, browser consoles and plug-ins, profiles and unit-testing frameworks all get their due. Here, as elsewhere, Lauriat delves into the nitty-gritty of developing applications for IE, Safari, Firefox and Opera. He suggests tools and techniques for each browser environment without getting into political asides. As with the earlier chapters, I came away with a more complete, holistic understanding of topics in which I already considered myself well-versed.

Taken as a whole, the client-focused chapters of Advanced AJAX are worth skimming even for senior client-side developers. For programmers just getting acquainted with the UI layer, these chapters provide an extremely concise, yet thorough treatment of a huge number of important topics. I'm extremely impressed with Lauriat's book, and I haven't even gotten to the sections that will cover the most new ground for me personally.

The book's remaining chapters deal with everything from security and database optimization to server-side architecture and game development.

The server-side portion of Advanced AJAX uses PHP code to illustrate its many and varied lessons about AJAX architecture. It's not that I have anything against the popular web-development framework and scripting language. It's just that, after spending my career in the ASP Classic and JSP trenches and slowly ramping up on Rails in the last year, I'm not the ideal target audience for these code samples. Adding "PHP" to the title of the book might have limited its potential audience, but it also would have been more accurate.

That said, there's a lot of value here for adherents of any server-side framework. Lauriat discusses each topic from a general perspective before diving into the code. The technical approach to a given problem would obviously differ by framework, but the high-level approach wouldn't. If you don't mind skimming past the content that doesn't apply to you, Lauriat's advice about developing stable, scalable, accessible and secure AJAX applications transcends framework allegiance.

Chapter 5, "Performance Optimization," delves into database performance, caching, profiling and debugging. Chapter 6, "Scalable, Maintainable Ajax," covers everything from modular architecture to the concatenation of CSS and JavaScript files for faster deployment to the client. Lauriat covers the basics of MVC development in Chapter 7, "Server-Side Application Architecture." Security gets its due in Chapter 8, "Keeping a Web Application Secure." These chapters will make quick reading for anyone not interested in the lengthy PHP code samples, but the general principles are solid and worth taking to heart.

The book's final few chapters prove the most compelling for a general web-development audience. Lauriat devotes an entire chapter to documentation, coding standards, programming guides and style guides - including a look at JSDoc, the open-source, automated JavaScript documentation tool. But it's Chapter 10, "Game Development," that brings everything together. Lauriat uses PHP and cutting-edge client-side code (via the HTML 5 canvas element) to build Universe Conflict, an AJAX implementation of the venerable Space War! shooter game. Given that most example applications tend toward e-commerce or CRUD admin interfaces, it's refreshing to see Ajax employed for something frivolous and fun. That said, Lauriat convincingly demonstrates that games require the same architectural and security principles as any other application. The author closes with some final, high-level conclusions in Chapter 11.

Overall, Advanced AJAX proved to be a worthwhile read despite my lack of PHP mojo. Of its 11 chapters, 5 1/2 are full of examples that could be applied to any development framework, while the other 5 1/2 are full of sage advice that requires translation for non-PHP platforms.

The publisher has made a sample chapter of the book available on its website.


Full disclosure: The author received a free promotional copy of this book for review.

About Brian J. Dillard
Brian J. Dillard joined Pathfinder Development in August 2007 as RIA Evangelist. After 12 years of focusing on the view layer of large consumer web apps, his role at Pathfinder Associates is one of research, development and ongoing commentary. He prototypes new rich UI features; contributes to open-source and client projects; and otherwise helps build Pathfinder's competency in the AJAX world. Along with Pathfinder CTO Dietrich Kappe, Dillard contributes to the 'Agile Ajax' blog (http://blogs.pathf.com/agileajax). He is also the project lead on Really Simple History, a JavaScript library for AJAX bookmark and back-button management.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

SOA World Latest Stories
This coming Tuesday, December 8, at 2:00PM EST, SYS-CON.TV will be broadcasting live from its 4th-floor studio overlooking Times Square in New York City a very special "Power Panel" in which Cloud Computing Expo Conference Chair Jeremy Geelan and three top industry guests will be looki...
If you are like me, you are regularly receiving unsolicited email from various quarters, telling you about the latest and greatest SEO solutions on the planet. Just buy the book, or guide, or download the promotional whitepaper and this expert will offer you the latest "Secrets" to sea...
There's a lot of talk about how we need to focus on our buyers' issues and provide them educational insights to help them learn what they need to know to make buying decisions. Heck, I say it in my book...in several places, I think. I've said it on this blog, and I'll continue to say i...
This past weekend I set out explore some of the extension capabilities of Google Wave. One of the weaknesses that have been identified by many is the lack of integration with email. For me, in particular, because Wave is new, many Waves are being orphaned as those playing and testing o...
More good news for cloud computing! Google last week released its once mysterious Chrome Operating System to open source. Chrome OS, available in 2010 – is a web-based operating system that promises to boot up super-fast on a netbook – way faster than the time it takes to start your ba...
In CloudBerry Lab we are striving to make our customer service better. In this competitive market with the abundance of free offerings this is the only way to stay afloat. One of the ways to keep customers happy is to be very responsive when it comes to support request resolution. Shou...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE