5 items on »Developing Web Applications« tagged with

»helma«

Rumours about Rhino on Rails

It seems that some guys working at Google are using their 20% time for doing a ROR clone on Rhino. I would be interested if they know about the granddaddy of Rhino based web development framework Helma. Yeah, yeah ... in my dreams Google is pushing Rhino up the hill towards Javascript 2.0.

Jala is great!

The Helma guys really did a good job with this collection of modules. I am using the form, l18n and rss2.0 module as well as the hopobject extension at the moment. It's all very well documented and together with the db prototyping functionality of rocket, it's a breeze to create the basic input/output and modelling.

Rocket the Super Rabbit

Helma development boosted with an integrated prototyping approach.

Some time ago, I thought about adding more meta data to the type.properties, to have a kind of typing for Hop-Object properties. A few weeks ago, I stumbled over Rabbit. A nifty implementation of some prototyping functionality. Rabbit is great to build up your Helma App from scratch. But there are a few things I missed in Rabbit:
  • A kind of database abstraction (MySql support in specific)
  • More ellaborated form generation
  • Input validation (serverside as well as clientside)
  • Allow to build the central "Model" from different sources (Database, Existing-Sourcecode, JS-Object). Specifically: Use type.properties as a model definition
I also wanted an approach to blend more with the further development process or even existing applications. The idea is to have a prototyping engine, that delivers core functionality for Web-Frameworks while letting the user overwrite/replace/extend this functionality in later development stages. So I took the Rabbit-Code as a base but changed most parts to my need.

Here is a first "alpha" to be discussed/continued. Just try the sample application and see the code for further insights.

rocket source v.0.1 (1, 32 KB)

Features
  • Metadata for Hop Object prototypes
  • Automatic form/input generation
  • DB/Table generation (MySql)
  • Creation of the model from existing source
  • Creation of folders/type.properties from the model
  • Basic permission management/access control
  • Basic List / Object viewer

Urlpaths of collections with special chars

Helma automatically builds nice urlpaths for object collections. In most cases this works fine, but if you want to use ":" or "@" in the accessname of the object, the pathes becomes messed up. ":" is then escaped to "%3A" and "@" is ecaped to "%40".

Helma mapping limitations

Today I thought it would be nice to have an extendible item object. My plan was to use one db table for the parent-properties and to use referenced tables in which all specialized data should be stored. The easiest way (i thought) would be to use the key of the parent table also as reference for the foreign key on the specialized tables. Sadly it's not possible this way in Helma and it seems, that I have to use another key for that. The documentation says: The _id entry defines the column to use as primary key. Helma requires a single primary key with no other functionality. And it seems that the key used for references also mustn't have another functionality. As for that, the following is not possible:

_id = ITEM_ID
content = object(Content)
content.local = ITEM_ID
content.foreign = CONTENT_F_ITEM