Umbraco UK Festival 2013
J&Js adventures with agency best practice
& the hybrid MVC framework

Sharing our shit:
Jeavon Leopold - Twitter: @crumpled_Jeavon
Jeroen Breuer - Twitter: @j_breuer
What and why?
What is the Crumpled Dog framework?
• It’s a prebuilt Umbraco 6.1.x Mvc implementation with a very simple front end site
• We always start a new project with a copy of the current framework version
• Contains latest Umbraco core, packages, config tweaks, customisations, common Razor MVC snippets
& starter base document types
• It comes with a Bootstrap UI but this isn’t generally used for the basis of front end development

09/11/2013

You are on page 2
Why do we need a framework?
Creating a site from scratch is pretty easy with Umbraco, right?
• Yes, but if you have a common approach at the beginning of each project, it makes it easy for a new
developer to get to grips very quickly with something they haven’t worked on before.
• Example, a document type structure and naming from 3 different sites

09/11/2013

You are on page 3
Why do we need a framework?
Reducing YSOD fear
• For a C# developer, a YSOD is just something to fix, for a front end developer or project manager a
YSOD can be a very scary thing
• By checking and confirming compatibility of packages against the current Umbraco version included in
our framework we significantly reduce the chance of a package causing a YSOD and that makes a
happy team!

Scott – Crumpled Production Director,
fed on a diet of team efficiency
09/11/2013

You are on page 4
Why do we need a framework?
Save team time when starting every new project & enables our front end developers to do more
•
Compatible packages preinstalled
•
Common Razor helpers and snippets ready to go for news, galleries and others
•
Configured for SASS support using Optimus so our front end developers get going straight away

Will & Gui – Crumpled front end development team, fed on a diet of Sass, jQuery & HTML5

09/11/2013

You are on page 5
Packages shipped with Crumpled Framework
The Umbraco bare bones packages…
…if you are not using all of these already, you should be!
All Open Source and Free, wow!
•
•
•
•
•
•

uComponents v6.0
DAMP v2.6 CropUp version + DAMP Property Editor Value Converter
Eksponent CropUp
Imageresizer
Slimmage and SlimResponse
Umbraco Core Property Editor Value Converters (we created this as a result of using it in our framework)

Additionally
• Imageresizer Disk Cache Plugin ($849, worth every dime!)
All made possible by these amazing people

09/11/2013

You are on page 6
Packages shipped with Crumpled Framework
The Essentials for us
•
SEO Checker (€99 per domain, €499 unlimited!)
•
Structure Extensions v2.0
•
Optimus + SASS Provider
•
uSync
•
Config Tree
•
Diplo Trace Log Viewer
The helpful starters
•
Document Sorter
•
Contour (€99 per domain)
•
ezSearch

All made possible by these amazing people and a dinosaur

09/11/2013

You are on page 7
Packages shipped with Crumpled Framework
The alternative options
•
Image Cropper Extended
•
AST Amazon S3 or
•
AST Azure Media Sync
Why?
•
For some very high usage websites it is cost effective to serve media and crops from Cloudfront CDN
or Azure CDN
•
These packages together now enable this to happen out of the box!
•
Includes a RTE content parser to ensure that media placed into the RTE is also served from CDN!
•
http://www.screenr.com/P8NH (Cloudfront) or http://screenr.com/VwuH (Azure)

Made possible by these amazing people

09/11/2013

You are on page 8
Custom Umbraco Dashboards

09/11/2013

You are on page 9
Configuration Tweaks – web.config
Maximum upload size

and also, within system.webserver element

Maximum JSON serialization length

09/11/2013

You are on page 10
Configuration Tweaks – web.config
SVG and other common Mime types

Static content client caching

09/11/2013

You are on page 11
Configuration Tweaks – web.config
Static and Dynamic Url Compression

Note: Compression module must be installed in IIS and also isn’t available in IIS Express

09/11/2013

You are on page 12
Configuration Tweaks – umbracoSettings.config
Url character replacement

Thanks to Tim at Site Doctor for his
ultimate list that has been incorporated
http://blogs.thesitedoctor.co.uk/tim/2012
/11/09/The+Ultimate+UrlReplacing+Char
acter+List+For+Umbraco.aspx

09/11/2013

You are on page 13
Developing in a team with a shared database
Disable XML Cache whilst in development

Setup QA server in load balancing distribution

09/11/2013

You are on page 14
Our document type convention
•
•
•
•
•
•

09/11/2013

After much discussion we have adopted a inheriting structure:
MasterDocType – contains the properties that every page used on a
site must have
Site-MasterDocType – Container for multiple sites contains specific
properties for that site
Site-Homepage – Properties for that sites’ homepage
Site-Content-MasterDocType – Container for every page on the
website, has pageH1Title & bodyText
An additional convention we have adopted is a label property with a
alias of isDataNode, navigation snippets, sitemaps etc will all ignore
any node with this property in existence.

You are on page 15
Download the Hybrid MVC framework from
https://github.com/jbreuer/Hybrid-FrameworkBest-Practices

Crumpled Dog Design - 18 Phipp St, London EC2A 4NU
020 7739 5553 | jeavon@crumpled-dog.com | www.crumpled-dog.com

