Day 1: Tutorials: Bonobo, the GNOME Component Model



George Lebl and Maciej Stachowiak from Eazel used their brand new "written on the plane" presentation tool hacked in Nautilus.

[picture]

Bonobo is a Component Model that was created for GNOME and it's layered on top of CORBA, and inspired after the microsoft COM layer. (A component model provides a way to activate objects dynamically, including some that didn't exist originally, and of course it's through a common interface).

Gnome originally used MICO (Mico Is COrba), but it was really slow, bloated and hard to compile, so Red Hat sponsored the writing of ORBit, which is a fast and lightweight replacement for Corba.

Corba, the Common Object Request Broker Architecture, is an object model with many advantages, which Bonobo benefits from, like transparent network objects, language independency, vendor independency, and it separates interface and implementation.
Because CORBA is hard to use, leaves many things unspecified, and is not a component model in itself, Bonobo tries to fill those gaps.

IDL, the Interface Definition Language supports Modules, basic types (short, int, long, long long, ...), interfaces (methods and attributes), and other things like typedefs, strucs, enums, sequences, and unions.

Bonobo controls allow for visual embedding of components. They are a powerful way to package high level widgets, they are pluggable and interchangable, similar to ActiveX controls, and they are used for pluggable apps like Nautilus and Evolution.

That's it for the random notes from their Tutorial. Unfortunately, since it's an "written on the plane talk", there aren't slides available that I know of. You can however learn more about Bonobo by checking out this web page from the Gnome web site.

[library] Picture library [back] Back to Main Page [next] Next page


[ms free site] Email
Link to Home Page

2001/01/27 (18:03): Version 1.0
2001/01/29 (00:46): Version 1.1. Added link to Bonobo info
2001/01/29 (13:14): Version 1.2. Fixed Bonomo typo (thanks Karsten)