SlideShare a Scribd company logo
1 of 19
Download to read offline
The New Developer
Adobe Experience Manager 6
<div itemscope itemtype="http://schema.org/Person">
<span itemprop="name">Emily Stange</span>
<span itemprop="jobTitle">
Senior Solution Consultant
</span> for
<span itemprop="affiliation">Adobe</span>
</div>
<div itemscope itemtype="http://schema.org/Person">
<span itemprop="name">Cedric Huesler</span>
<span itemprop="jobTitle">
Group Product Manager Web Experience Management
</span> for
<span itemprop="affiliation">Adobe</span>
</div>
6._
TL:DR
1 2 3
Code save
components
quicker with Sightly
New JCR repository
that can handle
more content faster
Lots of new
features/APIs and a
fresh Touch-
optimized UI
New code
workflow
1
Adobe Experience Manager
FilesystemGIT et al Filesystem
Runtime &
Repository
IDE
Preview
in Browser
commit
hot-deploysave
save
Less code… and
keep it neat!
2
Adobe Experience Manager
Component Model
cq:Component
Dialog
Code
ClientLibs
Analytics
Design Dialog
Edit Config
cq:Dialog (ExtJS)
JSP ECMA
Dialog: cq/gui/components/authoring/dialog
HTML (Sightly)+JS HTML (Sightly)+Java
cq:Dialog (ExtJS)
cq:EditConfig
cq:ClientLibraryFolder
‘analytics’ node
Adobe Experience Manager
Code
<%@include file="/apps/geometrixx-media/global.jsp"%><%
%><%@ page session="false"
import="java.util.Iterator,
com.day.cq.wcm.api.PageFilter" %><%
long absParent = currentStyle.get("absParent", 2L);
Page rootPage = currentPage.getAbsoluteParent((int) absParent);
Iterator<Page> childPages = null;
if (rootPage != null) {
childPages = rootPage.listChildren(new PageFilter(request));
}
%>
<div class="visible-phone btn-container">
<a class="btn btn-inverse authenticate"><i class="icon-cog icon-white"></i></a>
<a class="btn btn-inverse menu-dropdown">Menu <i class="icon-chevron-down icon-white"></i></a>
</div>
<nav>
<ul>
<%
if (childPages != null) {
while (childPages.hasNext()) {
String cssStyle = "";
Page childPage = childPages.next();
if (isCurrentPage(currentPage, childPage)) {
cssStyle = "class='current-page'";
}
String title = getTitle(xssAPI, childPage);
%><li <%=cssStyle%>><a href="<%= childPage.getPath() %>.html"><%= title %></a></li>
<%
}
}
%>
</ul>
<cq:include path="search" resourceType="geometrixx-media/components/page/search"/>
</nav>
<%!
boolean isCurrentPage(Page currentPage, Page page) {
return currentPage.equals(page);
}
String getTitle(XSSAPI xssAPI, Page page) {
String navTitle = page.getNavigationTitle();
if(navTitle == null) {
navTitle = page.getTitle();
}
if(navTitle == null) {
navTitle = page.getName();
}
return xssAPI.encodeForHTML(navTitle);
}
%>
<div class="visible-phone btn-container">
<a class="btn btn-inverse authenticate"><i class="icon-cog icon-white"></i></a>
<a class="btn btn-inverse menu-dropdown">${'Menu' @ i18n} <i class="icon-chevron-down icon-white"></i></a>
</div>
<nav data-sly-use-topNav="TopNav">
<ul data-sly-list-navItem="${topNav.items}">
<li class="current-${navItem.isCurrent}"><a href="${navItem.page.path}.html">${navItem.title}</a></li>
</ul>
<div data-sly-resource="${options: path='search', resourceType='geometrixx-media/components/page/search'}"/>
</nav>
package apps.geometrixx_media.components.topnav;
import com.adobe.cq.sightly.WcmUse;
import com.day.cq.wcm.api.Page;
import com.day.cq.wcm.api.PageFilter;
import java.util.*;
public class TopNav extends WcmUse {
private List<Map<String, Object>> items = new ArrayList<Map<String, Object>>();
private String getTitle(Page page) {
String navTitle = page.getNavigationTitle();
if (navTitle == null) {
navTitle = page.getTitle();
if (navTitle == null) {
navTitle = page.getName();
}
}
return navTitle;
}
public void activate() throws Exception {
Page currentPage = getCurrentPage();
int absParent = getCurrentStyle().get("absParent", 2);
Page rootPage = currentPage.getAbsoluteParent(absParent);
if (rootPage != null) {
Iterator<Page> childPages = rootPage.listChildren(new PageFilter(getRequest()));
while (childPages.hasNext()) {
Map<String, Object> navItem = new HashMap<String, Object>();
Page childPage = childPages.next();
navItem.put("page", childPage);
navItem.put("title", getTitle(childPage));
navItem.put("isCurrent", new Boolean(currentPage.equals(childPage)));
items.add(navItem);
}
}
}
public List<Map<String, Object>> getItems() {
return items;
}
}
Component Code (HTML+JSP) Component Code (HTML+Sightly)
Reusable Java or JavaScript Code
vs
Automated Site
Testing
3
New repo -
same API
4
Adobe Experience Manager
Microkernel Repository (aka Oak)
Tar Set DataStore Indexes Tar Set
JCR
HTTP
5.x 6.x
Microkernel
ISMs for Session
ISMs for Workspace
Multiversion concurrency control
Our & Your Code Our & Your Code
SearchBinaries
Nodes

