SlideShare a Scribd company logo
Introducing
Sitecore Habitat
Ruud van Falier
Co-founder & Consultant at ParTech
April 26, 2016
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 2
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
“Habitat is a Sitecore solution example built on a modular
architecture.”
What is Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved.
“Habitat is a Sitecore solution example built on a modular
architecture.”
“Habitat is a Sitecore solution framework focused on
streamlining the development process and optimizing
productivity.”
What is Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 5
• Open source
• Based on open standards
• Focus on architecture
What is Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 6
Focus on architecture:
• Flexibility
• Extensibility
• Simplicity
What is Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 7
“Web applications are unstable”
- Abraham Lincoln, 1864
Why Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 8
Why Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 9
Why Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 10
Why Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 11
Why Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 12
Why Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 13
Why Habitat?
A
B
C D
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 14
Why Habitat?
A
B
C D E
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 15
Why Habitat?
A
B
C D
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 16
Why Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 17
Why Habitat?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 18
Layered architecture
FOUNDATIONFEATURESPROJECTS
Site-specific content & styling
Solution specific features
Foundational features
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 19
Layered architecture
FOUNDATIONFEATURESPROJECTS
Site 1
(e.g. Corporate)
Content
Indexing
Site 2
(e.g. Webshop)
Navigation
Search
Security
Products
Sitemap
Forms
Cart
Taxonomy Assets Extensions Theming
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 20
Layered architecture
FOUNDATIONFEATURESPROJECTS
Site 1
(e.g. Corporate)
Content
Indexing
Site 2
(e.g. Webshop)
Navigation
Search
Security
Products
Sitemap
Forms
Cart
Taxonomy Assets Extensions Theming
Dependencies
Dependencies
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 21
Sitecore 8.1 ASP.NET MVC DynamicPlaceholders Unicorn 3.1 Bootstrap jQuery Sass Gulp
Technology stack
Assets Indexing Installer MultiSite Serialization SitecoreExtensions
Foundation
Accounts Identity Language Media Metadata Navigation News PageContent Person
Search Social Teasers
Features
Website Design
Project
Layered architecture
Demonstration
Habitat inVisual Studio
22
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 23
• Everything is a module
• A module has one single purpose (no “Helper” or “Utility”
modules)
• Modules are kept separated from each other (High
Cohesion/Low Coupling)
• A module is self contained
• A module is as stable as possible
Modules
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 24
“The granule of reuse is the granule of release”
https://en.wikipedia.org/wiki/Package_principles
• What belongs together is maintained and released together
• A module contains all types of data that are applicable to the module:
• Code
• Configuration
• Templates
• Renderings
• Items
Modules
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 25
“Classes that change together, belong together”
https://en.wikipedia.org/wiki/Package_principles
• Define what belongs to a single module.
• Minimize the risk of a change influencing the module
• The Habitat architecture is pointless without this
• Features output semantic HTML
• Site-specific styling belongs in the Project layer
• Only include files that belong to the module. Do not include out-of-
the-box Sitecore files or other dependencies
Modules
Demonstration
Contents of a module
26
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 27
• Levels of stability
• The closer to the Foundation layer, the more stable
• The more stable the module, the more abstract
Layers
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 28
“The abstractness of a package should be in proportion to its
stability”
https://en.wikipedia.org/wiki/Package_principles
Layers
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 29
Layers
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 30
“Depend in the direction of stability”
https://en.wikipedia.org/wiki/Package_principles
• Project Layer -> Features Layer -> Foundation Layer
• Changes on a lower level layer have more impact and require
more tests
• In order to maintain productivity, we must be able to trust the
Foundation layer
Layers
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 31
Project layer modules
• Only website modules
• Very concrete and specific to
the solution
• Can contain styling (CSS and
design Javascript)
• No functional Javascript
• No business logic
Foundation layer modules
• API only
• High level of abstraction
• No references to the
Features or Project layer
• Does not contain
presentation
Features layer modules
• No references to the Project
layer
• Avoid references to other
Features layer modules
• No styling (CSS and design
Javascript)
• Can contain functional
Javascript
• Outputs semantic HTML
• Contains configuration that
is specific to the module
Layers
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 32
Cool:
• Solid architecture
• Easy to understand
• Future proof, designed for
growth
• Community support
Not so cool:
• Conventions / reasoning not
(fully) documented
• Build system
• Early days (stability)
• Not upgradable
What do I think?
© 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 33
Thomas Eldblom, Sitecore
• Sitecore Habitat Architecture 1 –
Introduction:
https://www.youtube.com/watch?v=2CELqflPhm0
• Sitecore Habitat Architecture 2 – Modules:
https://www.youtube.com/watch?v=DgPrikqFe4s
• Sitecore Habitat Architecture 3 – Layers:
https://www.youtube.com/watch?v=XKLpTMuQT4Y
Anders Laub, Pentia
• The ground breaking Sitecore Habitat:
http://laubplusco.net/the-groundbreaking-sitecore-
habitat
• http://laubplusco.net/layers-in-sitecore-modular-
architecture
Special thanks to
Download Habitat: https://github.com/Sitecore/Habitat
Thank you!
E-mail: ruud@partechit.nl
Twitter: @BrruuD
Sitecore Slack: @ruudvanfalier

