SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
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, constraints
•  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
For Java, Python, .NET, PHP, Objective-C,
Android libraries see Apache Chemistry
Service URLs by Version
Alfresco
Version
CMIS Service URL
3.2r2 - 3.4 http://localhost:8080/alfresco/service/cmis (ATOM)
http://localhost:8080/alfresco/cmis (SOAP)
4.0 http://localhost:8080/alfresco/cmisatom
http://localhost:8080/alfresco/cmis (SOAP)
4.2.d/e/f,
4.2
Enterprise
http://localhost:8080/alfresco/api/-default-/cmis/versions/1.0/atom
http://localhost:8080/alfresco/api/-default-/cmis/versions/1.1/atom
http://localhost:8080/alfresco/api/-default-/cmis/versions/1.1/browser
http://localhost:8080/alfresco/cmis (SOAP)
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 strange 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
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/
alfresco-api-java-examples/
https://github.com/jpotts/
alfresco-developer-series



Full list at:
http://www.alfresco.com/resources/
documentation/getting-started
Thank You!
Jeff Potts
@jeffpotts01
http://ecmarchitect.com

Mais conteúdo relacionado

Semelhante a What Every New Developer Should Know About Alfresco (Jeff Potts)

Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should knowJeff Potts
 
Developer’s intro to the alfresco platform
Developer’s intro to the alfresco platformDeveloper’s intro to the alfresco platform
Developer’s intro to the alfresco platformAlfresco Software
 
Tech talk live alfresco cmis
Tech talk live alfresco cmisTech talk live alfresco cmis
Tech talk live alfresco cmisAlfresco Software
 
Intro To Alfresco Part 3
Intro To Alfresco Part 3Intro To Alfresco Part 3
Intro To Alfresco Part 3Jeff Potts
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Nicole Szigeti
 
Intro To Alfresco Part 1
Intro To Alfresco Part 1Intro To Alfresco Part 1
Intro To Alfresco Part 1Jeff Potts
 
PLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsPLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsAlfresco Software
 
0910 cagliari- spring surf and cmis - the dynamic duo
0910 cagliari- spring surf and cmis - the dynamic duo0910 cagliari- spring surf and cmis - the dynamic duo
0910 cagliari- spring surf and cmis - the dynamic duoSymphony Software Foundation
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIJeff Potts
 
Relational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric AppsRelational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric AppsJeff Potts
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for DevelopersJeff Potts
 
"Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment""Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment"webhostingguy
 
How To Implement a CMS
How To Implement a CMSHow To Implement a CMS
How To Implement a CMSJonathan Smith
 
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...Alfresco Software
 
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
201511 -  Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...201511 -  Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...Symphony Software Foundation
 
Intro to Microsoft.NET
Intro to Microsoft.NET Intro to Microsoft.NET
Intro to Microsoft.NET rchakra
 
Business Applications Integration In The Cloud
Business Applications Integration In The CloudBusiness Applications Integration In The Cloud
Business Applications Integration In The CloudAnna Brzezińska
 
Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]
Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]
Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]Alfresco Software
 

Semelhante a What Every New Developer Should Know About Alfresco (Jeff Potts) (20)

Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should know
 
Developer’s intro to the alfresco platform
Developer’s intro to the alfresco platformDeveloper’s intro to the alfresco platform
Developer’s intro to the alfresco platform
 
Tech talk live alfresco cmis
Tech talk live alfresco cmisTech talk live alfresco cmis
Tech talk live alfresco cmis
 
Intro To Alfresco Part 3
Intro To Alfresco Part 3Intro To Alfresco Part 3
Intro To Alfresco Part 3
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
Intro To Alfresco Part 1
Intro To Alfresco Part 1Intro To Alfresco Part 1
Intro To Alfresco Part 1
 
PLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsPLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in Grails
 
0910 cagliari- spring surf and cmis - the dynamic duo
0910 cagliari- spring surf and cmis - the dynamic duo0910 cagliari- spring surf and cmis - the dynamic duo
0910 cagliari- spring surf and cmis - the dynamic duo
 
Cfalfresco
CfalfrescoCfalfresco
Cfalfresco
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco API
 
Relational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric AppsRelational Won't Cut It: Architecting Content Centric Apps
Relational Won't Cut It: Architecting Content Centric Apps
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for Developers
 
"Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment""Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment"
 
How To Implement a CMS
How To Implement a CMSHow To Implement a CMS
How To Implement a CMS
 
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
 
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
201511 -  Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...201511 -  Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
 
Intro to Microsoft.NET
Intro to Microsoft.NET Intro to Microsoft.NET
Intro to Microsoft.NET
 
Business Applications Integration In The Cloud
Business Applications Integration In The CloudBusiness Applications Integration In The Cloud
Business Applications Integration In The Cloud
 
Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]
Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]
Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]
 
Adobe Flex Resources 6439
Adobe Flex Resources 6439Adobe Flex Resources 6439
Adobe Flex Resources 6439
 

Mais de Oksana Kurysheva

Как не создавать себе проблем, разрабатывая на Alfresco
Как не создавать себе проблем, разрабатывая на AlfrescoКак не создавать себе проблем, разрабатывая на Alfresco
Как не создавать себе проблем, разрабатывая на AlfrescoOksana Kurysheva
 
Welcome to the Alfresco community (Jeff Potts)
Welcome to the Alfresco community (Jeff Potts)Welcome to the Alfresco community (Jeff Potts)
Welcome to the Alfresco community (Jeff Potts)Oksana Kurysheva
 
Электронный документооборот на Alfresco
Электронный документооборот на AlfrescoЭлектронный документооборот на Alfresco
Электронный документооборот на AlfrescoOksana Kurysheva
 
Электронный архив на Alfresco
Электронный архив на AlfrescoЭлектронный архив на Alfresco
Электронный архив на AlfrescoOksana Kurysheva
 
Потоковый ввод и распознавание с Kofax
Потоковый ввод и распознавание с KofaxПотоковый ввод и распознавание с Kofax
Потоковый ввод и распознавание с KofaxOksana Kurysheva
 
Hardware Freedom Day Moscow 2013
Hardware Freedom Day Moscow 2013Hardware Freedom Day Moscow 2013
Hardware Freedom Day Moscow 2013Oksana Kurysheva
 
Александр Оликевич - OpenFabLab
Александр Оликевич - OpenFabLabАлександр Оликевич - OpenFabLab
Александр Оликевич - OpenFabLabOksana Kurysheva
 
Alexey Shmatok - Independent Hardware Development
Alexey Shmatok - Independent Hardware DevelopmentAlexey Shmatok - Independent Hardware Development
Alexey Shmatok - Independent Hardware DevelopmentOksana Kurysheva
 
Александр Чемерис - Открытая реализация GSM
Александр Чемерис - Открытая реализация GSMАлександр Чемерис - Открытая реализация GSM
Александр Чемерис - Открытая реализация GSMOksana Kurysheva
 
Светлана Мосалёва - Scratchduino
Светлана Мосалёва - ScratchduinoСветлана Мосалёва - Scratchduino
Светлана Мосалёва - ScratchduinoOksana Kurysheva
 
Павел Курочкин - STeameR
Павел Курочкин - STeameRПавел Курочкин - STeameR
Павел Курочкин - STeameROksana Kurysheva
 
Александр Чемерис - Что такое свободное оборудование
Александр Чемерис - Что такое свободное оборудованиеАлександр Чемерис - Что такое свободное оборудование
Александр Чемерис - Что такое свободное оборудованиеOksana Kurysheva
 
Кирилл Щерба - KSduino
Кирилл Щерба - KSduinoКирилл Щерба - KSduino
Кирилл Щерба - KSduinoOksana Kurysheva
 
Alfresco DevCon 2011. Implementing eGov Portal. Powered by Alfresco and Orbeon
Alfresco DevCon 2011. Implementing eGov Portal. Powered by Alfresco and OrbeonAlfresco DevCon 2011. Implementing eGov Portal. Powered by Alfresco and Orbeon
Alfresco DevCon 2011. Implementing eGov Portal. Powered by Alfresco and OrbeonOksana Kurysheva
 

Mais de Oksana Kurysheva (14)

Как не создавать себе проблем, разрабатывая на Alfresco
Как не создавать себе проблем, разрабатывая на AlfrescoКак не создавать себе проблем, разрабатывая на Alfresco
Как не создавать себе проблем, разрабатывая на Alfresco
 
Welcome to the Alfresco community (Jeff Potts)
Welcome to the Alfresco community (Jeff Potts)Welcome to the Alfresco community (Jeff Potts)
Welcome to the Alfresco community (Jeff Potts)
 