Properties Nodes, Properties, Binaries, Search
CQSE Jetty
Update
process
5
Adobe Experience Manager
2-step Upgrade
Replace JAR

file
Startup runs

in-place

upgrade
run

crx2oak
Choice:
- TAR files
- MongoDB
Stop Start Stop Start
Mobile apps with
PhoneGap
6
New APIs7
Adobe Experience Manager
New & extended APIs
• Sling Models
• Sling Health-check
• Sling Resource Merge
• Translation API
• Vault RPC
• ContextHub
• ContentInsight
• eCommerce
• Social Components
• DAM Collection & Sets
Dependencies for Maven/Gradle:
http://repo.adobe.com/nexus/content/repositories/releases/com/adobe/aem/aem-api/6.0.0.1/
TL:DR
1 2 3
Code save
components
quicker with Sightly
New JCR repository
that can handle
more content faster
Lots of new
features/APIs and a
fresh Touch-
optimized UI
What I always wanted to know?

More Related Content

What's hot

WordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 NepalWordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 NepalChandra Prakash Thapa
 
High Performance Ajax Applications
High Performance Ajax ApplicationsHigh Performance Ajax Applications
High Performance Ajax ApplicationsJulien Lecomte
 
Web performance essentials - Goodies
Web performance essentials - GoodiesWeb performance essentials - Goodies
Web performance essentials - GoodiesJerry Emmanuel
 
WordPress Theme Development: Part 2
WordPress Theme Development: Part 2WordPress Theme Development: Part 2
WordPress Theme Development: Part 2Josh Lee
 
Cache Money Talk: Practical Application
Cache Money Talk: Practical ApplicationCache Money Talk: Practical Application
Cache Money Talk: Practical ApplicationWolfram Arnold
 
Mobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScriptMobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScriptfranksvalli
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2fishwarter
 
Top 10 HTML5 features every developer should know!
Top 10 HTML5 features every developer should know!Top 10 HTML5 features every developer should know!
Top 10 HTML5 features every developer should know!Gill Cleeren
 
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LAB
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LABHTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LAB
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LABpriya Nithya
 
Learn html and css from scratch
Learn html and css from scratchLearn html and css from scratch
Learn html and css from scratchMohd Manzoor Ahmed
 
