Developer Guide

Showing results for 
Search instead for 
Did you mean: 

Developer Guide

0 0 13K

Note: This page refers to the development environment  for old versions of Alfresco. The official developer documentation for Alfresco 5.0 is here:

Back to Main Page

Alfresco Development Overview

Welcome to the Alfresco Developer Guide.

The Basics

Terminology Guide - Alfresco Terminology

Alfresco Repository Architecture - Introductory overview of the Alfresco Repository Architecture  (Owner: DC)

Alfresco JavaDoc - Index of available JavaDoc

Development Environments

Alfresco SDK - A pre-bundled Software Development Kit for developing against Alfresco.  This option provides all you need to develop against Alfresco, including pre-built libraries, packaged source code & Javadoc, Eclipse projects and samples.  It's the easiest and quickest route to developing custom Alfresco plug-ins and clients.  An Alfresco SDK bundle is provided with each Alfresco release.

Alfresco SVN - Direct raw access to all of Alfresco's source and build artifacts.  Use this route if you wish to extend the Alfresco core framework or work on Alfresco bug fixes as it allows you to perform full re-builds of Alfresco itself.  The Alfresco SVN provides access to the latest work-in-progress developments.

Developer Runtime Configuration - Common Alfresco configuration options.

Alfresco on NetBeans - Outlines the steps required to checkout the Alfresco Subversion Repository and setup a full development environment on Netbeans.

Alfresco SDK on NetBeans - Describes the steps required to start developing with the Alfresco SDK using Netbeans

Alfresco on Eclipse - Outlines the steps required to setup a full development environment on Eclipse.

Maven Alfresco SDK - Provides documentation on how to develop Alfresco extensions and AMPs with Apache Maven2.

(Owner: DC)

Creating New Content Models

Data Dictionary Guide - Step by Step guide to defining and extending Content Types.

Integrity Checks - Describes the various configuration options around model integrity and the types of tests performed.

Constraints - Description of constraints and their applications to content model integrity.  This section provides a walkthrough on configuring the existing set of constraint classes.  It also covers writing your own custom constraint classes and utilizing them within your own custom content models.

There's a great tutorial on creating content models at which has recently been updated to include Alfresco 4 extensibility features and Share configuration.

(Owner: DH)

Creating new Workflows


Workflow Administration - Describes how to define and deploy your own custom 'advanced' workflow.  Please note: This capability is available from v1.4 onwards.

(Owner: DC)

Extending the Alfresco Web Client

Configuring the Web Client

Web Client Configuration Guide - Configuring the Web Client, config file structure and examples. (Owner: GC)

Customizing the Web Client

Web Client Customisation Guide - Examples of how the Web Client can be customised to meet your requirements.  (Owner: GC)

Externalised Client Actions - Explanation of the configurable actions framework.  (Owner: KR)

Template Guide - Writing templates for the client and repository templating components.  (Owner: KR)

URL Addressability - Content, space and document details client pages made available through direct URL access. (Owner: KR)

User Configurable Dashboards - How to define views within Alfresco Dashboards.  (Owner: KR)

Desktop Actions - Extend functionality on the Windows desktop. (Owner: GS)

Dialog And Wizard Framework - Explanation of the dialog and wizard framework added in 1.3. (Owner: GC)

Component Generator Framework - Explanation of the component generator framework used by the PropertySheet component. (Owner: GC)

Component Library - JSF Component Reference Guide. (Owner: GC)

AJAX Support - Explanation of the AJAX support present in the Web Client. (Owner: GC)

Sidebar - Explanation of the Sidebar and how to implement & configure sidebar plugins. (Owner: GC)

Developing Web Applications with the Surf Platform

The Alfresco Surf platform is a robust, enterprise-class web application and site assembly framework that bundles a full site construction object model and toolkit for building class-leading web applications.

Developing against the Alfresco Repository

Remote APIs

CMIS - Accessing the Alfresco repository via the Content Management Interoperability Services (CMIS) standard.  For most use cases this should be the first choice when accessing an Alfresco repository remotely.

RESTful API - Accessing the Alfresco repository via an Alfresco-proprietary RESTful API. Alfresco services are exposed via simple URIs, HTTP requests and responses.

Web Services API - A WSDL based API accommodating environments with a strong orientation to or dependency on SOAP services.  Given that CMIS (see above) provides a SOAP binding, this API is no longer recommended.

Scripting APIs

JavaScript API - Scripting the Alfresco repository via a rich object-oriented JavaScript API. Alfresco can be scripted via rules, actions and REST URLs and via direct Java API calls to the script services.  (Owner: KR)

PHP SDK - The PHP SDK provides native and remote access to the repository via a PHP API.  This also includes PHP templating and scripting capabilties in the repository. (Owner: RW)

Java Foundation APIs

Java Foundation API - An in-process Java API providing full access to the capabilities of the Alfresco Repository. (Owner: DH)

JCR API - An in-process Java API providing full JSR-170 Level 1 & 2 compliant access to the Alfresco Repository. (Owner: DC)

JSR-168 Portlets

Portlet Development - Some thoughts and sample code on developing portlets that interface with Alfresco.

Extending the Alfresco Repository

Repository Configuration - Repository Configuration.  (Owner: DH)

Multilingual Document Support - Multilingual concerns including internationalization and localization of both the repository and stored content.

Custom Actions - How to create custom actions.  (Owner: RW)

Returning Values From Actions - Details on how to return values from actions. (Owner: RW)

Scheduled Actions - How to schedule actions.  (Owner: AH)

Content Transformations - Writing and configuring a ContentTransformer  (Owner: DH)

Metadata Extraction Configuration (Owner: DH)

Alfresco Module Packages

AMP Files - What is an AMP file?

Module Management Tool - Managing installed modules in a WAR file.

Developing an Alfresco Module - Guidelines on how to develop your own Alfresco modules.

Developing an Alfresco Module with Maven2 - Guidelines on how to develop your Alfresco modules based an Apache Maven2 archetypes

(Owner: RW)

Specifications (XML Schema, WSDL etc)

Alfresco Namespaces

Coding Standards

(Owner: DC)

WCM Development

WCM Developer Documentation