Preface
Alfresco is the leading open source platform for Enterprise Content Management. The evolution of the product has been quite impressive during the last 10 years. The first edition of this book has been published in 2008, and after 8 years, it really needed an update. This new book will give you some insights on the most advanced capabilities of the Alfresco platform. This book takes you through the process of customizing and extending the Alfresco engine, the out-of-the-box user interface Alfresco Share that will suit most of your requirements in terms of document collaboration. It uses a fictitious professional services company called "SomeCo" as an example. SomeCo has decided to roll out Alfresco across the enterprise. Your job is to take advantage of Alfresco's extension mechanism, workflow engine, and various APIs and SDKs to meet the requirements from SomeCo's various departments. Although many customizations can be made by editing XML and properties files, this book is focused on developers. That might mean writing Java code against the Alfresco API to implement an action or a behavior, maybe creating some server-side JavaScript to use as the controller of a RESTful web script, or perhaps implementing custom business logic in an advanced workflow. The point is that all but the most basic implementations of any ECM platform require code to be written. The goal of this book is to help you identify patterns, techniques, and specific steps that you can use to become productive on the platform more quickly. By the end of this book, you will have stepped through every aspect of the Alfresco platform. You will have performed the same types of customizations and extensions found in typical Alfresco implementations. You’ll have discovered the Mobile Alfresco SDK and creates your own mobile application. Finally, you’ll get a preview of the latest Alfresco Development Framework (ADF) based on Angular. Most importantly, when someone comes to you and asks, "How would you do this in Alfresco?", you'll have at least one answer and maybe even some source code to go with it.