Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Alfresco: What every developer should know


Published on

If you and I were having coffee and you asked what you should know about Alfresco before starting your project, this is what I'd tell you.

Published in: Technology
  • Be the first to comment

Alfresco: What every developer should know

  1. 1. What Every New Developer Should Know About Alfresco Jeff Potts Chief Community Officer
  2. 2. CoffeeShopbyBbunchofpants
  3. 3. Content Models The rough equivalent to Data Definition Language in Alfresco
  4. 4. Everything is a node, nodes are typed Content Model is expressed in XML • Defines types, aspects, properties, associations, const raints • Cold-deploy most common, hot deploy possible Hierarchical • Types inherit from super types Extend the out-of-the-box model with your own
  5. 5. Forms Forms are modeled in XML • Explorer: web-client-config-custom.xml • Share: share-config-custom.xml Form Service • Processes and persists form data • Filters for intercepting form data before and after form submit • RESTful API for retrieving form model as JSON
  6. 6. Rules You can automate a lot of content processing using rules that trigger rule actions
  7. 7. Rules save time Defined in the UI by end-users If this (criteria) then that (action) Associated with a folder • Can optionally be applied to sub-folders Can easily add your own custom actions to the list
  8. 8. Web Scripts Roll your own REST API using this MVC framework or leverage the out- of-the-box URLs
  9. 9. Roll your own REST API Web Script Framework used to declare a URL, bind it to logic, provide views • Model-View-Controller pattern • Controller implemented in server-side JavaScript or Java • Views implemented in FreeMarker Deployed to the repository or the classpath Can also have web scripts on the Share tier
  10. 10. Out-of-the-box URLs Web script console lists all web scripts • http://localhost:8080/alfresco/service/index • http://localhost:8080/share/service/index Pay attention to the lifecycle • Lifecycle “internal” may change without warning Use CMIS or public API whenever possible
  11. 11. Web Scripts run in both tiers Web scripts exist in both tiers They access different sets of objects They communicate over HTTP/S Code running in the browser can invoke web scripts in either tier (not shown) XML/JSON over HTTP/S Apache Tomcat Spring Surf Web Script Framework alfresco.war Spring Surf Web Script Framework share.war
  12. 12. CMIS CMIS is the preferred API for integrating with Alfresco
  13. 13. The Beauty of CMIS My Custom Application Third-Party Systems CMIS API Standard integration Standard integration
  14. 14. Use CMIS for CRUD functions Important ECM industry specification managed by OASIS Alfresco uses OpenCMIS, the de facto standard implementation of the spec • Available at All you need is a service URL • http://localhost:8080/alfresco/cmisatom (4.x) For Java, Python, .NET, PHP, Objective- C, Android libraries see Apache Chemistry
  15. 15. Extensions Avoid changing files included with the Alfresco distribution
  16. 16. Use AMPs to package extensions An AMP is a ZIP with a special folder structure, a manifest, and a funny name The MMT is used to deploy (merge) your AMPs with alfresco.war and share.war Use AMPs even when you do not intend to publicly distribute your customizations d_Deploying_Extensions
  17. 17. Debugging Use the source, turn up logging verbosity, leverage one of many consoles
  18. 18. Developer, heal thyself Configure Eclipse for remote debugging Turn up logging in Turn on the server-side JavaScript debugger Use a client-side JavaScript debugger Use Florian Maul’s JavaScript Console Use the Node Browser Use the OpenCMIS Workbench Use SurfBug if you are doing Share custs
  19. 19. Asking for Help Help the Alfresco community help you
  20. 20. Help us help you The community welcomes everyone Invest some sweat equity • Read the docs • Search the web • Try a few things before asking for help Be specific Be polite Pay it forward
  21. 21. Resources Alfresco Forums Alfresco Wiki Alfresco Blogs CMIS Resources ECM Architect Blog Documentation Freenode IRC #alfresco Code Examples -extras sco-api-java-examples/ o-developer-series Full list at: umentation/getting-started
  22. 22. Thank You! Jeff Potts @jeffpotts01