jQuery Proven Performance Tips & Tricks
jQuery Proven Performance Tips & TricksjQuery Proven Performance Tips & Tricks
jQuery Proven Performance Tips & TricksAddy Osmani
 
Introduction Django
Introduction DjangoIntroduction Django
Introduction DjangoWade Austin
 
Up & Running with Polymer
Up & Running with PolymerUp & Running with Polymer
Up & Running with PolymerFiyaz Hasan
 
Create responsive websites with Django, REST and AngularJS
Create responsive websites with Django, REST and AngularJSCreate responsive websites with Django, REST and AngularJS
Create responsive websites with Django, REST and AngularJSHannes Hapke
 
Wordless, stop writing WordPress themes like it's 1998
Wordless, stop writing WordPress themes like it's 1998Wordless, stop writing WordPress themes like it's 1998
Wordless, stop writing WordPress themes like it's 1998Filippo Dino
 

What's hot (20)

WordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 NepalWordPress theme development from scratch : ICT MeetUp 2013 Nepal
WordPress theme development from scratch : ICT MeetUp 2013 Nepal
 
Rebrand WordPress Admin
Rebrand WordPress AdminRebrand WordPress Admin
Rebrand WordPress Admin
 
Sightly - Part 2
Sightly - Part 2Sightly - Part 2
Sightly - Part 2
 
High Performance Ajax Applications
High Performance Ajax ApplicationsHigh Performance Ajax Applications
High Performance Ajax Applications
 
Web performance essentials - Goodies
Web performance essentials - GoodiesWeb performance essentials - Goodies
Web performance essentials - Goodies
 
WordPress Theme Development: Part 2
WordPress Theme Development: Part 2WordPress Theme Development: Part 2
WordPress Theme Development: Part 2
 
Challenges going mobile
Challenges going mobileChallenges going mobile
Challenges going mobile
 
Cache Money Talk: Practical Application
Cache Money Talk: Practical ApplicationCache Money Talk: Practical Application
Cache Money Talk: Practical Application
 
Mobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScriptMobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScript
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
 
Top 10 HTML5 features every developer should know!
Top 10 HTML5 features every developer should know!Top 10 HTML5 features every developer should know!
Top 10 HTML5 features every developer should know!
 
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LAB
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LABHTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LAB
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LAB
 
Learn html and css from scratch
Learn html and css from scratchLearn html and css from scratch
Learn html and css from scratch
 
jQuery Proven Performance Tips & Tricks
jQuery Proven Performance Tips & TricksjQuery Proven Performance Tips & Tricks
jQuery Proven Performance Tips & Tricks
 
Intro to html 5
Intro to html 5Intro to html 5
Intro to html 5
 
Introduction Django
Introduction DjangoIntroduction Django
Introduction Django
 
Up & Running with Polymer
Up & Running with PolymerUp & Running with Polymer
Up & Running with Polymer
 
Create responsive websites with Django, REST and AngularJS
Create responsive websites with Django, REST and AngularJSCreate responsive websites with Django, REST and AngularJS
Create responsive websites with Django, REST and AngularJS
 
HTML 5 & CSS 3
HTML 5 & CSS 3HTML 5 & CSS 3
HTML 5 & CSS 3
 
Wordless, stop writing WordPress themes like it's 1998
Wordless, stop writing WordPress themes like it's 1998Wordless, stop writing WordPress themes like it's 1998
Wordless, stop writing WordPress themes like it's 1998
 

Viewers also liked

Xamarin and SAP Mobile Platform for Mobile Enterprise Success - SAP Slides
Xamarin and SAP Mobile Platform for Mobile Enterprise Success - SAP SlidesXamarin and SAP Mobile Platform for Mobile Enterprise Success - SAP Slides
Xamarin and SAP Mobile Platform for Mobile Enterprise Success - SAP SlidesXamarin
 
SAP mobile platform & mobile apps
SAP mobile platform & mobile appsSAP mobile platform & mobile apps
SAP mobile platform & mobile appsCapgemini
 
Bangalore Cloud Foundry meetup - Mani
Bangalore Cloud Foundry meetup - ManiBangalore Cloud Foundry meetup - Mani
Bangalore Cloud Foundry meetup - ManiMani Chandrasekaran
 
REACT New Technology Integration - R. Goswami 9Z4RG - HAM/Amateur Radio
REACT New Technology Integration - R. Goswami 9Z4RG - HAM/Amateur RadioREACT New Technology Integration - R. Goswami 9Z4RG - HAM/Amateur Radio
REACT New Technology Integration - R. Goswami 9Z4RG - HAM/Amateur RadioREACT International, Inc.
 
Hazelcast For Beginners (Paris JUG-1)
Hazelcast For Beginners (Paris JUG-1)Hazelcast For Beginners (Paris JUG-1)
Hazelcast For Beginners (Paris JUG-1)Emrah Kocaman
 
Mule : Building Blocks for Microservices
Mule : Building Blocks for MicroservicesMule : Building Blocks for Microservices
Mule : Building Blocks for MicroservicesAnirudh Pandit
 
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and BackboneJavascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and BackboneDeepu S Nath
 
ReactJS vs AngularJS - Head to Head comparison
ReactJS vs AngularJS - Head to Head comparisonReactJS vs AngularJS - Head to Head comparison
ReactJS vs AngularJS - Head to Head comparison500Tech
 
Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Stuart Charlton
 
A Brief Introduction to React.js
A Brief Introduction to React.jsA Brief Introduction to React.js
A Brief Introduction to React.jsDoug Neiner
 
Viktor Bezhenar, Lviv PM Day - On the way of building your own Engineering Cu...
Viktor Bezhenar, Lviv PM Day - On the way of building your own Engineering Cu...Viktor Bezhenar, Lviv PM Day - On the way of building your own Engineering Cu...
Viktor Bezhenar, Lviv PM Day - On the way of building your own Engineering Cu...viktor_bezhenar
 
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB MongoDB
 
Hazelcast Essentials
Hazelcast EssentialsHazelcast Essentials
Hazelcast EssentialsRahul Gupta
 
Rethinking Best Practices
Rethinking Best PracticesRethinking Best Practices
Rethinking Best Practicesfloydophone
 
Modern UI Development With Node.js
Modern UI Development With Node.jsModern UI Development With Node.js
Modern UI Development With Node.jsRyan Anklam
 
Resilience reloaded - more resilience patterns
Resilience reloaded - more resilience patternsResilience reloaded - more resilience patterns
Resilience reloaded - more resilience patternsUwe Friedrichsen
 

Viewers also liked (20)

Xamarin and SAP Mobile Platform for Mobile Enterprise Success - SAP Slides
Xamarin and SAP Mobile Platform for Mobile Enterprise Success - SAP SlidesXamarin and SAP Mobile Platform for Mobile Enterprise Success - SAP Slides
Xamarin and SAP Mobile Platform for Mobile Enterprise Success - SAP Slides
 
SAP mobile platform & mobile apps
SAP mobile platform & mobile appsSAP mobile platform & mobile apps
SAP mobile platform & mobile apps
 
React nativebeginner1
React nativebeginner1React nativebeginner1
React nativebeginner1
 
Bangalore Cloud Foundry meetup - Mani
Bangalore Cloud Foundry meetup - ManiBangalore Cloud Foundry meetup - Mani
Bangalore Cloud Foundry meetup - Mani
 
REACT New Technology Integration - R. Goswami 9Z4RG - HAM/Amateur Radio
REACT New Technology Integration - R. Goswami 9Z4RG - HAM/Amateur RadioREACT New Technology Integration - R. Goswami 9Z4RG - HAM/Amateur Radio
REACT New Technology Integration - R. Goswami 9Z4RG - HAM/Amateur Radio
 