More Related Content

What's hot

Everything about Sitecore Certifications
Everything about Sitecore CertificationsEverything about Sitecore Certifications
Everything about Sitecore CertificationsGopikrishna Gujjula
 
concrete5 from developer perspective
concrete5 from developer perspectiveconcrete5 from developer perspective
concrete5 from developer perspectivemainio
 
Samsung Internet 4.0
Samsung Internet 4.0Samsung Internet 4.0
Samsung Internet 4.0jungkees
 
Biztalk server 2013 1 (1)
Biztalk server 2013 1 (1)Biztalk server 2013 1 (1)
Biztalk server 2013 1 (1)Chawdary Tella
 
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Asish Padhy
 
Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012
Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012
Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012Suzanne Dergacheva
 
Custom MuleSoft connector using Java SDK
Custom MuleSoft connector using Java SDKCustom MuleSoft connector using Java SDK
Custom MuleSoft connector using Java SDKAmit Singh
 
Microservice Approach for Web Development with Micro Frontends
Microservice Approach for Web Development with Micro FrontendsMicroservice Approach for Web Development with Micro Frontends
Microservice Approach for Web Development with Micro Frontendsandrejusb
 
Micro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETMicro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETVijay Nair
 
Headless CMS. Sitecore JSS getting started, tips and tricks
Headless CMS. Sitecore JSS getting started, tips and tricksHeadless CMS. Sitecore JSS getting started, tips and tricks
Headless CMS. Sitecore JSS getting started, tips and tricksArtsem Prashkovich
 
Quality - The key to successful SOA
Quality - The key to successful SOAQuality - The key to successful SOA
Quality - The key to successful SOAWSO2
 
6 The UI Structure and The Web API
6 The UI Structure and The Web API6 The UI Structure and The Web API
6 The UI Structure and The Web APIjavadch
 
Mainframe, the fast PHP framework
Mainframe, the fast PHP frameworkMainframe, the fast PHP framework
Mainframe, the fast PHP frameworkbibakis
 
Y! Open Hack 2013 (London)
Y! Open Hack 2013 (London)Y! Open Hack 2013 (London)
Y! Open Hack 2013 (London)Gaurav Vaish
 
Wiki - a comprehensive quick-guide
Wiki - a comprehensive quick-guideWiki - a comprehensive quick-guide
Wiki - a comprehensive quick-guideMichael Gaigg
 
ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)Eugenio Minardi
 

What's hot (20)

Sitecore mvc
Sitecore mvcSitecore mvc
Sitecore mvc
 
Concrete5 workshop
Concrete5 workshopConcrete5 workshop
Concrete5 workshop
 
Everything about Sitecore Certifications
Everything about Sitecore CertificationsEverything about Sitecore Certifications
Everything about Sitecore Certifications
 
concrete5 from developer perspective
concrete5 from developer perspectiveconcrete5 from developer perspective
concrete5 from developer perspective
 
