Sunday, June 12, 2005

Backbase Community / Essential web page features

In response to my previous post, Ryan Brooks outlined his thoughts on Backbase. This is very useful feedback. One of the main points of his post was the need for more community. I could not agree more. As with most software, RIA/AJAX software becomes more useful once more people are using it. And especially at this moment there are an awful lot of frameworks popping up: just look at Michael Mahemoff's list of frameworks, which only mentions the open-source frameworks at this moment. So we need some critical mass, fast!

Community Edition

Luckily many thousands of people have downloaded the Backbase Community Edition in the first couple of days. Our servers are still alive, but we'll have to pay a hefty bandwidth fee at the end of the month. A fee we're happy to pay: the more downloads, the better. We're also happy to see users from all over the world: the US still has the biggest share, but our software is also especially popular in China. So we will continue to distribute the Community Edition to as many developers as possible.

Discussion forum

A couple of days after launching the Community Edition we opened up the Discussion Forum, and we're preparing some other initiatives. We're thinking about a code exchange, a best practices wiki, a mailing list, faq database, technical articles with code samples, tutorials, user groups, developer conferences, etc. Of course, this won't all happen overnight, but we will focus on steady improvement. Let us know which of these features will help you most, so we can fine tune our planning.

Essential web page features

A second topic of Ryan's article was focused web page features that you should get for free when you use AJAX (compared with Flash or Java applets). He discussed indexing by search engines, back- and forward buttons, permalinks and bookmarking. I'd like to add 'View Source' to this list.

Search Engines

Search Engine Optimization is indeed an area that requires some attention with AJAX applications that use a Single Page Interface (SPI), because there is a risk the search engine only finds the first page. On Backbase.com we're using a dual publishing model to avoid this problem: we use the same content files to publish both a rich single-page version and a plain multi-page version, which is indexed by bots. This requires some automation in the publishing process. As an alternative, the Backbase Tags allow you to use regular 'a href' links to load files with XMLHttpRequest: these links are also indexed by search engine spiders. In both scenarios, the search engine indexes 'pages' that are supposed to be part of an SPI. Therefore, some server-side logic is needed to convert these links to deeplinks that load the correct 'state' within the SPI. This topic will be covered in a 6-page technical article to be published in 1 or 2 weeks on the Backbase DevNet.

Backbase About Us page

Back-button and permalinks

This brings us to another topic Ryan mentioned: deep linking (with permalinks) and bookmarking. As I wrote in my previous post, we have some deeplinking support in Backbase.com. We are using URL parameters for this: for example, /devnet is rewritten as index.php?section=main_developers, which is parsed client-side: as a result, the Deck with ID 'main_developers' is selected. For people who haven't worked with Backbase: a Deck is a user interface concept similar to a stack of cards of which only the first one is visible. By selecting a card in a Deck, it is moved to the top, and becomes visible. This is what happens when the ID 'main_developers' is selected. The downside of using URL parameters is that the entire page is reloaded if we set a new parameter. An alternative is to use the pound sign (#), of which Tiddly Wiki makes good use: http://www.tiddlywiki.com/#UsingThisSite. At Backbase we are currently using the pound sign for Back/Forward support in Firefox: we could use a hidden frame for this, but this only works in Firefox when you are retrieving real pages from the server. In Internet Explorer you can retrieve 'virtual' pages by using the DOM, which is obviously faster. So maybe we could give users an option: either fast Back/Forward without permalinks, or somewhat slower Back/Forward with permalinks. If we build in this option, we should be able to support all scenarios.

"View Source"

An area that is getting more an more attention lately is 'View Source', which was one of the key factors in the rapid growth of the World Wide Web. Steve Yen makes the link to AJAX in this blog post, and there are probably many other relevant articles. Even the Macromedia guys now offer this feature, although developers have to specifically build this into their Flash applications, while it is a default feature of web applications. I think a potential problem with 'View Source' and AJAX is the large amount of JavaScript used. Also, in good AJAX applications the JavaScript code is encoded to limit the download size. So although you can view the source, it's pretty tough to make sense of it. The benefit of Backbase is that it is completely tag-based, so there is no need to look at JavaScript code. Looking at the source code of a Backbase application, you just look at Tags and you can quickly decipher the complete application. Give it a try with the deep-linking example in the previous paragraph: if you go to Backbase.com, do a View Source, then you find an <b:deck> tag, of which one of the <s:buffer> tags has the ID 'main_developers'. You can follow this link, etcetera.

wrapping up

So all in all this became a pretty long post: basically I just wanted to say we're growing the community, and all input and ideas are welcome. At the same time we take compatibility with the essential web page features very serious.

0 Comments:

Post a Comment

<< Home