Hazelcast For Beginners (Paris JUG-1)
Hazelcast For Beginners (Paris JUG-1)Hazelcast For Beginners (Paris JUG-1)
Hazelcast For Beginners (Paris JUG-1)
 
Mule : Building Blocks for Microservices
Mule : Building Blocks for MicroservicesMule : Building Blocks for Microservices
Mule : Building Blocks for Microservices
 
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and BackboneJavascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
 
ReactJS vs AngularJS - Head to Head comparison
ReactJS vs AngularJS - Head to Head comparisonReactJS vs AngularJS - Head to Head comparison
ReactJS vs AngularJS - Head to Head comparison
 
Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016
 
Fault tolerance made easy
Fault tolerance made easyFault tolerance made easy
Fault tolerance made easy
 
A Brief Introduction to React.js
A Brief Introduction to React.jsA Brief Introduction to React.js
A Brief Introduction to React.js
 
Viktor Bezhenar, Lviv PM Day - On the way of building your own Engineering Cu...
Viktor Bezhenar, Lviv PM Day - On the way of building your own Engineering Cu...Viktor Bezhenar, Lviv PM Day - On the way of building your own Engineering Cu...
Viktor Bezhenar, Lviv PM Day - On the way of building your own Engineering Cu...
 
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
 
Best node js course
Best node js courseBest node js course
Best node js course
 
Hazelcast Essentials
Hazelcast EssentialsHazelcast Essentials
Hazelcast Essentials
 
Resilience with Hystrix
Resilience with HystrixResilience with Hystrix
Resilience with Hystrix
 
Rethinking Best Practices
Rethinking Best PracticesRethinking Best Practices
Rethinking Best Practices
 
Modern UI Development With Node.js
Modern UI Development With Node.jsModern UI Development With Node.js
Modern UI Development With Node.js
 
Resilience reloaded - more resilience patterns
Resilience reloaded - more resilience patternsResilience reloaded - more resilience patterns
Resilience reloaded - more resilience patterns
 

Similar to Experience Manager 6 Developer Features - Highlights

Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneRafael Felix da Silva
 
AnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFacesAnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFacesAnkara JUG
 
Secrets of JavaScript Libraries
Secrets of JavaScript LibrariesSecrets of JavaScript Libraries
Secrets of JavaScript Librariesjeresig
 
Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React Robert DeLuca
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCpootsbook
 
Building Universal Web Apps with React ForwardJS 2017
Building Universal Web Apps with React ForwardJS 2017Building Universal Web Apps with React ForwardJS 2017
Building Universal Web Apps with React ForwardJS 2017Elyse Kolker Gordon
 
Demo how to create visualforce and apex controller to update, delete custom o...
Demo how to create visualforce and apex controller to update, delete custom o...Demo how to create visualforce and apex controller to update, delete custom o...
Demo how to create visualforce and apex controller to update, delete custom o...tuan vo
 
Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4DEVCON
 
Modern frontend development with VueJs
Modern frontend development with VueJsModern frontend development with VueJs
Modern frontend development with VueJsTudor Barbu
 
Building iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" DominoBuilding iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" DominoRob Bontekoe
 
Client-side Rendering with AngularJS
Client-side Rendering with AngularJSClient-side Rendering with AngularJS
Client-side Rendering with AngularJSDavid Lapsley
 
Understanding backbonejs
Understanding backbonejsUnderstanding backbonejs
Understanding backbonejsNick Lee
 

Similar to Experience Manager 6 Developer Features - Highlights (20)

Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com Backbone
 
AnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFacesAnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFaces
 
Secrets of JavaScript Libraries
Secrets of JavaScript LibrariesSecrets of JavaScript Libraries
Secrets of JavaScript Libraries
 
Practica n° 7
Practica n° 7Practica n° 7
Practica n° 7
 
Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVC
 
Backbone - TDC 2011 Floripa
Backbone - TDC 2011 FloripaBackbone - TDC 2011 Floripa
Backbone - TDC 2011 Floripa
 
