SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Plus 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
 

Plus 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
 

Dernier

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

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