• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Alfresco: What every developer should know
 

Alfresco: What every developer should know

on

  • 1,799 views

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.

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.

Statistics

Views

Total Views
1,799
Views on SlideShare
1,770
Embed Views
29

Actions

Likes
5
Downloads
54
Comments
0

1 Embed 29

https://twitter.com 29

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • This is not an exhaustive or very detailed list. This is basically what I’d tell someone just getting started with Alfresco if we had just enough time for a coffeePHOTO CREDIT: Coffee Shop by bunchofpants, cc by-nc-sa, http://www.flickr.com/photos/bunchofpants/100442520/
  • Look for model management tools on http://addons.alfresco.comAt a bare minimum, you need a model-context.xml and a model.xml file. Most people will also have a UI config file for Share. See http://ecmarchitect.com for a tutorial.
  • See http://ecmarchitect.com for a rule actions tutorial.
  • See http://ecmarchitect.com for a web scripts tutorial.
  • Emphasize the different set of objects point. This trips up a lot of people.A side-note, somewhat related is that JavaScript exists in both tiers and in the browser. So when you are debugging JavaScript or asking someone a question, it usually saves time if you clarify exactly where your JavaScript is running.
  • See CMIS & Apache Chemistry in Action, by Florian Mueller, Jay Brown, and Jeff Potts, Manning (2013)
  • Ruby, Perl, C++ libraries available elsewhere, not in Apache Chemistry (yet)
  • Use a standard extension mechanism instead.

Alfresco: What every developer should know Alfresco: What every developer should know Presentation Transcript

  • What Every New Developer Should Know About Alfresco Jeff Potts Chief Community Officer
  • CoffeeShopbyBbunchofpants
  • Content Models The rough equivalent to Data Definition Language in Alfresco
  • 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
  • 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
  • Rules You can automate a lot of content processing using rules that trigger rule actions
  • 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
  • Web Scripts Roll your own REST API using this MVC framework or leverage the out- of-the-box URLs
  • 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
  • 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
  • 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
  • CMIS CMIS is the preferred API for integrating with Alfresco
  • The Beauty of CMIS My Custom Application Third-Party Systems CMIS API Standard integration Standard integration
  • 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
  • Extensions Avoid changing files included with the Alfresco distribution
  • 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_An d_Deploying_Extensions
  • Debugging Use the source, turn up logging verbosity, leverage one of many consoles
  • 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 if you are doing Share custs
  • Asking for Help Help the Alfresco community help you
  • 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
  • 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 Code Examples http://code.google.com/p/share -extras https://code.google.com/p/alfre sco-api-java-examples/ https://github.com/jpotts/alfresc o-developer-series Full list at: http://www.alfresco.com/resources/doc umentation/getting-started
  • Thank You! Jeff Potts @jeffpotts01 http://ecmarchitect.com