sitecore habitat (user group nl, february 11th 2016)

26
Sitecore Habitat Sitecore User Group, Evident 11 februari 2016 Ruud van Falier, ParTech IT [email protected]

Upload: ruud-van-falier

Post on 12-Feb-2017

629 views

Category:

Internet


1 download

TRANSCRIPT

Page 1: Sitecore Habitat (User Group NL, February 11th 2016)

Sitecore HabitatSitecore User Group, Evident

11 februari 2016

Ruud van Falier, ParTech [email protected]

Page 2: Sitecore Habitat (User Group NL, February 11th 2016)

“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.”

Page 3: Sitecore Habitat (User Group NL, February 11th 2016)

Open SourceGebaseerd op open standaardenFocus op architectuur

Page 4: Sitecore Habitat (User Group NL, February 11th 2016)

Focus op architectuur:SimplicityFlexibilityExtensibility

Page 5: Sitecore Habitat (User Group NL, February 11th 2016)

Web applicaties zijn onstabiel

Page 6: Sitecore Habitat (User Group NL, February 11th 2016)
Page 7: Sitecore Habitat (User Group NL, February 11th 2016)
Page 8: Sitecore Habitat (User Group NL, February 11th 2016)
Page 9: Sitecore Habitat (User Group NL, February 11th 2016)
Page 10: Sitecore Habitat (User Group NL, February 11th 2016)
Page 11: Sitecore Habitat (User Group NL, February 11th 2016)
Page 12: Sitecore Habitat (User Group NL, February 11th 2016)
Page 13: Sitecore Habitat (User Group NL, February 11th 2016)

FOUN

DATI

ONFE

ATUR

ESPR

OJEC

TS

Content & Presentation

Solution specific features

Foundational features

Page 14: Sitecore Habitat (User Group NL, February 11th 2016)

FOUN

DATI

ONFE

ATUR

ESPR

OJEC

TS

Website

Cont

ent

Indexing

Design

Navi

gatio

n

Sear

ch

Secu

rity

Prod

ucts

Site

map

Form

s

Cart

Taxonomy Assets Extensions

Dependencies

Dependencies

Page 15: Sitecore Habitat (User Group NL, February 11th 2016)

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

Page 16: Sitecore Habitat (User Group NL, February 11th 2016)

Demo: Habitat in Visual Studio

Page 17: Sitecore Habitat (User Group NL, February 11th 2016)

Modules

Alles is een module Elke module heeft één doel (geen “Helper” of

“Utility” modules) Modules blijven zoveel mogelijk gescheiden (High

Cohesion/Low Coupling) Een module is “self contained” Een module is zo “stabiel” mogelijk

Page 18: Sitecore Habitat (User Group NL, February 11th 2016)

Modules

What belongs together is maintained and released together Een module bevat alle type data dat van toepassing is op de module:

Code Configuration Templates Renderings Items

“The granule of reuse is the granule of release”https://en.wikipedia.org/wiki/Package_principles

Page 19: Sitecore Habitat (User Group NL, February 11th 2016)

Modules

Definieer wat bij één module hoort. Minimaliseer de kans dat een change invloed heeft op de module Zonder dit is de architectuur zinloos

Features bevatten symantic HTML Design en presentatie hoort in de Project layer Include alleen files die bij de solution horen, niet files van Sitecore of

andere dependencies

“Classes that change together, belong together”https://en.wikipedia.org/wiki/Package_principles

Page 20: Sitecore Habitat (User Group NL, February 11th 2016)

Demo: Opbouw van een module

Page 21: Sitecore Habitat (User Group NL, February 11th 2016)

Layers

Niveaus van stabiliteit Hoe dichter bij de onderste laag, hoe stabieler Hoe stabieler de module, hoe abstracter deze is

binnen de solution

Page 22: Sitecore Habitat (User Group NL, February 11th 2016)

Layers“The abstractness of a package should be in proportion to its stability”https://en.wikipedia.org/wiki/Package_principles

Page 23: Sitecore Habitat (User Group NL, February 11th 2016)

Layers“Depend in the direction of stability”https://en.wikipedia.org/wiki/Package_principles

Project Layer -> Features Layer -> Foundation Layer Veranderingen in een lager niveau hebben meer impact en vereisen

meer tests Voor productiviteit moeten we kunnen vertrouwen op de Foundation layer!

Page 24: Sitecore Habitat (User Group NL, February 11th 2016)

LayersProject Layer modules Alleen Website

modules Zeer concreet en

specifiek voor de solution

Kan meerdere website bevatten

Geen functionele Javascripts in het design project (hoort bij de feature)

Geen business logic!

Features Layer modules Geen references

naar Project layer Voorkom

references naar andere Features layer modules

Geen CSS of design Javascript

Semantic HTML Config specifiek

voor de module

Foundation Layer modules API only Zeer abstract en

generiek Geen references

naar Features of Project layer

Geen renderings

Hou het simpel!

Page 25: Sitecore Habitat (User Group NL, February 11th 2016)

Mijn mening

Page 26: Sitecore Habitat (User Group NL, February 11th 2016)

Thanks to: 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 http://laubplusco.net/the-groundbreaking-sitecore-habitat http://laubplusco.net/layers-in-sitecore-modular-architecture

Download Habitat: https://github.com/Sitecore/Habitat