+ All Categories
Home > Documents > Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · •...

Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · •...

Date post: 17-Jul-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
67
Umbraco Anti-Patterns
Transcript
Page 1: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Umbraco Anti-Patterns

Page 2: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Popular Umbraco Gold Partner Moriyama

@marcemarc

Umbraco Trainer

Page 3: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

uCssClassNameDropdown

Page 4: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new
Page 5: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new
Page 6: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

But what is this talk about ?

Not Learn by Doing...

Learn by Don’t-ing™

We learn from our mistakes, far more than we learn when things go well…

Page 7: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Sites and names have been changed to protect the

innocent…

… but all these cases are real actual Umbraco sites that I have encountered.

Page 8: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Case 1 – Misusing Umbraco Properties

… and not knowing when to stop and refactor.

Page 9: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Travel Site

Pic of site

Orange box around advert

‘Go Ski in Odense’

Page 10: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Show Odense Ski Advert Checkbox

Checkbox

Code if property checked write out html

Page 11: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Two adverts

Page 12: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new
Page 13: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

More adverts

Sunshine in Manchester Blue

Sunshine in Manchester Red

Sunshine in Manchester White

Page 14: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new
Page 15: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

it doesn't

stop here...

Page 16: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Or here...

Page 17: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

but it does

stop here:

Page 18: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

If’s forever...

Page 19: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

How on earth does this happen ?

We can only speculate

If something works, we repeat it

It’s an anti-pattern.

Page 20: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

How could you do this ?

Advert Doc Type + Multi-node Tree Picker ?

Custom Property Editor

The Grid

Nested Content

Google Ad Code

Anything but this...

Page 21: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Mitigating comments...

Page 22: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Foundation + Bootstrap

Page 23: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new
Page 24: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new
Page 25: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Credit gar til Greystate

Page 26: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Best found comment ever...

Int i=0;

for each (var thing in things){

// add one to the value i

i++

}

Page 27: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Case Number 2 – Umbraco Versions

What exactly is your Versioning policy ?

Page 28: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Rollback

Sooo Umbraco saves a version in the database

for every change in content forever,

so you can rollback:

Page 29: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

What’s the anti-pattern here ?

What if you are programmatically updating content ?

No version ?

Version !

Page 30: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new
Page 31: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Tour booking site

Page 32: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

14,006,050rows

Page 33: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

How to resolve...

Short term: UnVersion

Page 34: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Long Term

Rethink and re-architect the solution

Page 35: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

So if Marc inherits my site in the future how can I

make it a lot easier for him ?

Some quickfire don’ts…

Page 36: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

• Don’t use only one document type for every page on the site

• Don’t create a new document type for every single page

• Don’t mix your naming conventions for alias – Uppercase/Lowercase – stick to

it

• Don’t fire off a thousand things to happen on a content publish event (and

complain that publish is slow)

• Don’t use the Content Service to pull back content to display on your website

(it’s for CRUD only)

• Don’t use the Entity Framework to access Umbraco database tables directly…

Page 37: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Entity framework diagram

For the Umbraco db

Page 38: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

• Don’t rely on Umbraco.TypedMedia it is not magic

Umbraco.TypedMedia(id).Url has the capacity to YSOD

• Don’t not check for nulls!

var thing = Umbraco.TypedContent(1234);

@if (thing != null){

<h2>@thing.Name</h2>

}

Page 39: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

I still see Umbraco Logos...

… all the time

Page 40: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

uDentistsLogo

Page 41: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new
Page 42: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

uVendingMachineSticker

Page 43: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

uPintHandle

Page 44: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Case 3 – Examining Examine

Or Examine + Linq does not really support IQueryable...

Page 45: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Simple search with Umbraco TypedSearch

Page 46: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Specialist Print Magazine - 16 years of news articles

Page 47: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

So close…

Page 48: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Speedy Speed IIS Module

Official Google Pagespeedy speed speed Optimisation for Microsoft IIS

Page 49: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new
Page 50: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Speedy Speed IIS Module Irony

Page 51: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Umbraco Street Bingo

Spotting Umbraco logos is one thing…

Page 52: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Courier

Page 53: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Concierge

Page 54: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Contour

Page 55: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

POCO

Classes

Page 56: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

uSinc ?

Page 57: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Case 4 - Last minute changes

Can we just...

Page 58: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Imagine a travel site...

Page 59: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

$.get("/umbraco/api/Industry/List", { id:

selectedIndustryId, culture: '@CultureInfo.CurrentCulture'}

Page 60: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Peer review

… software testing alone has limited effectiveness…

the average effectiveness of design and code inspections

in finding problems is:

between 55 and 60 percent**

(** a meaningless figure plucked from the internet):

Page 61: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

How do we find ourselves in these situations?

It’s all about context but consider these questions…

How long will it take you to ?

Could you just ?

When will this be done ?

Page 62: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

If you ask a developer how long ?

2 Minutes…

… half a day…

Maybe 3 days…

Page 63: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

When is something actually done ?

Does Done mean Done ?

Is it ‘Done Done’ ?

Page 64: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

We live in an era of relentless positivity…

Page 65: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

When was the last time as a developer you said...

No…. ?

Page 66: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

Do I say Yes too often ?

Page 67: Umbraco Anti-Patterns - too orangeytooorangey.co.uk/media/1087/umbraco-antipatterns.pdf · • Don’t use only one document type for every page on the site • Don’t create a new

The End

Sorry,

Fail…fail fast… fail often, bask in your failure, you are learning!

Come on the Official Umbraco Training!

Be as awesome as you care to be…

And find someone you like, and who likes you, to talk through your code with

Please leave comments in your code for future version of me to smile at…


Recommended