Alfresco was using JSF based web client for User-Interface in its earlier versions. Since around version 3.2 they have introduced a new Spring surf based Interface called Alfresco Share. The main goals were to provide collaboration platform on top of Alfresco repository with rich user interface and make development much faster and more flexible and make it competent with other proprietary competitors.
In its primitive versions Alfresco share under goes lots of criticism among developers because of its complex architecture and ambiguous extension methods. The extension method provided earlier was not foolproof as it was likely to create issues during upgrade as the only methods available was copy and paste the supporting code to the “web-extension” under similar path and then make the necessary changes to that copy. This approach was creating lots of issue regarding maintained and upgrade.
Moving of major logic from ftl to js
Deprecation of header FTL files
Other change is deprecation of *.head.ftl file by removing all dependency from that file and directly injecting them within main ftl file though new annotation based tags like @script and @markup though which all necessary dependency can be loaded. Alfresco has given “Boiler-Plate” name to this new arrangement. Structure of new ftl files will be as follow.
Divided page in to components and further into subcomponents
This was the major change in the structure where each part of page will be associated with one webscript and will be treated as subcomponents which can be easily overridden through configuration. It will require more detailed description to explain this change so, I will be posting new article to explain this in detail or you can refer links provided.
These two are the major changes in Alfresco Share architecture which has reduced the development effort greatly and will make it more convenient to customize Alfresco Share and manage extensions. Hope this helps other developers in their developments.
Further Reading and References: