SlideShare a Scribd company logo
Sitecore Development
Approach Evolution –
Destination Helix
Peter Nazarov
Sitecore Development and Delivery Consultant
Enterprise Software
What is undercover?
Modern Non-Functional
Enterprise Software
Requirements
• Fast Time to Market
• ROI
• Cost of Delay Risk Mitigation
• Total Cost of Ownership
Consistency
Maintainability
Resilience
Reliability
Scalability
Time to Market
• It is important to have an ability to put a new feature to production fast
• Fast enough to make customers happy
• Faster than competitors
ROI
• The money we invest in software should come back as “Profit” (a benefit for
the business) after a reasonable period
Cost of Delay
• If the software delivery is delayed it causes extra direct and indirect costs to
the business, which may be expensive and put a feasibility of the software
solution development under the question.
Total Cost of Ownership
• It is important to understand overall cost of software solution for the period
starting Requirement Gathering till the End of Life.
Maintainability (Software Code)
• Software solution maintenance and evolution costs should be reasonable –
should be in order lower than the cost of replacing the solution with a new one.
• Regular Approach to Maintainability (Software Code)
• Follow Software Architecture and Software Design Principles
• Perform Solution Code Review Regularly
• Monitor Code Metrics
• Maintainability Index
• Coupling
• Cohesion
• Cyclomatic complexity
Scalability
• Modern software needs to have an ability to scale vertically and horizontally
to support a dynamic change to performance and storage capacity
requirements.
• Regular Approach to Scalability
• Azure and other cloud bases systems
• Private Cloud is still an option
Resilience
• Software solution should be resilient to the hardware and software faults
• Regular Approach to Resilience:
• Use resilient underlying platforms and systems
• Resilient hosting infrastructure like Azure
• SQL Server and SQL Azure
• MongoDB
• Azure Search
• Solr
• Azure Web Apps
Reliability
• The business and the customers need to trust that to the software solution.
• Regular Approach to Reliability:
• Test Automation
• Regression Testing
• Unit Tests
• Integration Tests
• Spec Flow
• Selenium
• Live System Monitoring
Consistency
The investment may become
a waste if the solution design
or implementation is
inconsistent.
Sitecore Development
Approach Retrospective
How did we approach it?
Development Approach Evolution
0
2
4
6
8
10
12
14
16
2011 2013 2015 2017
Code is Separated from Sitecore Instance
Sitecore Items Serialisation
CI
N-Tier Architecture
DVCS with Branching Strategy
Continuous Deployment
No Downtime Deployments
FakeDB
Unit Tests
DDD
Automated Regression Testing
Dynamic Scalability
Modular Architecture
Coud-First Approach
Sitecore Helix
Helix is a set of overall design
principles and conventions for
Sitecore development
Does Helix Solve a Business Problem?
• Helix principles help the business, indeed.
• Increase ROI
• Mitigate Cost of Delay associated risks
• Reduce Time to Market Cycle
• Decrease Total Cost of Ownership
What is the Magic?
• Modular Architecture that focuses on key principles:
• Flexibility
• Extensibility
• Simplicity
Modular Architecture
Is it just as simple as splitting a monolithic solution into modules?
Uncontrolled Dependencies, High Coupling
Uncontrolled Dependencies, High Coupling
What does it mean to the business?
Modular Architecture
• Controlled Dependencies, Low Coupling
Controlled Dependencies, Low Coupling
What does it mean to the business?
Sitecore Habitat
Habitat is a real Sitecore project
implementation example that
allows developers to see how
Helix is applied and lets
developers experience a project
based on these principles
Using Habitat As a Starting Point
• Enables Sitecore Code Solution to have a consistent
structure that makes any Sitecore project look familiar
to all Sitecore developers
• Provides existing features that can be reused to boost
your software delivery
• Would help to reduce Sitecore Support Team response
time
Is There a Quick Start?
• Read the guidelines at http://helix.sitecore.net
• Setup Habitat-based solution
Source Code and Sitecore Instance
• Option 1:
• Clone Habitat Source code from https://github.com/Sitecore/Habitat/
• Install local Sitecore instance
• Use the version Habitat currently supports.
• Option 2:
• Use Generator Habitat: https://github.com/kamsar/generator-habitat
• Install node.js with Node Package Manger (NPM)
• Install generator-habitat using PowerShell:
npm install -g yo
npm install -g generator-habitat
• Create new Habitat based solution:
• Install new Sitecore instance in a separate location (e.g.: C:websitesmy-solution-website)
• Use the version Habitat currently supports
• In the directory where you like to create your new solution source code (e.g.: C:codemy-solution-code):
• Run: yo habitat
• Follow prompts to create a connect the source code to the installed Sitecore instance website
Adjust Habitat solution
• Rename Solution
• Use “Habitat” Project module example to create a Project module for
your website(s).
• Then delete “Habitat” Project.
• Remove Habitat modules that you don’t need
• Feature Modules
• You may like to delete all modules and create your solution specific ones
• Tips: Keep a separate instance of a complete Sitecore Habitat solution to use for
references or for bring back some Habitat modules later on
• Foundation Modules
• There are a few well-designed modules that would be useful to keep
• You should consider whether to keep or remove the other Foundation Modules
Deploy Your Code
• Open Solution Directory and run npm install using PowerShell
• In Visual Studio open Tools > Other Windows > Task Runner Explorer and
run default task
WFFM
• You may have Unicorn Sync issues because of WFFM
• Consider removing Habitat features related WFFM
• If you need a form builder upgrade to Sitecore 9
Adding new Feature and Foundation Modules
• Create the corresponding solution folder
• In the source cooed root directory use PowerShell to run
yo habitat:feature or yo habitat:foundation to generate
module code and test projects.
• Add code and test projects to your solution.
• Example: Adding “Accounts” Feature module:
Mind Dependency Direction
Key Pillars of Good Modular Architecture
• High Cohesion of Modules
• What should reside in the same module?
• What works together should live tougher (Functional Cohesion)
• Low Coupling Modules
• Minimise dependency between modules
Broken Helix Solution
Proper Helix Solution
Sitecore Items Serialization
• Unicorn (Default)
• https://github.com/kamsar/Unicorn
• TDS (Supported)
• https://www.teamdevelopmentforsitecore.com/
Is Anything Missing?
No ORM?
• Is Glass.Mapper.Sc part of Habitat?
• No, it is not. However it is easy to add it!
• Introduce “Orm” Foundation module
• Install Glass.Mapper.Sc to it
• If may also like to add Sitecore item base
interface and class models. E.g.:
• ISitecoreItemBase.cs
• SitecoreItemBase.cs
ORM - Generate Models Code
for Sitecore Templates
• You can use free T4 code generation tools
• T4 Sitecore Code Generator by Robin Hermanussen (https://github.com/hermanussen)
• https://github.com/hermanussen/sitecore.codegenerator/blob/master/README.md
• You need to install T4 Toolbox Visual Studio to run T4 templates:
• https://marketplace.visualstudio.com/items?itemName=OlegVSych.T4ToolboxforVisualStudio2017
• To enable T4 template code syntax highlight install T4 Editor:
• https://www.devart.com/t4-editor/download.html
Yes, we are good to go now!
Are there some other tips?
Some Other Tips…
Number of Modules Complexity Challenge
• Large Sitecore Solution may contain about 35-50 modules – about 70-100
projects (Code and Test)
• However, it does not need to be big without a reason
The Beauty of Module Independence
Separate Sitecore Instance from Code
• You need to have an ability to make a “fresh” deployment to Sitecore
instance
• You would need to have an ability to remove you customizations from Sitecore
instance and apply new customization. You can use the following techniques to
roll-back the file-system state:
• Version Control System (e.g. Git)
• SIM
• PowerShell (Sitecore 9)
FE Development for Sitecore
• Like to like FE and BE partial structure
• For example: Handlebars Mark-up + JSON Data Models would allow to replicate
Sitecore multi-layer partials nesting: Layout, Sublayout, Rendering, Nested
Rendering.
• Integration to BE: Replaced with Handlebars syntax with .NET + Sitecore ORM code.
• http://handlebarsjs.com/partials.html
• You may consider separating out FE code into Git branch or Repo
• Use Separate FE QA Environment and FE-only Testing process (no back-end)
• FE development without a need to make a manual mark-up integration to
Sitecore?
• Consider using Sitecore JSS (In Preview)
• React.js
• Other FE framework support is upcoming…
CI Run and Deployment
• Build the code (e.g. TeamCity)
• Quickest option – use the same Habitat provided Gulp build script
• Deploy (e.g. Octopus Deploy)
• Changes you may like to make
• Replace Gulp MSBuild based Configuration Files Transformation task with a call to
“Microsoft.Web.XmlTransform.dll”
• Call PowerShell script file directly to run Unicorn Sync
Does it Work in Real Life?
Any success stories?
Real Experience with Habitat-Based Software Delivery
• Small Solution - 8 weeks from scratch
• A content website with Sitecore Search features and lightweight third party
integration (including CI and CD).
• Agile Team:
• 1 UI/UX
• 1 FE Dev
• 1 Sitecore BE Dev
• Large Solution– International multi-country ongoing programme
(2 years+ roadmap) for large international business
• Consistent Brand Presentation
• Separated Code Base for EU and USA
• Variety of Back-end Systems Integration
• Distributed Agile Teams: 20-30 people
Habitat Related Articles and Tools
• Helix Modules
• Helix Guidelines: http://helix.sitecore.net
• Cohesion: https://en.wikipedia.org/wiki/Cohesion_(computer_science)#Types_of_cohesion
• Coupling: https://en.wikipedia.org/wiki/Coupling_(computer_programming)
• Alan Coates’s Blog
• https://blog.coates.dk/2017/01/17/helix-and-modular-architecture/
• https://blog.coates.dk/2017/04/18/sitecore-helix-modules-that-need-to-reference-another-module-in-the-same-layer-part-1/
• https://blog.coates.dk/2017/04/26/sitecore-helix-modules-that-need-to-reference-another-module-in-the-same-layer-part-2/
• https://blog.coates.dk/2017/04/08/sitecore-helix-modules-that-need-to-reference-another-module-in-the-same-layer-part-3/
• T4 Tools
• https://github.com/hermanussen/sitecore.codegenerator/blob/master/README.md
• Sitecore Unicorn
• https://github.com/kamsar/Unicorn/releases/tag/4.0.0
• Glass.Mapper.Sc
• http://www.glass.lu/Mapper/Sc/Tutorials
• Node Package Manager
• https://www.npmjs.com/get-npm
• Gulp
• https://gulpjs.com/
• Sitecore Fake Database
• https://github.com/sergeyshushlyapin/Sitecore.FakeDb
• JSS: https://jss.sitecore.net/
Thank You
Staying in Touch
LinkedIn: linkedin.com/in/peternazarov
Slack: sitecorechat.slack.com
Your Software Solution + Helix & Habitat $u¢¢€$$=
Q&A
Staying in Touch
LinkedIn: linkedin.com/in/peternazarov
Slack: sitecorechat.slack.com
Your Software Solution + Helix & Habitat $u¢¢€$$=
Ad

More Related Content

What's hot (20)

Grails At Linked
Grails At LinkedGrails At Linked
Grails At Linked
LinkedIn
 
O365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
O365Con18 - SharePoint Framework for Administrators - Waldek MastykarzO365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
O365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
NCCOMMS
 
Java APIs - the missing manual
Java APIs - the missing manualJava APIs - the missing manual
Java APIs - the missing manual
Hendrik Ebbers
 
Getting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentGetting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online development
Jeremy Thake
 
SOA Suite 12c Customer implementation
SOA Suite 12c Customer implementationSOA Suite 12c Customer implementation
SOA Suite 12c Customer implementation
Michel Schildmeijer
 
Introduction to Module Development with Appcelerator Titanium
Introduction to Module Development with Appcelerator TitaniumIntroduction to Module Development with Appcelerator Titanium
Introduction to Module Development with Appcelerator Titanium
Aaron Saunders
 
JIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesJIRA Performance After 300,000 Issues
JIRA Performance After 300,000 Issues
Atlassian
 
Big ideas in small packages - How microservices helped us to scale our vision
Big ideas in small packages  - How microservices helped us to scale our visionBig ideas in small packages  - How microservices helped us to scale our vision
Big ideas in small packages - How microservices helped us to scale our vision
Sebastian Schleicher
 
Mainframe, the fast PHP framework
Mainframe, the fast PHP frameworkMainframe, the fast PHP framework
Mainframe, the fast PHP framework
bibakis
 
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...
VMworld
 
Developing in the Cloud
Developing in the CloudDeveloping in the Cloud
Developing in the Cloud
Ryan Cuprak
 
Adobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep diveAdobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep dive
mwmd
 
10 Tips to Pump Up Your Atlassian Performance
10 Tips to Pump Up Your Atlassian Performance10 Tips to Pump Up Your Atlassian Performance
10 Tips to Pump Up Your Atlassian Performance
Atlassian
 
Java Desktop 2019
Java Desktop 2019Java Desktop 2019
Java Desktop 2019
Hendrik Ebbers
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
Continuous Delivery with Jenkins
Continuous Delivery with JenkinsContinuous Delivery with Jenkins
Continuous Delivery with Jenkins
Jadson Santos
 
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Bartosz Chrabski
 
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
Eric Shupps
 
Top modules
Top modulesTop modules
Top modules
jhamiltoorion
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Bruno Borges
 
Grails At Linked
Grails At LinkedGrails At Linked
Grails At Linked
LinkedIn
 
O365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
O365Con18 - SharePoint Framework for Administrators - Waldek MastykarzO365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
O365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
NCCOMMS
 
Java APIs - the missing manual
Java APIs - the missing manualJava APIs - the missing manual
Java APIs - the missing manual
Hendrik Ebbers
 
Getting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentGetting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online development
Jeremy Thake
 
SOA Suite 12c Customer implementation
SOA Suite 12c Customer implementationSOA Suite 12c Customer implementation
SOA Suite 12c Customer implementation
Michel Schildmeijer
 
Introduction to Module Development with Appcelerator Titanium
Introduction to Module Development with Appcelerator TitaniumIntroduction to Module Development with Appcelerator Titanium
Introduction to Module Development with Appcelerator Titanium
Aaron Saunders
 
JIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesJIRA Performance After 300,000 Issues
JIRA Performance After 300,000 Issues
Atlassian
 
Big ideas in small packages - How microservices helped us to scale our vision
Big ideas in small packages  - How microservices helped us to scale our visionBig ideas in small packages  - How microservices helped us to scale our vision
Big ideas in small packages - How microservices helped us to scale our vision
Sebastian Schleicher
 
Mainframe, the fast PHP framework
Mainframe, the fast PHP frameworkMainframe, the fast PHP framework
Mainframe, the fast PHP framework
bibakis
 
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK ...
VMworld
 
Developing in the Cloud
Developing in the CloudDeveloping in the Cloud
Developing in the Cloud
Ryan Cuprak
 
Adobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep diveAdobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep dive
mwmd
 
10 Tips to Pump Up Your Atlassian Performance
10 Tips to Pump Up Your Atlassian Performance10 Tips to Pump Up Your Atlassian Performance
10 Tips to Pump Up Your Atlassian Performance
Atlassian
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
Continuous Delivery with Jenkins
Continuous Delivery with JenkinsContinuous Delivery with Jenkins
Continuous Delivery with Jenkins
Jadson Santos
 
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Bartosz Chrabski
 
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
Eric Shupps
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Bruno Borges
 

Similar to Sitecore development approach evolution – destination helix (20)

New life inside monolithic application
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic application
Taras Matyashovsky
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
XPDays
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
Jeremy Thake
 
Sitecore - what to look forward to
Sitecore - what to look forward toSitecore - what to look forward to
Sitecore - what to look forward to
jinto77
 
Developing with Sitecore Personalize SDK.pptx
Developing with Sitecore Personalize SDK.pptxDeveloping with Sitecore Personalize SDK.pptx
Developing with Sitecore Personalize SDK.pptx
Dylan Young
 
Desert Code Camp Presentation
Desert Code Camp PresentationDesert Code Camp Presentation
Desert Code Camp Presentation
LifeCycle Delivery
 
GCP Deployment- Vertex AI
GCP Deployment- Vertex AIGCP Deployment- Vertex AI
GCP Deployment- Vertex AI
Triloki Gupta
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
Adam Getchell
 
Why real integration developers ride Camels
Why real integration developers ride CamelsWhy real integration developers ride Camels
Why real integration developers ride Camels
Christian Posta
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
Taylor Lovett
 
An Overview of Hedgehog’s Tools and Modules
An Overview of Hedgehog’s Tools and ModulesAn Overview of Hedgehog’s Tools and Modules
An Overview of Hedgehog’s Tools and Modules
Sean Holmesby
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
Comsysto Reply GmbH
 
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Anupam Ranku
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud Road
Gert Drapers
 
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case studySymfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Gaetano Giunta
 
Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?
Jeff Bramwell
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
Henry S
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Perficient, Inc.
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Vadym Kazulkin
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino Designer
Paul Withers
 
New life inside monolithic application
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic application
Taras Matyashovsky
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
XPDays
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
Jeremy Thake
 
Sitecore - what to look forward to
Sitecore - what to look forward toSitecore - what to look forward to
Sitecore - what to look forward to
jinto77
 
Developing with Sitecore Personalize SDK.pptx
Developing with Sitecore Personalize SDK.pptxDeveloping with Sitecore Personalize SDK.pptx
Developing with Sitecore Personalize SDK.pptx
Dylan Young
 
GCP Deployment- Vertex AI
GCP Deployment- Vertex AIGCP Deployment- Vertex AI
GCP Deployment- Vertex AI
Triloki Gupta
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
Adam Getchell
 
Why real integration developers ride Camels
Why real integration developers ride CamelsWhy real integration developers ride Camels
Why real integration developers ride Camels
Christian Posta
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
Taylor Lovett
 
An Overview of Hedgehog’s Tools and Modules
An Overview of Hedgehog’s Tools and ModulesAn Overview of Hedgehog’s Tools and Modules
An Overview of Hedgehog’s Tools and Modules
Sean Holmesby
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
Comsysto Reply GmbH
 
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Anupam Ranku
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud Road
Gert Drapers
 
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case studySymfony2 for legacy app rejuvenation: the eZ Publish case study
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Gaetano Giunta
 
Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?
Jeff Bramwell
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
Henry S
 
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Dart Past Your Competition by Getting Your Digital Experience into Market Fas...
Perficient, Inc.
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Vadym Kazulkin
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino Designer
Paul Withers
 
Ad

Recently uploaded (20)

Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Ad

Sitecore development approach evolution – destination helix

  • 1. Sitecore Development Approach Evolution – Destination Helix Peter Nazarov Sitecore Development and Delivery Consultant
  • 3. Modern Non-Functional Enterprise Software Requirements • Fast Time to Market • ROI • Cost of Delay Risk Mitigation • Total Cost of Ownership Consistency Maintainability Resilience Reliability Scalability
  • 4. Time to Market • It is important to have an ability to put a new feature to production fast • Fast enough to make customers happy • Faster than competitors
  • 5. ROI • The money we invest in software should come back as “Profit” (a benefit for the business) after a reasonable period
  • 6. Cost of Delay • If the software delivery is delayed it causes extra direct and indirect costs to the business, which may be expensive and put a feasibility of the software solution development under the question.
  • 7. Total Cost of Ownership • It is important to understand overall cost of software solution for the period starting Requirement Gathering till the End of Life.
  • 8. Maintainability (Software Code) • Software solution maintenance and evolution costs should be reasonable – should be in order lower than the cost of replacing the solution with a new one. • Regular Approach to Maintainability (Software Code) • Follow Software Architecture and Software Design Principles • Perform Solution Code Review Regularly • Monitor Code Metrics • Maintainability Index • Coupling • Cohesion • Cyclomatic complexity
  • 9. Scalability • Modern software needs to have an ability to scale vertically and horizontally to support a dynamic change to performance and storage capacity requirements. • Regular Approach to Scalability • Azure and other cloud bases systems • Private Cloud is still an option
  • 10. Resilience • Software solution should be resilient to the hardware and software faults • Regular Approach to Resilience: • Use resilient underlying platforms and systems • Resilient hosting infrastructure like Azure • SQL Server and SQL Azure • MongoDB • Azure Search • Solr • Azure Web Apps
  • 11. Reliability • The business and the customers need to trust that to the software solution. • Regular Approach to Reliability: • Test Automation • Regression Testing • Unit Tests • Integration Tests • Spec Flow • Selenium • Live System Monitoring
  • 12. Consistency The investment may become a waste if the solution design or implementation is inconsistent.
  • 14. Development Approach Evolution 0 2 4 6 8 10 12 14 16 2011 2013 2015 2017 Code is Separated from Sitecore Instance Sitecore Items Serialisation CI N-Tier Architecture DVCS with Branching Strategy Continuous Deployment No Downtime Deployments FakeDB Unit Tests DDD Automated Regression Testing Dynamic Scalability Modular Architecture Coud-First Approach
  • 15. Sitecore Helix Helix is a set of overall design principles and conventions for Sitecore development
  • 16. Does Helix Solve a Business Problem? • Helix principles help the business, indeed. • Increase ROI • Mitigate Cost of Delay associated risks • Reduce Time to Market Cycle • Decrease Total Cost of Ownership
  • 17. What is the Magic? • Modular Architecture that focuses on key principles: • Flexibility • Extensibility • Simplicity
  • 18. Modular Architecture Is it just as simple as splitting a monolithic solution into modules?
  • 20. Uncontrolled Dependencies, High Coupling What does it mean to the business?
  • 21. Modular Architecture • Controlled Dependencies, Low Coupling
  • 22. Controlled Dependencies, Low Coupling What does it mean to the business?
  • 23. Sitecore Habitat Habitat is a real Sitecore project implementation example that allows developers to see how Helix is applied and lets developers experience a project based on these principles
  • 24. Using Habitat As a Starting Point • Enables Sitecore Code Solution to have a consistent structure that makes any Sitecore project look familiar to all Sitecore developers • Provides existing features that can be reused to boost your software delivery • Would help to reduce Sitecore Support Team response time
  • 25. Is There a Quick Start? • Read the guidelines at http://helix.sitecore.net • Setup Habitat-based solution
  • 26. Source Code and Sitecore Instance • Option 1: • Clone Habitat Source code from https://github.com/Sitecore/Habitat/ • Install local Sitecore instance • Use the version Habitat currently supports. • Option 2: • Use Generator Habitat: https://github.com/kamsar/generator-habitat • Install node.js with Node Package Manger (NPM) • Install generator-habitat using PowerShell: npm install -g yo npm install -g generator-habitat • Create new Habitat based solution: • Install new Sitecore instance in a separate location (e.g.: C:websitesmy-solution-website) • Use the version Habitat currently supports • In the directory where you like to create your new solution source code (e.g.: C:codemy-solution-code): • Run: yo habitat • Follow prompts to create a connect the source code to the installed Sitecore instance website
  • 27. Adjust Habitat solution • Rename Solution • Use “Habitat” Project module example to create a Project module for your website(s). • Then delete “Habitat” Project. • Remove Habitat modules that you don’t need • Feature Modules • You may like to delete all modules and create your solution specific ones • Tips: Keep a separate instance of a complete Sitecore Habitat solution to use for references or for bring back some Habitat modules later on • Foundation Modules • There are a few well-designed modules that would be useful to keep • You should consider whether to keep or remove the other Foundation Modules
  • 28. Deploy Your Code • Open Solution Directory and run npm install using PowerShell • In Visual Studio open Tools > Other Windows > Task Runner Explorer and run default task
  • 29. WFFM • You may have Unicorn Sync issues because of WFFM • Consider removing Habitat features related WFFM • If you need a form builder upgrade to Sitecore 9
  • 30. Adding new Feature and Foundation Modules • Create the corresponding solution folder • In the source cooed root directory use PowerShell to run yo habitat:feature or yo habitat:foundation to generate module code and test projects. • Add code and test projects to your solution. • Example: Adding “Accounts” Feature module:
  • 32. Key Pillars of Good Modular Architecture • High Cohesion of Modules • What should reside in the same module? • What works together should live tougher (Functional Cohesion) • Low Coupling Modules • Minimise dependency between modules
  • 35. Sitecore Items Serialization • Unicorn (Default) • https://github.com/kamsar/Unicorn • TDS (Supported) • https://www.teamdevelopmentforsitecore.com/
  • 37. No ORM? • Is Glass.Mapper.Sc part of Habitat? • No, it is not. However it is easy to add it! • Introduce “Orm” Foundation module • Install Glass.Mapper.Sc to it • If may also like to add Sitecore item base interface and class models. E.g.: • ISitecoreItemBase.cs • SitecoreItemBase.cs
  • 38. ORM - Generate Models Code for Sitecore Templates • You can use free T4 code generation tools • T4 Sitecore Code Generator by Robin Hermanussen (https://github.com/hermanussen) • https://github.com/hermanussen/sitecore.codegenerator/blob/master/README.md • You need to install T4 Toolbox Visual Studio to run T4 templates: • https://marketplace.visualstudio.com/items?itemName=OlegVSych.T4ToolboxforVisualStudio2017 • To enable T4 template code syntax highlight install T4 Editor: • https://www.devart.com/t4-editor/download.html
  • 39. Yes, we are good to go now! Are there some other tips?
  • 41. Number of Modules Complexity Challenge • Large Sitecore Solution may contain about 35-50 modules – about 70-100 projects (Code and Test) • However, it does not need to be big without a reason
  • 42. The Beauty of Module Independence
  • 43. Separate Sitecore Instance from Code • You need to have an ability to make a “fresh” deployment to Sitecore instance • You would need to have an ability to remove you customizations from Sitecore instance and apply new customization. You can use the following techniques to roll-back the file-system state: • Version Control System (e.g. Git) • SIM • PowerShell (Sitecore 9)
  • 44. FE Development for Sitecore • Like to like FE and BE partial structure • For example: Handlebars Mark-up + JSON Data Models would allow to replicate Sitecore multi-layer partials nesting: Layout, Sublayout, Rendering, Nested Rendering. • Integration to BE: Replaced with Handlebars syntax with .NET + Sitecore ORM code. • http://handlebarsjs.com/partials.html • You may consider separating out FE code into Git branch or Repo • Use Separate FE QA Environment and FE-only Testing process (no back-end) • FE development without a need to make a manual mark-up integration to Sitecore? • Consider using Sitecore JSS (In Preview) • React.js • Other FE framework support is upcoming…
  • 45. CI Run and Deployment • Build the code (e.g. TeamCity) • Quickest option – use the same Habitat provided Gulp build script • Deploy (e.g. Octopus Deploy) • Changes you may like to make • Replace Gulp MSBuild based Configuration Files Transformation task with a call to “Microsoft.Web.XmlTransform.dll” • Call PowerShell script file directly to run Unicorn Sync
  • 46. Does it Work in Real Life? Any success stories?
  • 47. Real Experience with Habitat-Based Software Delivery • Small Solution - 8 weeks from scratch • A content website with Sitecore Search features and lightweight third party integration (including CI and CD). • Agile Team: • 1 UI/UX • 1 FE Dev • 1 Sitecore BE Dev • Large Solution– International multi-country ongoing programme (2 years+ roadmap) for large international business • Consistent Brand Presentation • Separated Code Base for EU and USA • Variety of Back-end Systems Integration • Distributed Agile Teams: 20-30 people
  • 48. Habitat Related Articles and Tools • Helix Modules • Helix Guidelines: http://helix.sitecore.net • Cohesion: https://en.wikipedia.org/wiki/Cohesion_(computer_science)#Types_of_cohesion • Coupling: https://en.wikipedia.org/wiki/Coupling_(computer_programming) • Alan Coates’s Blog • https://blog.coates.dk/2017/01/17/helix-and-modular-architecture/ • https://blog.coates.dk/2017/04/18/sitecore-helix-modules-that-need-to-reference-another-module-in-the-same-layer-part-1/ • https://blog.coates.dk/2017/04/26/sitecore-helix-modules-that-need-to-reference-another-module-in-the-same-layer-part-2/ • https://blog.coates.dk/2017/04/08/sitecore-helix-modules-that-need-to-reference-another-module-in-the-same-layer-part-3/ • T4 Tools • https://github.com/hermanussen/sitecore.codegenerator/blob/master/README.md • Sitecore Unicorn • https://github.com/kamsar/Unicorn/releases/tag/4.0.0 • Glass.Mapper.Sc • http://www.glass.lu/Mapper/Sc/Tutorials • Node Package Manager • https://www.npmjs.com/get-npm • Gulp • https://gulpjs.com/ • Sitecore Fake Database • https://github.com/sergeyshushlyapin/Sitecore.FakeDb • JSS: https://jss.sitecore.net/
  • 49. Thank You Staying in Touch LinkedIn: linkedin.com/in/peternazarov Slack: sitecorechat.slack.com Your Software Solution + Helix & Habitat $u¢¢€$$=
  • 50. Q&A Staying in Touch LinkedIn: linkedin.com/in/peternazarov Slack: sitecorechat.slack.com Your Software Solution + Helix & Habitat $u¢¢€$$=