Spring Surf is a scriptable Web framework that powers the presentation tier rendering capabilities of applications in the Alfresco application suite. These include Alfresco Share, Alfresco Records Management and both authoring and presentation tools for Alfresco Web Content Management.
Surf provides a way for you to build user interfaces for your web applications using server-side scripts and templates. No Java coding, no recompilation, no server restarts and no heavy lifting.
The result is reduced complexity and lower costs. Surf follows a content-driven approach â€“ everything is content on disk. Scripts and templates are just simple files on disk. You can just open up a text editor and begin making changes to the live site.
Surf is a view composition plug-in for Spring Web MVC. More specifically, Surf is a Spring Framework extension that you can use to build new Spring Framework applications. Or you can plug it into existing Spring Web MVC applications in your business. Spring Web MVC provides an elegant separation between the applicationâ€™s model, view, and controller â€“ thus the acronym â€œMVCâ€. If you wish, you can use Surf side-by-side with other popular Spring Web MVC technologies including Tiles, Grails and Web Flow.
Spring Framework Extension
In mid-2009, Alfresco began working with SpringSource on the contribution of Alfresco's scriptable, web presentation technologies to the greater Spring Framework stack. Scriptable presentation offers the Spring community with a lighter-weight mechanism for building views and controllers.
By the start of 2010, Spring Surf had been contributed and a first milestone had been released. It is actively developed as a collaborative effort between Alfresco Software and SpringSource. This enables the project to grow and to accelerate in a wider developer community. It is available as a plug-in for Spring MVC 3.x applications under the Apache 2.0 license.
What is included in Spring Surf?
Spring Surf includes a number of Alfresco technologies (now offered under the Apache 2.0 license).
These include the following web technologies:
Spring Web Scripts - scriptable REST controllers for remote API development
Spring Surf - scriptable view composition for web applications and sites
Spring Web Editor - in-context editing framework for WCM-driven web sites
These also include a suite of development tools:
Spring Roo Addon - quick and easy command-line scaffolding for Web Scripts and Surf web sites
Eclipse Plugins - IDE plugins for SpringSource Tool Suite (STS) to assist in building Surf projects
Documentation Generation - automatic generation of PDF and HTML documentation for Spring Web Scripts
The Spring Surf project also provides several samples to assist in getting started:
Sample Applications - Spring Travel, Pet Clinic and QuickStart
Groovy Addon - Adds Groovy support for Web Script scriptable controllers
PHP Addon - Adds PHP support for Web Script view templates
Sample Web Editor Plugin - Reference for building custom Web Editor Plugins
If you're interested in documentation for Alfresco 3.3 (including Alfresco Share), you should visit http://share.alfresco.com.
If you're interested in developer-level documentation concerning Spring Surf itself, you should visit the Spring Surf project page at http://www.springsurf.org.
Where can I learn more?
The Spring Surf Extension project is maintained and developed as a collaborative effort between Alfresco Software and SpringSource. The Alfresco core engineering team contributes to Spring Surf alongside the Spring community. The project encourages open participation, feedback and contribution.
If you would like to learn more about the Spring Surf project or become involved, you can visit the Spring Surf project at http://www.springsurf.org.
From this project page, you can download the latest Spring Surf releases, access documentation, and browse through project information, including build details, technical documentation, and tutorials. It also provides information about how you can check out the code and contribute.