Samsung Internet 4.0
Samsung Internet 4.0Samsung Internet 4.0
Samsung Internet 4.0
 
Biztalk server 2013 1 (1)
Biztalk server 2013 1 (1)Biztalk server 2013 1 (1)
Biztalk server 2013 1 (1)
 
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
 
JavaCro'15 - GP GUI form generators - Daniel Strmečki
JavaCro'15 - GP GUI form generators - Daniel StrmečkiJavaCro'15 - GP GUI form generators - Daniel Strmečki
JavaCro'15 - GP GUI form generators - Daniel Strmečki
 
Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012
Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012
Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012
 
Custom MuleSoft connector using Java SDK
Custom MuleSoft connector using Java SDKCustom MuleSoft connector using Java SDK
Custom MuleSoft connector using Java SDK
 
Microservice Approach for Web Development with Micro Frontends
Microservice Approach for Web Development with Micro FrontendsMicroservice Approach for Web Development with Micro Frontends
Microservice Approach for Web Development with Micro Frontends
 
Micro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETMicro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JET
 
Headless CMS. Sitecore JSS getting started, tips and tricks
Headless CMS. Sitecore JSS getting started, tips and tricksHeadless CMS. Sitecore JSS getting started, tips and tricks
Headless CMS. Sitecore JSS getting started, tips and tricks
 
Quality - The key to successful SOA
Quality - The key to successful SOAQuality - The key to successful SOA
Quality - The key to successful SOA
 
6 The UI Structure and The Web API
6 The UI Structure and The Web API6 The UI Structure and The Web API
6 The UI Structure and The Web API
 
Enterprise GlassFish
Enterprise GlassFishEnterprise GlassFish
Enterprise GlassFish
 
Mainframe, the fast PHP framework
Mainframe, the fast PHP frameworkMainframe, the fast PHP framework
Mainframe, the fast PHP framework
 
Y! Open Hack 2013 (London)
Y! Open Hack 2013 (London)Y! Open Hack 2013 (London)
Y! Open Hack 2013 (London)
 
Wiki - a comprehensive quick-guide
Wiki - a comprehensive quick-guideWiki - a comprehensive quick-guide
Wiki - a comprehensive quick-guide
 
ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)
 

Viewers also liked

Sitecore - Onder de motorkop van ParTechIT.nl
Sitecore - Onder de motorkop van ParTechIT.nlSitecore - Onder de motorkop van ParTechIT.nl
Sitecore - Onder de motorkop van ParTechIT.nlRuud van Falier
 
Sitecore MVC (User Group Conference, May 23rd 2014)
Sitecore MVC (User Group Conference, May 23rd 2014)Sitecore MVC (User Group Conference, May 23rd 2014)
Sitecore MVC (User Group Conference, May 23rd 2014)Ruud van Falier
 
Maintainable Sitecore Solutions
Maintainable Sitecore SolutionsMaintainable Sitecore Solutions
Maintainable Sitecore SolutionsThomas Eldblom
 
Following Component Architecture in Sitecore solutions - Anders Laub @ SUGCON...
Following Component Architecture in Sitecore solutions - Anders Laub @ SUGCON...Following Component Architecture in Sitecore solutions - Anders Laub @ SUGCON...
Following Component Architecture in Sitecore solutions - Anders Laub @ SUGCON...Anders Laub Christoffersen
 
24 Sitecore Tips that Every Sitecore Architect Needs to Know
24 Sitecore Tips that Every Sitecore Architect Needs to Know24 Sitecore Tips that Every Sitecore Architect Needs to Know
24 Sitecore Tips that Every Sitecore Architect Needs to KnowAshish Bansal
 
Sitecore xPlatform - Introduction
Sitecore xPlatform - IntroductionSitecore xPlatform - Introduction
Sitecore xPlatform - IntroductionThomas Eldblom
 

Viewers also liked (6)

Sitecore - Onder de motorkop van ParTechIT.nl
Sitecore - Onder de motorkop van ParTechIT.nlSitecore - Onder de motorkop van ParTechIT.nl
Sitecore - Onder de motorkop van ParTechIT.nl
 
