Re: DataModel.cs



Hi,

BJörn Lindqvist wrote:
On 8/7/07, Havoc Pennington <hp redhat com> wrote:
Hi,

To get started on Tomboy I wrote DataModel.cs, which exposes the "Online
Desktop Engine" data model to C#. When you're done laughing at my C#
incompetence this is maybe a useful illustration of how the data model
works.

The protocol looks alot like LDAP. Is that a coincidence?

It's an object tree, and LDAP is also. However, LDAP would be:

 Desktop App -> [LDAP protocol] -> [LDAP Plugins] ->
  [LDAP Object Database]

while this is:

 Desktop App -> [DBUS] -> [ODE] ->
   [Arbitrary Custom Server-Side Code] ->
   [Relational Database]

We want the arbitrary custom server-side code, and we want to also use the data in the relational database to create web UI and APIs that use the same data.

In other words, we want application logic on the server side.

All the work here is in application logic, both client and server side.

Saying "it's just LDAP" is not meaningful because that implies the entire problem is storing data, and storing data is not the entire problem. (See my other post about why we can't just say "use WebDAV" - again, storing data is not the entire problem.)

I bet my hat
on that 99% of all components needed for online desktop already
exists. There is also REST
(http://www.xfront.com/REST-Web-Services.html) and JSON
(http://www.json.org) which could probably help with the HTTP part of
the protocol.

That is equivalent to saying that we already have 99% of OpenOffice.org because we have XML for the file format and we can do APIs in C++. You are saying we have Online Desktop because we have LDAP for data storage and REST/JSON for APIs.

Meanwhile, OpenOffice still requires 6 million lines of application logic on top of that stuff.

You still have to design the XML or LDAP schema, and you still have to design and implement the APIs, and then you have to use the schema and the APIs to write an app.

I would not characterize the application logic as 1% of the work!

Havoc



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]