team development best practices for kentico cms n.
Download
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


  • 211 Views
  • 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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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

goals
Goals
  • 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
  • API CHM
  • 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

http://mysite.devserver.com

Kentico CMS

Shared Dev

http://localhost:42

http://localhost:42

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

-Yoda

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>

or

    • ~/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:

Jenkins

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

WTF ?

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
    • http://mcbeev.com/...Quick-Tip-Content-Staging-and-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

Email:

bmckeiver@bizstream.com

Web:

http://www.bizstream.com

Blog:

http://www.mcbeev.com

Twitter:

@mcbeev

LinkedIn:

http://www.linkedin.com/in/brianmckeiver