Sitecore MVC (User Group Conference, May 23rd 2014)
Sitecore MVC (User Group Conference, May 23rd 2014)Sitecore MVC (User Group Conference, May 23rd 2014)
Sitecore MVC (User Group Conference, May 23rd 2014)
 
Maintainable Sitecore Solutions
Maintainable Sitecore SolutionsMaintainable Sitecore Solutions
Maintainable Sitecore Solutions
 
Following Component Architecture in Sitecore solutions - Anders Laub @ SUGCON...
Following Component Architecture in Sitecore solutions - Anders Laub @ SUGCON...Following Component Architecture in Sitecore solutions - Anders Laub @ SUGCON...
Following Component Architecture in Sitecore solutions - Anders Laub @ SUGCON...
 
24 Sitecore Tips that Every Sitecore Architect Needs to Know
24 Sitecore Tips that Every Sitecore Architect Needs to Know24 Sitecore Tips that Every Sitecore Architect Needs to Know
24 Sitecore Tips that Every Sitecore Architect Needs to Know
 
Sitecore xPlatform - Introduction
Sitecore xPlatform - IntroductionSitecore xPlatform - Introduction
Sitecore xPlatform - Introduction
 

Similar to Introducing Sitecore Habitat - SUGCON EU 2016

Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?Peter Procházka
 
Are Frameworks Evil; Should you care about Sitecore SXA and JSS;.pdf
Are Frameworks Evil; Should you care about Sitecore SXA and JSS;.pdfAre Frameworks Evil; Should you care about Sitecore SXA and JSS;.pdf
Are Frameworks Evil; Should you care about Sitecore SXA and JSS;.pdfPeter Procházka
 
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?Peter Procházka
 
2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and DirectionsCollabNet
 
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?Peter Procházka
 
Software Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraSoftware Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraThejan Wijesinghe
 
Getting Started with OpenStack
Getting Started with OpenStackGetting Started with OpenStack
Getting Started with OpenStackCisco DevNet
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureKelly Goetsch
 
Talking to a typical customer about the road to composable @ SUGCON 2023
Talking to a typical customer about the road to composable @ SUGCON 2023Talking to a typical customer about the road to composable @ SUGCON 2023
Talking to a typical customer about the road to composable @ SUGCON 2023Gert Gullentops
 
Create great cncf user base from lessons learned from other open source com...
Create great cncf user base from   lessons learned from other open source com...Create great cncf user base from   lessons learned from other open source com...
Create great cncf user base from lessons learned from other open source com...Krishna-Kumar
 
Sitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixSitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixPeter Nazarov
 
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entitySpring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entityToni Jara
 
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entitySpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entityjordigilnieto
 
SUGCON: The Agile Nirvana of DevSecOps and Containerization
SUGCON: The Agile Nirvana of DevSecOps and ContainerizationSUGCON: The Agile Nirvana of DevSecOps and Containerization
SUGCON: The Agile Nirvana of DevSecOps and ContainerizationVasiliy Fomichev
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichIvan Paulovich
 
Design Patterns on Sitecore: The Good, the Bad and the Ugly
Design Patterns on Sitecore: The Good, the Bad and the UglyDesign Patterns on Sitecore: The Good, the Bad and the Ugly
Design Patterns on Sitecore: The Good, the Bad and the UglyMichael Reynolds
 
EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open ...
EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open ...EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open ...
EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open ...{code}
 

Similar to Introducing Sitecore Habitat - SUGCON EU 2016 (20)

Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
 
Are Frameworks Evil; Should you care about Sitecore SXA and JSS;.pdf
Are Frameworks Evil; Should you care about Sitecore SXA and JSS;.pdfAre Frameworks Evil; Should you care about Sitecore SXA and JSS;.pdf
Are Frameworks Evil; Should you care about Sitecore SXA and JSS;.pdf
 
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
 
2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions
 
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
Are Frameworks Evil? Should you care about Sitecore SXA and JSS?
 