Электронный документооборот на Alfresco
Электронный документооборот на AlfrescoЭлектронный документооборот на Alfresco
Электронный документооборот на Alfresco
 
Электронный архив на Alfresco
Электронный архив на AlfrescoЭлектронный архив на Alfresco
Электронный архив на Alfresco
 
Потоковый ввод и распознавание с Kofax
Потоковый ввод и распознавание с KofaxПотоковый ввод и распознавание с Kofax
Потоковый ввод и распознавание с Kofax
 
Hardware Freedom Day Moscow 2013
Hardware Freedom Day Moscow 2013Hardware Freedom Day Moscow 2013
Hardware Freedom Day Moscow 2013
 
Александр Оликевич - OpenFabLab
Александр Оликевич - OpenFabLabАлександр Оликевич - OpenFabLab
Александр Оликевич - OpenFabLab
 
Alexey Shmatok - Independent Hardware Development
Alexey Shmatok - Independent Hardware DevelopmentAlexey Shmatok - Independent Hardware Development
Alexey Shmatok - Independent Hardware Development
 
Александр Чемерис - Открытая реализация GSM
Александр Чемерис - Открытая реализация GSMАлександр Чемерис - Открытая реализация GSM
Александр Чемерис - Открытая реализация GSM
 
Светлана Мосалёва - Scratchduino
Светлана Мосалёва - ScratchduinoСветлана Мосалёва - Scratchduino
Светлана Мосалёва - Scratchduino
 
Павел Курочкин - STeameR
Павел Курочкин - STeameRПавел Курочкин - STeameR
Павел Курочкин - STeameR
 
Александр Чемерис - Что такое свободное оборудование
Александр Чемерис - Что такое свободное оборудованиеАлександр Чемерис - Что такое свободное оборудование
Александр Чемерис - Что такое свободное оборудование
 
Кирилл Щерба - KSduino
Кирилл Щерба - KSduinoКирилл Щерба - KSduino
Кирилл Щерба - KSduino
 
Alfresco DevCon 2011. Implementing eGov Portal. Powered by Alfresco and Orbeon
Alfresco DevCon 2011. Implementing eGov Portal. Powered by Alfresco and OrbeonAlfresco DevCon 2011. Implementing eGov Portal. Powered by Alfresco and Orbeon
Alfresco DevCon 2011. Implementing eGov Portal. Powered by Alfresco and Orbeon
 

Último

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 

Último (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 

What Every New Developer Should Know About Alfresco (Jeff Potts)

  • 1. What Every New Developer Should Know About Alfresco Jeff Potts Chief Community Officer
  • 3. Content Models The rough equivalent to Data Definition Language in Alfresco
  • 4. 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
  • 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. Rules You can automate a lot of content processing using rules that trigger rule actions
  • 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. Web Scripts Roll your own REST API using this MVC framework or leverage the out- of-the-box URLs
  • 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. 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. 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. CMIS CMIS is the preferred API for integrating with Alfresco
  • 13. The Beauty of CMIS My Custom Application Third-Party Systems CMIS API Standard integration Standard integration
  • 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 For Java, Python, .NET, PHP, Objective-C, Android libraries see Apache Chemistry
  • 15. Service URLs by Version Alfresco Version CMIS Service URL 3.2r2 - 3.4 http://localhost:8080/alfresco/service/cmis (ATOM) http://localhost:8080/alfresco/cmis (SOAP) 4.0 http://localhost:8080/alfresco/cmisatom http://localhost:8080/alfresco/cmis (SOAP) 4.2.d/e/f, 4.2 Enterprise http://localhost:8080/alfresco/api/-default-/cmis/versions/1.0/atom http://localhost:8080/alfresco/api/-default-/cmis/versions/1.1/atom http://localhost:8080/alfresco/api/-default-/cmis/versions/1.1/browser http://localhost:8080/alfresco/cmis (SOAP)
  • 16. Extensions Avoid changing files included with the Alfresco distribution
  • 17. Use AMPs to package extensions An AMP is a ZIP with a special folder structure, a manifest, and a strange 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
  • 18. Debugging Use the source, turn up logging verbosity, leverage one of many consoles
  • 19. 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
  • 20. Asking for Help Help the Alfresco community help you
  • 21. 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
  • 22. 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/ alfresco-api-java-examples/ https://github.com/jpotts/ alfresco-developer-series Full list at: http://www.alfresco.com/resources/ documentation/getting-started