At the heart of Alfresco Surf is a site assembly framework that bundles a full site construction object model and toolkit for building websites and applications.
- A Site Dispatcher to create pages easily, link them to the overall navigation of a website, and build pages in a way that promotes reusability.
- Templates for defining a page layout once and then reusing it across a large set of pages. You can develop pages using FreeMarker, JSP, HTML, or Java.
- A UI Library containing reusable UI components comprising back-end application logic and front-end presentation code that can be bound into regions (or slots) within a page or template.
- Pages that you can render in multiple formats, such as print, PDF, or mobile device.
- AJAX support for integration with the Yahoo! User Interface (YUI) library.
- Forms in a rich forms engine for rendering and collecting data.
- Remote: encapsulates any number of data sources with out-of-the-box support for the Alfresco content application server
- Credentials: manages user authentication with out-of-the-box support for the Alfresco content application server
As Alfresco Surf sites are XML and file-based, they are easily managed in Alfresco WCM, as shown in the following figure:
- Safe editing of all Alfresco Surf artifacts, including the ability to snapshot a site and roll it backward in time
- Review and Approve workflow of Alfresco Surf site changes
- Preview of site changes
- Deployment of site changes to test or production servers
With the CMIS client API, Alfresco Surf provides an open stack for implementing web-based, content-enabled applications.