Note: This page refers to the development environment for old versions of Alfresco. The official developer documentation for Alfresco 5.0 is here: http://docs.alfresco.com/5.0/concepts/dev-for-developers.html
Back to Main Page
Alfresco Development Overview
Welcome to the Alfresco Developer Guide.
Terminology Guide - Alfresco Terminology
Alfresco Repository Architecture - Introductory overview of the Alfresco Repository Architecture (Owner: DC)
Alfresco JavaDoc - Index of available JavaDoc
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.
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 ecmarchitect.com which has recently been updated to include Alfresco 4 extensibility features and Share configuration.
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.
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
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.
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)
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
Specifications (XML Schema, WSDL etc)
WCM Developer Documentation