Introduction ============ Welcome to the Envisage Project! The goal of the project is to provide a framework for building extensible, pluggable applications, and in particular (but not limited to!), extensible, pluggable applications for scientists and engineers. The project is really divided into 3 sub-projects:- 1) Core_ The Envisage Core, found in the top-level |envisage.api| package, defines the basic application architecture including the plugin and extension mechanisms. All of the other sub-projects are simply collections of plugins that are built on top of the core. 2) User Interface (UI) This is small (but hopefully expanding) set of plugins useful for building applications with (graphical) User Interfaces. It is found in the *envisage.ui* package (and its subpackages), and aims to provide functionality commonly required in this type of application including actions, menubars, toolbars, user preferences, wizards etc. One of the most useful plugins in this project is the Workbench_ plugin (found in the |envisage.ui.workbench| package) that helps you build a style of user interface that is often (but not exclusively) found in integrated development environments (IDEs). 3) Science/Enginneering This is the holy grail, and in truth, we haven't got much here yet, but the goal is to build up a set of plugins targeted towards scientific and engineering applications (data import/export, 2D/3D visualization etc). Before you read any further, we should point out that Envisage is based *heavily* on the excellent work that has been done in the Java community on frameworks such as OSGi_, Eclipse_ (which is built on top of its own OSGi_ implementation) and NetBeans_. Like these other frameworks, Envisage helps you build applications that are based on the concept of plugins. However, one of the main goals is to provide a simplified system so that applications and plugins can be written by scientists, engineers, and those people whose full-time job is *not* necessarily software development, hence a lot of work has gone into trying to satisfy the old adage of "make simple things simple, and complex things possible". It will obviously be up to you to judge if we succeeded! Getting Started --------------- The best way to get started is probably to take the time to read and digest the Core_ documentation and then work through the |Hello World| and `Message of the Day`_ examples. Despite being extremely simple, the examples introduce you to *all* of the fundamental concepts of Envisage, and the *real* applications that you build (which will hopefully be a lot more useful) will be built in exactly the same way. For definitions of the terminology used in Envisage, see the Glossary_ (although it will probably make more sense after going through the other documentation and examples first). .. _API: api/index.html .. _Core: core.html .. _Eclipse: http://www.eclipse.org .. _Glossary: Glossary.html .. _`Message of the Day`: message_of_the_day.html .. _NetBeans: http://www.netbeans.org .. _OSGi: http://www.osgi.org .. _Workbench: Workbench.html