[Topic] Client Design

I was looking at the source for the client and was intrigued the design. What motivated you to design object properties as you did? It's the first time I am seeing this kind of design.

—Posted by Samer Kanjo on Dec 4, 2007

I can't say I've seen an equivalent design either, but I had particular objectives that eventual led to the approach.

It was always intended that the client/server interface would be minimal and simple, and potentially compatible with other languages and environments. To that end, I wanted to support XML-RPC and JSON-RPC protocols. To ease the implementation of those protocols, I wanted data objects that could be easily transformed into those object formats.

Additionally, I wanted to be able to dynamically map object fields to database columns for load/save operations. The resulting design lends itself to this use.

I wanted the objects to have flexibility to store read/write permission on all of their fields.

And I needed objects that provided deep-equals and cloneability.

Ultimately, the implementation could be described as semi-dynamic/semi-static data objects. I enjoy the flexibility of high-level interpreted languages, but also appreciate compile-time checking, and tried to come up with a powerful data object that satisfied my needs, and provided relative simplicity in adding fields and creating new object types.

—Posted by Adam Lane on Dec 4, 2007 at 3:30:38 PM


You may post a reply to this topic, but you must be logged in. If you already have an account, you may login now. If you need to create an account, you may also register now.