team development best practices for kentico cms n.
Skip this Video
Loading SlideShow in 5 Seconds..
Team Development Best Practices for Kentico CMS PowerPoint Presentation
Download Presentation
Team Development Best Practices for Kentico CMS

Loading in 2 Seconds...

play fullscreen
1 / 47

Team Development Best Practices for Kentico CMS - PowerPoint PPT Presentation

  • Uploaded on

Team Development Best Practices for Kentico CMS. Brian McKeiver, BizStream, Co-Owner & Kentico MVP. Goals. Work efficiently as a group Make your life easier as a Kentico Developer Hone your craft, make your customers happier. Cowboy. vs. Goal 1. Team.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Team Development Best Practices for Kentico CMS' - tyme

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
team development best practices for kentico cms

Team Development Best Practices for Kentico CMS

Brian McKeiver, BizStream, Co-Owner & Kentico MVP

  • Work efficiently as a group
  • Make your life easier as a Kentico Developer
  • Hone your craft, make your customers happier
goal 3
Goal 3

Gladwell’s 10,000-Hour Rule

when you see this
When you see this…

Let’s talk about this over a beer

here we go first time setup
Here We Go: First Time Setup
  • Tools of the Trade
    • Local Workstation
    • Visual Studio 2010+
    • SQL Server Management Studio 2008+
    • Source Control
    • KenticoCMS_7_0.exe
  • Goal: Install Kentico locally
reasons to install locally
Reasons to Install Locally
  • Documentation
  • Kentico Installation Manager (KIM)
  • Import Toolkit
  • App Pool Recycles are controlled
source control with kentico
Source Control with Kentico
  • Code Considerations
    • One branch or many ?
    • Depends on team size and goals
  • Database Considerations
    • Leverage built in version control, check-in & check-out
    • Why external SQL versioning products may not work
running local code
Running Local Code
  • Debug with VS2012
  • HTTP Trace via Fiddler
  • Your exceptions are yours and yours alone
  • No danger of breaking the build
shared development database
Shared Development Database
  • Key idea for Team Development

Kentico CMS SQL DB

Dev 1

Dev 2

shared development instance
Shared Development Instance
  • Running full copy of your site in TEST

Kentico CMS

Shared Dev



Dev 2

Dev 1

qa test server code
QA / Test Server Code

QA / Test can see changes faster

QA 1

Kentico CMS SQL DB

Dev 1

Dev 2

grow your craft
Grow Your Craft

There is no Try, only Do


naming standards matter
Naming Standards Matter
  • Prefix 3 - 4 characters for project name
    • Followed by fully spelled out, descriptive name
  • Display Names
    • Upper Case with spaces to delimit words
    • Prefixing with a special character is recommended because the project specific or custom object names will roll to the top of the Kentico selectors.
  • Object Code Names
    • No Spaces, no special characters, Upper camel case
    • 100% Relying on the automatic naming is not recommended
  • Use the word “Custom” in Views / Stored Procs
    • Use System Tables GUI in SiteManager to create them
making it work custom code locations
Making it work: Custom Code Locations
  • 2 Strategies
    • ~/App_Code/<Custom Code>
      • project code as sub folder
    • ~/CMSModules/<Custom Code>
    • ~/CMSWebParts/<Custom Code>


    • ~/App_Code/_framework/<Custom Code>
    • ~/_framework/<Custom Code>/CMSModules
    • ~/_framework/<Custom Code>/CMSWebParts
making it work site settings
Making it work: Site Settings

Kentico Site Settings for Team Dev

  • Check in - check out (Object Lock)
  • Object Versioning

Blog Post

object locking versioning
Object Locking & Versioning
  • Available for:
  • CSS Stylesheets
  • E-mail Templates
  • Page Layouts
  • Page Templates
  • Transformations
  • Web part Containers
  • Web part Layouts
warning 1
Warning 1

“Undo Checkout” is NOT your Friend

warning 2
Warning 2

You will not be able to see Web Part settings if another developer has a Page Template checked out or if it is checked in.

tip see all checked out objects
Tip: See All Checked Out Objects