Software Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraSoftware Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika Kumara
 
MANAGE STATIC RESOURCES IN SITECORE IN HELIX WAY
MANAGE STATIC RESOURCES IN SITECORE IN HELIX WAYMANAGE STATIC RESOURCES IN SITECORE IN HELIX WAY
MANAGE STATIC RESOURCES IN SITECORE IN HELIX WAY
 
Getting Started with OpenStack
Getting Started with OpenStackGetting Started with OpenStack
Getting Started with OpenStack
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 
Talking to a typical customer about the road to composable @ SUGCON 2023
Talking to a typical customer about the road to composable @ SUGCON 2023Talking to a typical customer about the road to composable @ SUGCON 2023
Talking to a typical customer about the road to composable @ SUGCON 2023
 
Create great cncf user base from lessons learned from other open source com...
Create great cncf user base from   lessons learned from other open source com...Create great cncf user base from   lessons learned from other open source com...
Create great cncf user base from lessons learned from other open source com...
 
MySQL HA
MySQL HAMySQL HA
MySQL HA
 
Sitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixSitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helix
 
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entitySpring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
 
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entitySpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity
 
SUGCON: The Agile Nirvana of DevSecOps and Containerization
SUGCON: The Agile Nirvana of DevSecOps and ContainerizationSUGCON: The Agile Nirvana of DevSecOps and Containerization
SUGCON: The Agile Nirvana of DevSecOps and Containerization
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan Paulovich
 
SUG Bangalore - Kick Off Session
SUG Bangalore - Kick Off SessionSUG Bangalore - Kick Off Session
SUG Bangalore - Kick Off Session
 
Design Patterns on Sitecore: The Good, the Bad and the Ugly
Design Patterns on Sitecore: The Good, the Bad and the UglyDesign Patterns on Sitecore: The Good, the Bad and the Ugly
Design Patterns on Sitecore: The Good, the Bad and the Ugly
 
EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open ...
EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open ...EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open ...
EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open ...
 

Recently uploaded

Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxAbida Shariff
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Alison B. Lowndes
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...Sri Ambati
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...Product School
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsExpeed Software
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 

Recently uploaded (20)

Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 

