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:


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.