Mission Impossible - A SharePoint solution with no custom code

863 views
778 views

Published on

Presentation held at the Norwegian SharePoint User Group on Februar 8th 2012.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
863
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Si mer om hva den kan forvente av løsning!
  • Hvorfor byttet de til SharePoint...?
  • I et land med mer papirbaserte prosesser.
    Partnere med papirbaserte løsninger som vi (Statoil) må forholde oss til.

    Forklare mer om hva løsningen skal løse. Hva er arbeidsflyten osv. (Saksbehandling, søknader på områder osv.)
    Få frem at koding kunne være fristende pga. spesielle behov.


  • http://www.istockphoto.com/stock-photo-17579850-open-gift-box-with-blank-label.php?st=e467641
  • Eskil jobbe tett med kundene - forstå dokumentstruktur og metadata
    Gjorde også valg av arkitektur og plattform
    Line kom inn litt senere, og jobbet tett med Eskil. Ingen av dem i nærheten av å kode.

  • Erstatter XXX from SharePoint 2007
    Veldig lite informasjon å finne på blogger o.l.!
    RBS-scenarier: streaming, avoid duplicate storage, low-cost media
  • Fun fact: you CAN create doc-sets inside doc-sets using code. For all practical matters, it seems to work fine!
  • Customer wish – not requirement
  • No support for centralized logging
  • And, for logging to the Windows Event log, you need a local registry setting to be added!
    Both ULS and Windows Event log also requires local access or similar to the physical server, and is hard to track in a load balanced environment.
    But, fortunately, a colleague had given me an idea for a simpler solution.
  • Note that «SPWeb» is required when logging in event receivers, otherwise it can be deducted via the context object.
  • http://www.istockphoto.com/stock-photo-7903601-cliff-dropping.php?st=10f0851
  • http://www.istockphoto.com/stock-photo-7394525-flexible-contortion-business-manager-in-box.php?st=5829126

    http://mindsharpblogs.com/ben/archive/2008/05/20/5501.html
  • Nevne DocKit som verktøy?
  • Invest in understanding the scenario
    Invest in understanding SharePoint «Out of the Box»
    RBS is not a panacea
    Document Sets are great, and will probably get better
    Beware of coding – log to lists
    Size matters

  • Mission Impossible - A SharePoint solution with no custom code

    1. 1. «Mission Impossible» A custom SharePoint solution with (almost) no code Thomas Svensen
    2. 2. The journey Who am I Where did we do it Why did we do it Which choices What challenges How did it go
    3. 3. am I
    4. 4. 94 Beginner to expert Data Warehouse Mobile Services Search based ads 99 05 10
    5. 5. Where did we do it
    6. 6. A Norwegian company in the Energy sector – with offices in many countries
    7. 7. Document Management History 2012 No.ofsolutions 2004Pre-historic
    8. 8. did we do it
    9. 9. 50,000 documents, divided into geographic and functional areas
    10. 10. Focus on «Out Of The Box» Less cost Less risk Faster rollout Support Easier upgrade Cloud ready! Fun 
    11. 11. Project team 2010 2011 Eskil – arkitekt Line – altmuligkvinne og «Tante Sofie» Thomas – arkitektur, utvikling og testThomas, sjekker du RBS?
    12. 12. Which choices
    13. 13. Which choices
    14. 14. The SharePoint Databases Content Config
    15. 15. SharePoint Database Size MS recommended max: 200 GB Customer max: 50 GB Need full backup/ restore, so limits still apply!
    16. 16. 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
    17. 17. 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 Demo time
    18. 18. Handover to Operations
    19. 19. 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
    20. 20. 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
    21. 21. 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
    22. 22. Folder metadata Folders can have metadata, but there is no sync to documents inside
    23. 23. Document set metadata Document sets have their metadata, automatically propagated inside it
    24. 24. Document Set Evaluation Pros • Easy for end users • No coding • Better findability • Promoted by Microsoft Cons • Not mature • Little experience anywhere • One level only
    25. 25. Document Set Findings Existing metadata with same name stops syncing No «folder specific views» No required properties
    26. 26. What challenges
    27. 27. What challenges
    28. 28. Coding – event receiver on folder Customer wish: Automatically create three specific document sets when a «unit» folder is created
    29. 29. 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
    30. 30. 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»...
    31. 31. Still no logging
    32. 32. Ideal logging: Easy to write No special permissions required Remotely accessible Centralized in a load balanced farm Easy to turn on/off at runtime
    33. 33. 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
    34. 34. How did it go
    35. 35. Does everyone make this mistake?
    36. 36. 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") Gigabytes
    37. 37. The journey Who am I Where did we do it Why did we do it Which choices What challenges How did it go
    38. 38. Takeaways
    39. 39. Takeaways • Goal: Happy Users! • Path: Focus on «Out of the Box» • Risk: Missing on either of these
    40. 40. Questions?

    ×