J&Js adventures with agency best practice & the hybrid MVC framework - Umbraco UK Festival 2013

  • 1.
    Umbraco UK Festival2013 J&Js adventures with agency best practice & the hybrid MVC framework Sharing our shit: Jeavon Leopold - Twitter: @crumpled_Jeavon Jeroen Breuer - Twitter: @j_breuer
  • 2.
    What and why? Whatis the Crumpled Dog framework? • It’s a prebuilt Umbraco 6.1.x Mvc implementation with a very simple front end site • We always start a new project with a copy of the current framework version • Contains latest Umbraco core, packages, config tweaks, customisations, common Razor MVC snippets & starter base document types • It comes with a Bootstrap UI but this isn’t generally used for the basis of front end development 09/11/2013 You are on page 2
  • 3.
    Why do weneed a framework? Creating a site from scratch is pretty easy with Umbraco, right? • Yes, but if you have a common approach at the beginning of each project, it makes it easy for a new developer to get to grips very quickly with something they haven’t worked on before. • Example, a document type structure and naming from 3 different sites 09/11/2013 You are on page 3
  • 4.
    Why do weneed a framework? Reducing YSOD fear • For a C# developer, a YSOD is just something to fix, for a front end developer or project manager a YSOD can be a very scary thing • By checking and confirming compatibility of packages against the current Umbraco version included in our framework we significantly reduce the chance of a package causing a YSOD and that makes a happy team! Scott – Crumpled Production Director, fed on a diet of team efficiency 09/11/2013 You are on page 4
  • 5.
    Why do weneed a framework? Save team time when starting every new project & enables our front end developers to do more • Compatible packages preinstalled • Common Razor helpers and snippets ready to go for news, galleries and others • Configured for SASS support using Optimus so our front end developers get going straight away Will & Gui – Crumpled front end development team, fed on a diet of Sass, jQuery & HTML5 09/11/2013 You are on page 5
  • 6.
    Packages shipped withCrumpled Framework The Umbraco bare bones packages… …if you are not using all of these already, you should be! All Open Source and Free, wow! • • • • • • uComponents v6.0 DAMP v2.6 CropUp version + DAMP Property Editor Value Converter Eksponent CropUp Imageresizer Slimmage and SlimResponse Umbraco Core Property Editor Value Converters (we created this as a result of using it in our framework) Additionally • Imageresizer Disk Cache Plugin ($849, worth every dime!) All made possible by these amazing people 09/11/2013 You are on page 6
  • 7.
    Packages shipped withCrumpled Framework The Essentials for us • SEO Checker (€99 per domain, €499 unlimited!) • Structure Extensions v2.0 • Optimus + SASS Provider • uSync • Config Tree • Diplo Trace Log Viewer The helpful starters • Document Sorter • Contour (€99 per domain) • ezSearch All made possible by these amazing people and a dinosaur 09/11/2013 You are on page 7
  • 8.
    Packages shipped withCrumpled Framework The alternative options • Image Cropper Extended • AST Amazon S3 or • AST Azure Media Sync Why? • For some very high usage websites it is cost effective to serve media and crops from Cloudfront CDN or Azure CDN • These packages together now enable this to happen out of the box! • Includes a RTE content parser to ensure that media placed into the RTE is also served from CDN! • http://www.screenr.com/P8NH (Cloudfront) or http://screenr.com/VwuH (Azure) Made possible by these amazing people 09/11/2013 You are on page 8
  • 9.
  • 10.
    Configuration Tweaks –web.config Maximum upload size and also, within system.webserver element Maximum JSON serialization length 09/11/2013 You are on page 10
  • 11.
    Configuration Tweaks –web.config SVG and other common Mime types Static content client caching 09/11/2013 You are on page 11
  • 12.
    Configuration Tweaks –web.config Static and Dynamic Url Compression Note: Compression module must be installed in IIS and also isn’t available in IIS Express 09/11/2013 You are on page 12
  • 13.
    Configuration Tweaks –umbracoSettings.config Url character replacement Thanks to Tim at Site Doctor for his ultimate list that has been incorporated http://blogs.thesitedoctor.co.uk/tim/2012 /11/09/The+Ultimate+UrlReplacing+Char acter+List+For+Umbraco.aspx 09/11/2013 You are on page 13
  • 14.
    Developing in ateam with a shared database Disable XML Cache whilst in development Setup QA server in load balancing distribution 09/11/2013 You are on page 14
  • 15.
    Our document typeconvention • • • • • • 09/11/2013 After much discussion we have adopted a inheriting structure: MasterDocType – contains the properties that every page used on a site must have Site-MasterDocType – Container for multiple sites contains specific properties for that site Site-Homepage – Properties for that sites’ homepage Site-Content-MasterDocType – Container for every page on the website, has pageH1Title & bodyText An additional convention we have adopted is a label property with a alias of isDataNode, navigation snippets, sitemaps etc will all ignore any node with this property in existence. You are on page 15
  • 16.
    Download the HybridMVC framework from https://github.com/jbreuer/Hybrid-FrameworkBest-Practices Crumpled Dog Design - 18 Phipp St, London EC2A 4NU 020 7739 5553 | jeavon@crumpled-dog.com | www.crumpled-dog.com