42
«Mission Impossible» A custom SharePoint solution with (almost) no code Thomas Svensen

Mission Impossible - A SharePoint solution with no custom code

Embed Size (px)

Citation preview

Page 1: Mission Impossible - A SharePoint solution with no custom code

«Mission Impossible»A custom SharePoint solution with

(almost) no code

Thomas Svensen

Page 2: Mission Impossible - A SharePoint solution with no custom code

The journey

Who am I

Where did we do it

Why did we do it

Which choices

What challenges

How did it go

Page 3: Mission Impossible - A SharePoint solution with no custom code

am I

Page 4: Mission Impossible - A SharePoint solution with no custom code

94Beginner to expert

Data

Warehouse

Mobile

Services

Search

based ads

99

05

10

Page 5: Mission Impossible - A SharePoint solution with no custom code

Wheredid we do it

Page 6: Mission Impossible - A SharePoint solution with no custom code

A Norwegian

company in the

Energy sector

– with offices

in many countries

Page 7: Mission Impossible - A SharePoint solution with no custom code

Document Management History

2012

No

. of

solu

tio

ns

2004Pre-historic

Page 8: Mission Impossible - A SharePoint solution with no custom code

did we do it

Page 9: Mission Impossible - A SharePoint solution with no custom code

50,000documents,

divided into

geographic

and

functional

areas

Page 10: Mission Impossible - A SharePoint solution with no custom code

Focus on «Out Of The Box»

Less cost

Less risk

Faster rollout

Support

Easier upgrade

Cloud ready!

Fun

Page 11: Mission Impossible - A SharePoint solution with no custom code

Project team

2010 2011

Eskil – arkitekt Line – altmuligkvinne

og «Tante Sofie»

Thomas – arkitektur,

utvikling og testThomas, sjekker du

RBS?

Page 12: Mission Impossible - A SharePoint solution with no custom code

Whichchoices

Page 13: Mission Impossible - A SharePoint solution with no custom code

Whichchoices

Page 14: Mission Impossible - A SharePoint solution with no custom code
Page 15: Mission Impossible - A SharePoint solution with no custom code

The SharePoint Databases

ContentConfig

Page 16: Mission Impossible - A SharePoint solution with no custom code

SharePoint Database Size

MS recommended max: 200 GB

Customer max: 50 GB

Need full

backup/

restore,

so limits

still apply!

Page 17: Mission Impossible - A SharePoint solution with no custom code

20 GB

Portal

20 GB

Area 1

100

GB

Area 1 docs

100

GB

Area 1 docs

100

GB

Area 2 docs

100

GB

Area 2 docs

20 GB

Area 2

100

GB

Area 1 docs

Provisioning

sites using

PowerShell

Giving

impression

of hierarchy

using

PowerShell

Page 18: Mission Impossible - A SharePoint solution with no custom code

20 GB

Portal

20 GB

Area 1

100

GB

Area 1 docs

100

GB

Area 1 docs

100

GB

Area 2 docs

100

GB

Area 2 docs

20 GB

Area 2

100

GB

Area 1 docsDemo

time

Page 19: Mission Impossible - A SharePoint solution with no custom code

Handover to Operations

Page 20: Mission Impossible - A SharePoint solution with no custom code

20 GB

Portal

20 GB

Area 1

100

GB

Area 1 docs

100

GB

Area 1 docs

100

GB

Area 2 docs

100

GB

Area 2 docs

20 GB

Area 2

100

GB

Area 1 docs

Page 21: Mission Impossible - A SharePoint solution with no custom code

Content

farm 20 GB

Portal

20 GB

Area 1

100

GB

Area 1 docs

100

GB

Area 1 docs

100

GB

Area 2 docs

100

GB

Area 2 docs

20 GB

Area 2

100

GB

Area 1 docs

Shared

Services

Farm

Search

Scope 1

Scope 2

Page 22: Mission Impossible - A SharePoint solution with no custom code

Content

farm 20 GB

Portal

20 GB

Area 1

100

GB

Area 1 docs

100

GB

Area 1 docs

100

GB

Area 2 docs

100

GB

Area 2 docs

20 GB

Area 2

100

GB

Area 1 docs

Shared

Services

Farm

Search

Managed

Metadata:

Terms

Columns

Content

Types

All sites

subscribe

to the «hub»

to ensure

full sync

Page 23: Mission Impossible - A SharePoint solution with no custom code

Folder metadata

Folderscan have

metadata,

but there is

no syncto documents

inside

Page 24: Mission Impossible - A SharePoint solution with no custom code

Document set metadata

Document

setshave their

metadata,

automatically

propagated

inside it

Page 25: Mission Impossible - A SharePoint solution with no custom code

Document Set Evaluation

Pros

• Easy for end users

• No coding

• Better findability

• Promoted by Microsoft

Cons

• Not mature

• Little experience

anywhere

• One level only

Page 26: Mission Impossible - A SharePoint solution with no custom code

Document Set Findings

Existing

metadatawith same

name stops

syncing

No «folder

specific

views»

No required

properties

Page 27: Mission Impossible - A SharePoint solution with no custom code

Whatchallenges

Page 28: Mission Impossible - A SharePoint solution with no custom code

Whatchallenges

Page 29: Mission Impossible - A SharePoint solution with no custom code

Coding – event receiver on folder

Customer wish:

Automatically

create three

specific

document sets

when a

«unit» folder

is created

Page 30: Mission Impossible - A SharePoint solution with no custom code

Time to code

First

version

working

Full

deploy

Propagate

standard

metadata

Look up

managed

metadata, incl.

struggling with logging

Cleanup,

bug fix,

test,

document

2 days5 days10 days20 days

Page 31: Mission Impossible - A SharePoint solution with no custom code

Logging SHOULD be easy!

Log.error(«Hello world!»)

SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory(

“Hello", TraceSeverity.Unexpected,EventSeverity.Error),

TraceSeverity.Unexpected, “Hello world”); }

The SharePoint version of «easy»...

Page 32: Mission Impossible - A SharePoint solution with no custom code

Still no logging

Page 33: Mission Impossible - A SharePoint solution with no custom code

Ideal logging:

Easy to writeNo special

permissions required

Remotely accessible

Centralized in a load balanced

farm

Easy to turn on/off at runtime

Page 34: Mission Impossible - A SharePoint solution with no custom code

Log to a SharePoint list!

public static void LogError(SPWeb web, string msg){

SPList logList = web.Lists.TryGetList("Logging");if (logList != null) {

var logItem = logList.Items.Add();logItem["Title"] = msg;logItem.Update();

}}

Simple interface

Easy on/off

Standard list

Page 35: Mission Impossible - A SharePoint solution with no custom code
Page 36: Mission Impossible - A SharePoint solution with no custom code

Howdid it go

Page 37: Mission Impossible - A SharePoint solution with no custom code

Does everyone

make this

mistake?

Page 38: Mission Impossible - A SharePoint solution with no custom code

Size matters

0

50

100

150

200

250

300

350

400

450

On disk Reported by SharePoint(adds metadata and

"housekeeping")

Reported by SQL(adds auditing, recycle

bin and more"housekeeping")

Gig

abyt

es

Page 39: Mission Impossible - A SharePoint solution with no custom code

The journey

Who am I

Where did we do it

Why did we do it

Which choices

What challenges

How did it go

Page 40: Mission Impossible - A SharePoint solution with no custom code

Takeaways

Page 41: Mission Impossible - A SharePoint solution with no custom code

Takeaways

• Goal: Happy Users!

• Path: Focus on «Out of the Box»

• Risk: Missing on either of these

Page 42: Mission Impossible - A SharePoint solution with no custom code

Questions?