Building Universal Web Apps with React ForwardJS 2017
Building Universal Web Apps with React ForwardJS 2017Building Universal Web Apps with React ForwardJS 2017
Building Universal Web Apps with React ForwardJS 2017
 
React 101
React 101React 101
React 101
 
Javascript
JavascriptJavascript
Javascript
 
JSP
JSPJSP
JSP
 
Demo how to create visualforce and apex controller to update, delete custom o...
Demo how to create visualforce and apex controller to update, delete custom o...Demo how to create visualforce and apex controller to update, delete custom o...
Demo how to create visualforce and apex controller to update, delete custom o...
 
Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4
 
Modern frontend development with VueJs
Modern frontend development with VueJsModern frontend development with VueJs
Modern frontend development with VueJs
 
React outbox
React outboxReact outbox
React outbox
 
Building iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" DominoBuilding iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" Domino
 
Client-side Rendering with AngularJS
Client-side Rendering with AngularJSClient-side Rendering with AngularJS
Client-side Rendering with AngularJS
 
Html5 For Jjugccc2009fall
Html5 For Jjugccc2009fallHtml5 For Jjugccc2009fall
Html5 For Jjugccc2009fall
 
Understanding backbonejs
Understanding backbonejsUnderstanding backbonejs
Understanding backbonejs
 

More from Cédric Hüsler

Building Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGiBuilding Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGiCédric Hüsler
 
CRX 2 Content Application Platform
CRX 2 Content Application PlatformCRX 2 Content Application Platform
CRX 2 Content Application PlatformCédric Hüsler
 
Day CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neuDay CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neuCédric Hüsler
 
Blogs, Wikis and Enterprise Social Networking Software
Blogs, Wikis and Enterprise Social Networking SoftwareBlogs, Wikis and Enterprise Social Networking Software
Blogs, Wikis and Enterprise Social Networking SoftwareCédric Hüsler
 
New recipes for the ever growing content cloud
New recipes for the ever growing content cloudNew recipes for the ever growing content cloud
New recipes for the ever growing content cloudCédric Hüsler
 
Cloud Based Content Services
Cloud Based Content ServicesCloud Based Content Services
Cloud Based Content ServicesCédric Hüsler
 
Data First in Cloud Persistence
Data First in Cloud PersistenceData First in Cloud Persistence
Data First in Cloud PersistenceCédric Hüsler
 
CMIS PlugFest (April 2009) Screenshots
CMIS PlugFest (April 2009) ScreenshotsCMIS PlugFest (April 2009) Screenshots
CMIS PlugFest (April 2009) ScreenshotsCédric Hüsler
 
Imagine you blog & everybody is reading!
Imagine you blog & everybody is reading!Imagine you blog & everybody is reading!
Imagine you blog & everybody is reading!Cédric Hüsler
 
OpenID and SocialGraph/Apps
OpenID and SocialGraph/AppsOpenID and SocialGraph/Apps
OpenID and SocialGraph/AppsCédric Hüsler
 
Dataportability & Digital Identity
Dataportability & Digital IdentityDataportability & Digital Identity
Dataportability & Digital IdentityCédric Hüsler
 
Autos in Zeitung publizieren
Autos in Zeitung publizierenAutos in Zeitung publizieren
Autos in Zeitung publizierenCédric Hüsler
 
Geoweb - because location matters
Geoweb - because location mattersGeoweb - because location matters
Geoweb - because location mattersCédric Hüsler
 

More from Cédric Hüsler (16)

Building Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGiBuilding Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGi
 
CRX 2 Content Application Platform
CRX 2 Content Application PlatformCRX 2 Content Application Platform
CRX 2 Content Application Platform
 
Day CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neuDay CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neu
 
Blogs, Wikis and Enterprise Social Networking Software
Blogs, Wikis and Enterprise Social Networking SoftwareBlogs, Wikis and Enterprise Social Networking Software
Blogs, Wikis and Enterprise Social Networking Software
 
