Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What Every New Developer Should Know About Alfr...

What Every New Developer Should Know About Alfresco

An introduction to tools that every Alfresco developer should know about: Content Models, Rules, Web Scripts, CMIS, Extensions, Debugging tools.

Richard Esplin

August 15, 2013
Tweet

More Decks by Richard Esplin

Other Decks in Technology

Transcript

  1. Where will document management fit? Storage Container (Public Domain CC0

    Pixabay) Platform (CC BY 2.0 didactylos47@Flickr)
  2. Everything is a node, nodes are typed Content Model is

    expressed in XML • Defines types, aspects, properties, associations, constraints • Cold-deploy most common, hot deploy possible Hierarchical • Types inherit from super types Extend the out-of-the-box model with your own
  3. 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
  4. 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
  5. Web Scripts Roll your own REST API using this MVC

    framework or leverage the out- of-the-box URLs
  6. 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
  7. 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
  8. 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 http://chemistry.apache.org 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
  9. 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 https://wiki.alfresco.com/wiki/ Packaging_And_Deploying_Extensions
  10. Developer, Heal Thyself Configure Eclipse for remote debugging Turn up

    logging in log4j.properties 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
  11. 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
  12. Resources Alfresco Forums http://forums.alfresco.com Alfresco Wiki http://wiki.alfresco.com Alfresco Blogs http://blogs.alfresco.com

    CMIS Resources http://cmis.alfresco.com ECM Architect Blog http://ecmarchitect.com Documentation http://docs.alfresco.com Freenode IRC #alfresco Twitter @alfresco Code Examples http://code.google.com/p/share -extras https://github.com/jpotts/alfresc o-developer-series