Vous êtes sur la page 1sur 22

Sitecore User Group Bangalore | November 18, 2017

LET’S EXPLORE SITECORE HELIX

Gopikrishna Gujjula
@gopikreddy
www.gopigujjula.com

COPYRIGHT 2017
TODAY’S AGENDA

1. Sitecore Helix?
2. Explore the Helix principles
3. Layers, and Dependencies
4. Foundation, Feature, and Project
5. Sitecore Habitat
6. Demo

COPYRIGHT 2017
DEVELOPMENT OR MAINTENANCE
COPYRIGHT 2017
COPYRIGHT 2017
What is Helix?

“Helix is a set of overall design principles and conventions for Sitecore


development.”

Principles Conventions
Tells you why Tells you how

Examples Tools
Shows you Guides you

HELIX INTRODUCTION
COPYRIGHT 2017
COPYRIGHT 2017
Dependencies

DEPENDENCIES
COPYRIGHT 2017
COPYRIGHT 2017
Helix Principles

1. Stable Dependency Principle


2. Acyclic Dependencies Principle
3. Stable Abstractions Principle
4. Common Closure Principle
5. Common Reuse Principle
6. Release-Reuse Equivalency Principle

HELIX PRINCIPLES
COPYRIGHT 2017
COPYRIGHT 2017
Layers

LAYERS
COPYRIGHT 2017
COPYRIGHT 2017
Foundation Layer

 Most stable layer in the solution


 Interactions with third party libraries.
 Can contain Solution-specific business logic available to multiple features
 No solution-specific presentation elements. (no Views)
 One foundation module can depend on another foundation module. But be
ware of Acyclic Dependencies Principle

FOUNDATION LAYER
COPYRIGHT 2017
COPYRIGHT 2017
Feature Layer

 Contains concrete features of the solution as understood by the business


owners
 Ex: news, articles, website search
 Expressed as seen in the business domain of the solution and not by
technology
 Ensures that changes in one feature do not cause changes anywhere else.
 One Feature module must never depend on another Feature module

FEATURE LAYER
COPYRIGHT 2017
COPYRIGHT 2017
Project Layer

 The Project layer provides the context of the solution


 Stitches together all of the features into a cohesive solution
 Brings together the concrete graphical design

PROJECT LAYER
COPYRIGHT 2017
COPYRIGHT 2017
Templates Types

Template Type Can have a page layout? Exists in which layers

Interface template No Feature or Foundation

Page Type template Yes Project

Datasource template No Project

Settings template No Feature or Foundation

Folder template No All

Rendering Parameter Template No Feature or Foundation

TEMPLATE TYPES
COPYRIGHT 2017
COPYRIGHT 2017
PROJECT LAYER
COPYRIGHT 2017
COPYRIGHT 2017
Sitecore Habitat

 Habitat is a real Sitecore project implemented on the Sitecore Experience


Platform using Helix.
 It is an example that allows developers to see how Helix is applied and lets
developers experience a project based on these principles.

SITECORE HABITAT
COPYRIGHT 2017
COPYRIGHT 2017
References
 http://helix.sitecore.net/
 Helix/Habitat Workshop Videos
 Jason Wilkerson – Sitecore Helix Architecture
 https://github.com/sitecore/habitat/wiki

REFERENCES
COPYRIGHT 2017
COPYRIGHT 2017
THANK YOU!

COPYRIGHT 2017
Development is tough,
maintenance is easy
INTRODUCTION
COPYRIGHT 2017
COPYRIGHT 2017
What is Helix?

“Helix is a set of overall design principles and conventions for Sitecore


development.”

HELIX INTRODUCTION
COPYRIGHT 2017
COPYRIGHT 2017
Helix Principles

1. Stable Dependency Principle


2. Common Closure Principle
3. Acyclic Dependencies Principle
4. Stable Abstractions Principle
5. Release-Reuse Equivalency Principle
6. Common Reuse Principle

HELIX PRINCIPLES
COPYRIGHT 2017
COPYRIGHT 2017
Dependencies

High Coupling Low Coupling

DEPENDENCIES
COPYRIGHT 2017
COPYRIGHT 2017
Templates

Template Type Can have a page layout? Exists in which layers

Interface template No Feature or Foundation

Page type template Yes Project

Datasource template No Project

Settings template No Feature or Foundation

Folder templates No All

PROJECT LAYER
COPYRIGHT 2017
COPYRIGHT 2017
Sitecore Community

Sitecore Slack Channel


Sitecore Stack exchange
Sitecore Hackathon
Catching Exceptions
https://coresampler.fireside.fm/

SITECORE COMMUNITY
COPYRIGHT 2017
COPYRIGHT 2017