New recipes for the ever growing content cloud
New recipes for the ever growing content cloudNew recipes for the ever growing content cloud
New recipes for the ever growing content cloud
 
The 8 Don'ts of WCM
The 8 Don'ts of WCMThe 8 Don'ts of WCM
The 8 Don'ts of WCM
 
Cloud Based Content Services
Cloud Based Content ServicesCloud Based Content Services
Cloud Based Content Services
 
Data First in Cloud Persistence
Data First in Cloud PersistenceData First in Cloud Persistence
Data First in Cloud Persistence
 
CMIS PlugFest (April 2009) Screenshots
CMIS PlugFest (April 2009) ScreenshotsCMIS PlugFest (April 2009) Screenshots
CMIS PlugFest (April 2009) Screenshots
 
Day CRX Introduction
Day CRX IntroductionDay CRX Introduction
Day CRX Introduction
 
Imagine you blog & everybody is reading!
Imagine you blog & everybody is reading!Imagine you blog & everybody is reading!
Imagine you blog & everybody is reading!
 
OpenID and SocialGraph/Apps
OpenID and SocialGraph/AppsOpenID and SocialGraph/Apps
OpenID and SocialGraph/Apps
 
Dataportability & Digital Identity
Dataportability & Digital IdentityDataportability & Digital Identity
Dataportability & Digital Identity
 
Autos in Zeitung publizieren
Autos in Zeitung publizierenAutos in Zeitung publizieren
Autos in Zeitung publizieren
 
Geoweb - because location matters
Geoweb - because location mattersGeoweb - because location matters
Geoweb - because location matters
 
OpenID Authentication
OpenID AuthenticationOpenID Authentication
OpenID Authentication
 

Recently uploaded

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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
 
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
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
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
 

Recently uploaded (20)

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
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
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
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...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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
 

