Activate your free membership today | Log-in

Thursday, October 30th, 2008

Widgetplus: Server side Ajax widgets

Category: Framework, JavaScript

>

Mikael Bergkvist has created Widgetplus, a gadget platform. He told us about it.

XML Runtime

The structure of an application is defined in XML.

It’s loaded into the serverside runtime like this: javascript:xin.app(' http://www.naltabyte.se/desktop/xin/demo/programs/basics.xml ');

We get this as a result. (the ‘test this’ link)

Changes to the app remain persistent because on the server, the xml object has changed.

Of course, different users gets different versions of the same widget, because they have their own xml runtimes.

A widget can contain any amount of javascript to execute clientside, and also include any css to style it, like this calendar application.

A widget can also split itself into subsets, this example opens a new widget as a dialog, which is really a part of the same widget, and saves data back to itself from it.

XML objects can access each other on the server within the boundaries of the same account.

It means that widgets can access other widgets and send/recieve data from them.

Data can also be sent / retrieved cross domain, without opening the widget on the client at all.

The xml for this app in this example, which is behaving much like a webservice, is here.

File system access

Widgetplus allows complete filesystem access for a widget, but only within the user account.

By default, widgets always access the demo account, but when logged in, they access the users home account, it’s files and folders, and other settings.

This is crossdomain by default, like this example on Blogger, which accesses all files on the demo account.

There are several more ways this can play out:

The API lets anyone build their own solutions/variations of this.

Conclusion

These two parts, together, define what widgetplus is.

It’s a serverside xml runtime for widgets, which can access and manipulate files and folders that belong to the free user account.

Users can always sign up / log in to any widget (by default), the developer wont have to bother about that.

Widgetplus clones all widgets as soon as someone signs up, and also automatically creates a webspace directory for the new user with the default folders in place.

Otherwise, whenever someone logs in, it simply serves the requested xml object(s) associated with that user.

It’s important to note that widgetplus isn’t a BOX.net service, the webspace is for widgets – and whatever they do with it – it’s not for uploading your entire music collection. We will move to a server network in about two months, after which we plan to offer unlimited file storage, but for now, we need to keep a tight leach.

Related Content:

  • Ajax testing partnership formed
    Ajax applications can't be tested with existing Web testing tools because those tools normally can't handle the complexity of Ajax widgets and the...
  • Ajax for JMS console released
    Ajax4Jmx, which was released as part of the Google Widget Toolkit (GWT), stakes its claim as the first open source Ajax-enabled framework for building...
  • Putting Ajax into action
    This chapter from the book "Ajax in Action" deals with working off an Ajax...
  • GWT in Action: Working with Widgets - Chapter 4
    Widgets are the visible components of a GWT application. There are three fundamental building blocks of GWT applications, along with panels and...
  • Hot skills: ASP.net Ajax
    ASP.net Ajax is Microsoft's free framework for creating Ajax (Asynchronous Javascript and XML) web...

Posted by Dion Almaer at 2:30 am
2 Comments

++---
2.3 rating from 26 votes

2 Comments »

Comments feed TrackBack URI

>>a tight leach.

That’s not how you spell “leech.”

This seems neat, but I read the whole thing and can’t quite understand what’s going on. Am I right in assuming that my widgets (that I would make) live on their server?

Comment by Nosredna — October 30, 2008

No.

Comment by Mikael Bergkvist — November 2, 2008

Leave a comment

You must be logged in to post a comment.