The SLICE Framework

The SLICE framework is a C#/.NET system that forms the "shell" of a set of applications. Each of these applications is given as an XML tree and a set of Python scripts; a recent addition is the option of using our own Java-like scripting language, XL, instead of Python. Virtually all the functionality the user sees in each application is determined by those scripts. This provides a maximum of adaptability.

On this page, we provide complete documentation of SLICE from the script writer's viewpoint. In principle, this will be enough to write a new SLICE application from scratch, although the script writer will certainly benefit from looking at existing applications. Documentation for the existing apps - both for users and script writers - is included in the web pages for those applications. Source code for those apps - that is, the XML document and Python (or, in some cases, XL) scripts - is included in the SLICE distribution.

The framework documentation is given in six parts, as follows. We recommend reading the first document, High-level architecture, and then the script documentation for one or more of the applications, before continuing.

High-level architecture: An overview of the architecture. New! Video tutorial:
A two-part tutorial on writing Slice extensions.
Part 1 (1 hr.)
Part 2 (1 hr.)
Scripting guide: Detailed explanation of the structure of an application's XML document, and documentation of the operations available for use in Python scripts.

Scripting example: A worked-out example showing the addition of a feature to one of the existing apps.

Script debugging: Tips on debugging. Mostly these are for debugging Python scripts, but some advice is helpful for XL scripts as well.

XL user's manual: Optional; read this if you want to try XL. It's still alpha. Some scripts included in the distribution are in XL; most have not been ported from Python yet. (In the future, we hope to enhance XL, and the bridge between Slice and XL, in ways that we cannot do with Python, so as to make it easier to develop and debug scripts.)

Tree drawing: A more formal version of the high-level architecture description (optional).

    Last updated on Mon Jun 22 15:22:28 CDT 2009 .