-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating

Alfresco Developer Guide

Looking across both the basic and advanced customizations provides some idea about the extensibility of the platform. A commonly asked question at this point in the architecture discussion is, "Does Alfresco have an API?". Actually, it has several. Let's look at what APIs are available and where they are used. This should also give you some idea as to the tools and skills you'll need to have in your toolbox as you embark on your own projects.
The following table shows the APIs available and where they are used:
Alfresco API |
Where Used |
Comments |
---|---|---|
Foundation API |
Rule actions, behaviors, Java-based web scripts, web client customizations, jBPM, standalone applications that embed the Alfresco repository. |
As the name suggests, this is the core Alfresco API. Most of the work with this API involves writing Java in Plain Old Java Objects (POJOs) that are "wired in" to Alfresco via Spring- or JSF-managed beans. |
Web Services API |
Web and non-web applications that need remote access to the repository. |
Alfresco ships client-side classes for Java and PHP, but any language that can use SOAP-based web services can use this API to do almost everything the Foundation API can do. |
JCR API |
Web and non-web applications. Can be used remotely via the JCR-RMI bridge. |
JCR is a standard (JSR-170) Java API for interacting with content repositories. The JCR API does not have the full functionality of the Foundation API. |
FreeMarker API |
Custom views, mail templates, web script view logic, WCM presentation transformations. |
FreeMarker is an open source templating engine. |
AVMRemote API |
WCM presentation transformations, web applications. |
This API is specific to working with content stored in Alfresco WCM web projects. |
Web Script Framework |
Web and non-web applications that need to use REST to interact with the repository. |
More of a framework than an API, web scripts implement a Model-View-Controller (MVC) pattern that relies on the JavaScript, FreeMarker, and Foundation APIs. |
Flex API |
Web scripts, Flash components. |
Built on the web script framework, the Flex API is really a set of hooks that make it easier to use Adobe's Flex tools to build Rich Internet Applications (RIAs) on top of Alfresco. |
Facebook API |
Web scripts, social networking applications. |
Similar to the Flex API, the Facebook API is a set of web scripts that make it easier for Alfresco-based web scripts to make calls to the Facebook API. |
As the list of APIs shows, knowing Java will be the key to just about any successful customization effort. FreeMarker and JavaScript are important, but are easily picked up using Alfresco's code and online resources as references.
Alfresco has a vision for a web client with a much richer interface. At one point, the plan was to build the web client entirely with Adobe Flex. Alfresco has since backed off that approach. It is more likely that Flash components will be added where it makes sense.
From a skills standpoint, it is still uncertain how deep Flex skills will need to be to customize Alfresco as it evolves into a richer interface. Hopefully, Alfresco will abstract the configuration and customization of the Flex-based components such that clients can get it without Flex skills. If that doesn't happen, it should be fairly easy for anyone with knowledge of JavaScript and XML to pick up Flex skills.
Change the font size
Change margin width
Change background colour