Introducing Sitecore Habitat - SUGCON EU 2016

  • 1. Introducing Sitecore Habitat Ruud van Falier Co-founder & Consultant at ParTech April 26, 2016
  • 2. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 2
  • 3. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. “Habitat is a Sitecore solution example built on a modular architecture.” What is Habitat?
  • 4. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. “Habitat is a Sitecore solution example built on a modular architecture.” “Habitat is a Sitecore solution framework focused on streamlining the development process and optimizing productivity.” What is Habitat?
  • 5. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 5 • Open source • Based on open standards • Focus on architecture What is Habitat?
  • 6. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 6 Focus on architecture: • Flexibility • Extensibility • Simplicity What is Habitat?
  • 7. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 7 “Web applications are unstable” - Abraham Lincoln, 1864 Why Habitat?
  • 8. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 8 Why Habitat?
  • 9. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 9 Why Habitat?
  • 10. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 10 Why Habitat?
  • 11. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 11 Why Habitat?
  • 12. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 12 Why Habitat?
  • 13. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 13 Why Habitat? A B C D
  • 14. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 14 Why Habitat? A B C D E
  • 15. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 15 Why Habitat? A B C D
  • 16. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 16 Why Habitat?
  • 17. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 17 Why Habitat?
  • 18. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 18 Layered architecture FOUNDATIONFEATURESPROJECTS Site-specific content & styling Solution specific features Foundational features
  • 19. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 19 Layered architecture FOUNDATIONFEATURESPROJECTS Site 1 (e.g. Corporate) Content Indexing Site 2 (e.g. Webshop) Navigation Search Security Products Sitemap Forms Cart Taxonomy Assets Extensions Theming
  • 20. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 20 Layered architecture FOUNDATIONFEATURESPROJECTS Site 1 (e.g. Corporate) Content Indexing Site 2 (e.g. Webshop) Navigation Search Security Products Sitemap Forms Cart Taxonomy Assets Extensions Theming Dependencies Dependencies
  • 21. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 21 Sitecore 8.1 ASP.NET MVC DynamicPlaceholders Unicorn 3.1 Bootstrap jQuery Sass Gulp Technology stack Assets Indexing Installer MultiSite Serialization SitecoreExtensions Foundation Accounts Identity Language Media Metadata Navigation News PageContent Person Search Social Teasers Features Website Design Project Layered architecture
  • 23. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 23 • Everything is a module • A module has one single purpose (no “Helper” or “Utility” modules) • Modules are kept separated from each other (High Cohesion/Low Coupling) • A module is self contained • A module is as stable as possible Modules
  • 24. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 24 “The granule of reuse is the granule of release” https://en.wikipedia.org/wiki/Package_principles • What belongs together is maintained and released together • A module contains all types of data that are applicable to the module: • Code • Configuration • Templates • Renderings • Items Modules
  • 25. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 25 “Classes that change together, belong together” https://en.wikipedia.org/wiki/Package_principles • Define what belongs to a single module. • Minimize the risk of a change influencing the module • The Habitat architecture is pointless without this • Features output semantic HTML • Site-specific styling belongs in the Project layer • Only include files that belong to the module. Do not include out-of- the-box Sitecore files or other dependencies Modules
  • 27. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 27 • Levels of stability • The closer to the Foundation layer, the more stable • The more stable the module, the more abstract Layers
  • 28. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 28 “The abstractness of a package should be in proportion to its stability” https://en.wikipedia.org/wiki/Package_principles Layers
  • 29. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 29 Layers
  • 30. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 30 “Depend in the direction of stability” https://en.wikipedia.org/wiki/Package_principles • Project Layer -> Features Layer -> Foundation Layer • Changes on a lower level layer have more impact and require more tests • In order to maintain productivity, we must be able to trust the Foundation layer Layers
  • 31. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 31 Project layer modules • Only website modules • Very concrete and specific to the solution • Can contain styling (CSS and design Javascript) • No functional Javascript • No business logic Foundation layer modules • API only • High level of abstraction • No references to the Features or Project layer • Does not contain presentation Features layer modules • No references to the Project layer • Avoid references to other Features layer modules • No styling (CSS and design Javascript) • Can contain functional Javascript • Outputs semantic HTML • Contains configuration that is specific to the module Layers
  • 32. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 32 Cool: • Solid architecture • Easy to understand • Future proof, designed for growth • Community support Not so cool: • Conventions / reasoning not (fully) documented • Build system • Early days (stability) • Not upgradable What do I think?
  • 33. © 2016 Sitecore User Group Conference Europe and its respective speakers. All rights reserved. 33 Thomas Eldblom, Sitecore • Sitecore Habitat Architecture 1 – Introduction: https://www.youtube.com/watch?v=2CELqflPhm0 • Sitecore Habitat Architecture 2 – Modules: https://www.youtube.com/watch?v=DgPrikqFe4s • Sitecore Habitat Architecture 3 – Layers: https://www.youtube.com/watch?v=XKLpTMuQT4Y Anders Laub, Pentia • The ground breaking Sitecore Habitat: http://laubplusco.net/the-groundbreaking-sitecore- habitat • http://laubplusco.net/layers-in-sitecore-modular- architecture Special thanks to Download Habitat: https://github.com/Sitecore/Habitat
  • 34. Thank you! E-mail: ruud@partechit.nl Twitter: @BrruuD Sitecore Slack: @ruudvanfalier

Editor's Notes

  1. Simpler coupling results in higher productivity because less time is spent managing dependencies
  2. Just a quick look at how the solution is structured in VS (layers, build scripts, modules – NOT CONTENTS OF MODULES)
  3. Pointless w/o it: modules must stay predictable, changes to certain functionality should affect just one module
  4. Contents of module on disk in Explorer
  5. Abstraction: more abstract = conceptually higher level Presentation = concrete, so renderings are concrete (features layer) Design = very concrete, so styling is concrete (projects layer)