aboutsummaryrefslogtreecommitdiffstats
path: root/doc/devel/preface.sgml
blob: fdaa824a8b7c9f0e9349a1bb8cc58b13bf39c133 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
  <preface id="introduction">
    <title>Introduction</title>

    <para>
      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.
    </para>

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

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

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

    <listitem>
      <para>
        Write applications that use the &Camel; mail library.
        This includes extending &Evolution;'s own mail component
        to perform additional functions.
      </para>
    </listitem>

    <listitem>
      <para>
        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.
      </para>
    </listitem>

    <listitem>
      <para>
        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.
      </para>
    </listitem>

    <listitem>
      <para>
        Modify the core &Evolution; code to add new features or
        change its architecture.
      </para>
    </listitem>
      </itemizedlist>
    </para>

    <sect1 id="organization">
      <title>Organization of this Guide</title>

      <para>
    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.
      </para>

      <para>
    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.
      </para>

      <para>
    &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.
      </para>
    </sect1>
  </preface>

<!--
Local variables:
mode: sgml
sgml-parent-document: ("evolution-devel-guide.sgml" "book" "book" "")
End:
-->