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...
Forms
Forms are modeled in XML
• Explorer: web-client-config-custom.xml
• Share: share-config-custom.xml
Form Service
• Pr...
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 option...
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...
Out-of-the-box URLs
Web script console lists all web scripts
• http://localhost:8080/alfresco/service/index
• http://local...
Web Scripts run in both tiers
Web scripts exist in both
tiers
They access different
sets of objects
They communicate over
...
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
sta...
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 us...
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...
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 thi...
Resources
Alfresco Forums
http://forums.alfresco.com
Alfresco Wiki
http://wiki.alfresco.com
Alfresco Blogs
http://blogs.al...
Thank You!
Jeff Potts
@jeffpotts01
http://ecmarchitect.com
Upcoming SlideShare
Loading in...5
×

Alfresco: What every developer should know

3,228
-1

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
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,228
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
126
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide
  • 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

    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 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
    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 https://wiki.alfresco.com/wiki/Packaging_An 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 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
    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 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
    22. 22. Thank You! Jeff Potts @jeffpotts01 http://ecmarchitect.com
    1. Gostou de algum slide específico?

      Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

    ×