Experience Manager 6 Developer Features - Highlights

  • 1. The New Developer Adobe Experience Manager 6
  • 2. <div itemscope itemtype="http://schema.org/Person"> <span itemprop="name">Emily Stange</span> <span itemprop="jobTitle"> Senior Solution Consultant </span> for <span itemprop="affiliation">Adobe</span> </div> <div itemscope itemtype="http://schema.org/Person"> <span itemprop="name">Cedric Huesler</span> <span itemprop="jobTitle"> Group Product Manager Web Experience Management </span> for <span itemprop="affiliation">Adobe</span> </div>
  • 3. 6._
  • 4. TL:DR 1 2 3 Code save components quicker with Sightly New JCR repository that can handle more content faster Lots of new features/APIs and a fresh Touch- optimized UI
  • 6. Adobe Experience Manager FilesystemGIT et al Filesystem Runtime & Repository IDE Preview in Browser commit hot-deploysave save
  • 8. Adobe Experience Manager Component Model cq:Component Dialog Code ClientLibs Analytics Design Dialog Edit Config cq:Dialog (ExtJS) JSP ECMA Dialog: cq/gui/components/authoring/dialog HTML (Sightly)+JS HTML (Sightly)+Java cq:Dialog (ExtJS) cq:EditConfig cq:ClientLibraryFolder ‘analytics’ node
  • 9. Adobe Experience Manager Code <%@include file="/apps/geometrixx-media/global.jsp"%><% %><%@ page session="false" import="java.util.Iterator, com.day.cq.wcm.api.PageFilter" %><% long absParent = currentStyle.get("absParent", 2L); Page rootPage = currentPage.getAbsoluteParent((int) absParent); Iterator<Page> childPages = null; if (rootPage != null) { childPages = rootPage.listChildren(new PageFilter(request)); } %> <div class="visible-phone btn-container"> <a class="btn btn-inverse authenticate"><i class="icon-cog icon-white"></i></a> <a class="btn btn-inverse menu-dropdown">Menu <i class="icon-chevron-down icon-white"></i></a> </div> <nav> <ul> <% if (childPages != null) { while (childPages.hasNext()) { String cssStyle = ""; Page childPage = childPages.next(); if (isCurrentPage(currentPage, childPage)) { cssStyle = "class='current-page'"; } String title = getTitle(xssAPI, childPage); %><li <%=cssStyle%>><a href="<%= childPage.getPath() %>.html"><%= title %></a></li> <% } } %> </ul> <cq:include path="search" resourceType="geometrixx-media/components/page/search"/> </nav> <%! boolean isCurrentPage(Page currentPage, Page page) { return currentPage.equals(page); } String getTitle(XSSAPI xssAPI, Page page) { String navTitle = page.getNavigationTitle(); if(navTitle == null) { navTitle = page.getTitle(); } if(navTitle == null) { navTitle = page.getName(); } return xssAPI.encodeForHTML(navTitle); } %> <div class="visible-phone btn-container"> <a class="btn btn-inverse authenticate"><i class="icon-cog icon-white"></i></a> <a class="btn btn-inverse menu-dropdown">${'Menu' @ i18n} <i class="icon-chevron-down icon-white"></i></a> </div> <nav data-sly-use-topNav="TopNav"> <ul data-sly-list-navItem="${topNav.items}"> <li class="current-${navItem.isCurrent}"><a href="${navItem.page.path}.html">${navItem.title}</a></li> </ul> <div data-sly-resource="${options: path='search', resourceType='geometrixx-media/components/page/search'}"/> </nav> package apps.geometrixx_media.components.topnav; import com.adobe.cq.sightly.WcmUse; import com.day.cq.wcm.api.Page; import com.day.cq.wcm.api.PageFilter; import java.util.*; public class TopNav extends WcmUse { private List<Map<String, Object>> items = new ArrayList<Map<String, Object>>(); private String getTitle(Page page) { String navTitle = page.getNavigationTitle(); if (navTitle == null) { navTitle = page.getTitle(); if (navTitle == null) { navTitle = page.getName(); } } return navTitle; } public void activate() throws Exception { Page currentPage = getCurrentPage(); int absParent = getCurrentStyle().get("absParent", 2); Page rootPage = currentPage.getAbsoluteParent(absParent); if (rootPage != null) { Iterator<Page> childPages = rootPage.listChildren(new PageFilter(getRequest())); while (childPages.hasNext()) { Map<String, Object> navItem = new HashMap<String, Object>(); Page childPage = childPages.next(); navItem.put("page", childPage); navItem.put("title", getTitle(childPage)); navItem.put("isCurrent", new Boolean(currentPage.equals(childPage))); items.add(navItem); } } } public List<Map<String, Object>> getItems() { return items; } } Component Code (HTML+JSP) Component Code (HTML+Sightly) Reusable Java or JavaScript Code vs
  • 12. Adobe Experience Manager Microkernel Repository (aka Oak) Tar Set DataStore Indexes Tar Set JCR HTTP 5.x 6.x Microkernel ISMs for Session ISMs for Workspace Multiversion concurrency control Our & Your Code Our & Your Code SearchBinaries Nodes
 Properties Nodes, Properties, Binaries, Search CQSE Jetty
  • 14. Adobe Experience Manager 2-step Upgrade Replace JAR
 file Startup runs
 in-place
 upgrade run
 crx2oak Choice: - TAR files - MongoDB Stop Start Stop Start
  • 17. Adobe Experience Manager New & extended APIs • Sling Models • Sling Health-check • Sling Resource Merge • Translation API • Vault RPC • ContextHub • ContentInsight • eCommerce • Social Components • DAM Collection & Sets Dependencies for Maven/Gradle: http://repo.adobe.com/nexus/content/repositories/releases/com/adobe/aem/aem-api/6.0.0.1/
  • 18. TL:DR 1 2 3 Code save components quicker with Sightly New JCR repository that can handle more content faster Lots of new features/APIs and a fresh Touch- optimized UI
  • 19. What I always wanted to know?