My Desk tab to the rescue!

virtual objects with kentico
Virtual Objects with Kentico
  • Check out to File System
  • Can still use Kentico UI or External Source Control
  • Apply Changes to move back to DB
virtual objects what it does
Virtual Objects: What it does

Use any IDE / Source Control client you want while editing externally in the file system.

virtual objects how it saves you
Virtual Objects: How it Saves You
  • Kentico Cache and Object Locking
    • 2 Devs land on the same checked in page template at same time
    • One checks out the template, the second goes to get coffee
    • One is working, second comes back and checks out
    • Two checked out copies because working at localhost
virtual objects gotchas
Virtual Objects Gotchas

Object Sync Message, respect it.

deployment mode with kentico
Deployment Mode with Kentico
  • When the deployment mode is OFF
    • location of virtual objects depends on the Source control options.
  • When the deployment mode is ON
    • virtual objects are moved from the database to the file system on your disk. Target folder is ~/CMSVirtualFiles.
continuous integration ci
Continuous Integration (CI)

Lots of Options:


Team Foundation Server

Team City

value of ci
Value of CI
  • Technical Value:
    • Saves Time
    • Automatic build and deploy capabilities
    • Exercise / hone your craftsmanship
    • Adds responsibility to check ins / commits
    • Gives you metrics on code base
value of ci 2
Value of CI 2
  • Business Value:
    • Reduces Risk
    • Reduces overhead across overall development process
    • Provides better Quality Assurance
    • Raises project visibility
how to use ci with kentico
How to use CI with Kentico
  • Automatic polling
    • Build every X mins
  • Hooks
    • Build when events are triggered
    • Most common hook is: when a commit occurs
  • Most CI systems can spawn a Selenium Test
    • Automated /Recorded HTTP request
what to watch out for in upgrade hotfix
What to watch out for in upgrade / hotfix
  • Files will be overwritten if you do not segment your customizations
don t rely on the system transforms
Don’t Rely on the SystemTransforms
  • What if someone re-installs a Module ?
  • POOF
  • Cloning is your Friend
import export single
Import / Export (single)
  • Almost every object is export-able
  • Look for the small grey dropdown arrow to expand the menu
import export gotchas
Import / Export Gotchas
  • Update Documents
  • Linked Documents
  • License Issues


content stage
Content Stage

One click deployment, YES Please! Sign me up.

content stage gotchas
Content Stage Gotchas
  • Stage a task while target server has it checked out **
  • Javascript Files in Site Manager - don’t go **
  • Custom Views / Stored Procs - don’t go **
  • Tasks can get out of control
  • Large Files

(yes this is a shameless plug)

    • <add key="CMSMediaFileMaxStagingSize" value="1024" />

** Hint Hint Kentico 8 people

web farm sync
Web Farm Sync
  • Sync everything everywhere
  • Good for initial step in project lifecycle as far as developers go
  • Also great for uptime and reliability in Production Environments
deployment setting macro security
Deployment Setting: Macro Security
  • A note about Connection Strings and Macro Security
  • Ever seen this on your page ?
  • |(user)mcbeev|(hash)f2c71936597eea6f50f961a7094993459af24e51cf154f75b41032875f810dc0"
  • Use the appSetting key:
  • <add key="CMSHashStringSalt" 

value="e68b9ad6-a461-4707-8e3e-ece73f03dd02" />

team dev a few other best practices
Team Dev: A Few Other Best Practices
  • Keep Zone IDs and Web Part Control IDs as short as possible. Use Web Part Titles instead
  • Avoid Ad-hoc Templates, other devs won’t know about them
working with the marketing people
Working with the Marketing People
  • Yes even Content Admins have a right to play in the CMS
  • Separate environments for DEV and Content Admins helps
  • Use Content Staging to keep in Sync
wrapping it up
Wrapping It Up

Team Development is supported

better than ever in Kentico 7.0!

You’ve Learned

  • Work efficiently as a group
  • Make your life easier as a Kentico Developer
  • Hone your craft, make your customers happier

Assimilate as a Team.

Resistance is Futile.

Team Development FTW.

thank you
Thank You