Evolution Developer's Guide
<<< Previous Page | Home |  | Next Page >>>

# Introduction

This is the Evolution Developer's Guide or programming guide for the Evolution groupware suite. If you are a programmer and you wish to use Evolution's functionality from your own applications or if you wish to modify the Evolution core code, you should read this guide.

If you are an end-user of Evolution you do not need to read this guide; please read the Evolution User's Guide instead.

This guide contains the information you need to know to do the following:

- Write applications that use Evolution's data repositories via the Wombat personal information server. Examples of this would be a GNOME Panel applet that displays today's appointments, or a telephone dialer application that uses the contents of the Evolution Addressbook.

- Write applications that use the Camel mail library. This includes extending Evolution's own mail component to perform additional functions.

- Write new components for the Evolution Shell. Instead of writing a stand-alone application, you can provide your users with the benefit of having integrated views of their data from within Evolution.

- Write new modules for the Evolution Executive Summary. This allows you to present commonly-accessed information in a convenient fashion directly in the Evolution Shell.

- Modify the core Evolution code to add new features or change its architecture.

# Organization of this Guide

This guide is organized in two big sections. The first is a programming guide, which consists of one part for each one of Evolution's components: there are separate parts for the calendar, the addressbook, the mailer, the executive summary, and the shell. Each part gives a description of the architecture of its corresponding component, and also gives information about the component's internal architecture and some implementation details.

The second section of this guide is a reference guide for Evolution's programming interfaces. We have separated these into public and private interfaces. The public ones are those that most people will need to use when writing extensions or third-party components; the private interfaces are those used internally in Evolution. Even if you do not intend to modify the Evolution core code, it may be useful to know a bit about the way it is organized internally.

Evolution is free software, and we want you as a programmer to make the most of it. We have provided many useful interfaces that you can use in your own applications. Still, we want you to view Evolution as a framework for building groupware applications, and this may occasionally involve making changes to its core code. We want you to learn from Evolution's design because we think it marks an important milestone in the development of large-scale free software applications. We want you to modify it as you see fit. Free software gives you this freedom, and we want the whole world to benefit from it.

<<< Previous Page | Home |  | Next Page >>>
Evolution Developer's Guide | Developing Applications with the Evolution Calendar