Taking SharePoint 2010 Offline - European Best Practices Conference


Published on

My slides from the European SharePoint Best Practices Conference 2011 - Taking SharePoint 2010 Offline

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Dave to introduce the problem with client hat on – 5 mins
  • Quick hand count…
  • Ever been on a train?
  • Where you’ve seen this sign?
  • Only to get this?
  • Maybe even a pub? For a SharePint?
  • Same result… what do you do?
  • ConditionalScope: Load Data Conditionally
  • Taking SharePoint 2010 Offline - European Best Practices Conference

    1. 1. Taking Sharepoint 2010 Offline<br />
    2. 2. Agenda<br />The Business Problem<br />Out Of the Box Solutions<br />Local Drafts<br />SharePoint Workspace 2010<br />Custom Solutions<br />Silverlight Client<br />Case Study & Demo<br />
    3. 3. Aonghus Fraser<br />CTO UniTech Ltd, Gold Partner based in Edinburgh, Scotland<br />Developing Enterprise SharePoint solutions since 2003<br />Various Microsoft MCSD, MCTS, MCPD certs<br />
    4. 4. HEINEKEN UK<br />
    5. 5. A Brand Ready Business –Doing Internal Business Better<br />Now doing offline business better<br />
    6. 6. The Business Problem<br />
    7. 7. Generalising before we start…<br />Coders<br />Consultants, Developers, IT pros with Powershell<br />Ex-coders<br />Management? Sales?<br />Non-coders <br />
    8. 8.
    9. 9.
    10. 10.
    11. 11.
    12. 12.
    13. 13. Out of the box<br />Local Drafts & SharePoint Workspace 2010<br />
    14. 14. Local Drafts<br />Local copy of documents only (not lists)<br />Versioning <br />Checking in/out documents<br />Office 2007+<br />
    15. 15. SharePoint Workspace 2010<br />Successor to Microsoft Office Groove 2007<br />Standalone client or Office Professional Plus2010<br />“a client application that provides fast, any-time interactive access to document libraries and lists on Microsoft SharePoint Server 2010 and Microsoft SharePoint Foundation 2010”<br />
    16. 16. SharePoint Workspace Types<br />SharePoint workspaces<br />Synchronise library & list content between a SharePoint site and a workspace<br />Groove workspaces<br />Multi-user shared synchronised workspaces <br />Shared Folder workspaces<br />Windows folder sharing<br />
    17. 17. Cannot Sync Everything<br />Calendar/Events lists <br />Wikis <br />Blog sites <br />Portal sites <br />Form libraries <br />Slide libraries <br />Surveys <br />Site directories <br />OneNote notebooks stored in document libraries <br />IRM-protected document libraries. <br />
    18. 18. Demo<br />SharePoint Workspace 2010<br />
    19. 19. Custom Solutions<br />Getting Data Out<br />
    20. 20. Getting Data Out<br />Client Object Model APIs<br />ECMAScript (JavaScript)<br />.NET CLR Managed Code (C#/VB.NET)<br />Silverlight <br />SharePoint Native API<br />.NET Managed Code<br />SPMetal<br />Command-line tool<br />LINQ to SharePoint<br />WCF<br />
    21. 21. Client Object Model<br />WCF service under the hood (/_vti_bin/client.svc)<br />SharePoint Data<br />ClientApplication<br />.Net CLR<br />Silverlight<br />JavaScript<br />
    22. 22. ECMAScript Client Object Model<br />Must be hosted within a SharePoint Page<br />Authentication performed by the page it is hosted within<br />No ConditionalScope<br />Limited use for a disconnected client<br />
    23. 23. Silverlight Client Object Model<br />Can be run from:<br />Silverlight Web Part<br />Custom web page<br />External Application Provider (EAP) for cross-domain<br />CrossDomain.xml or ClientAccessPolicy.xml won’t work<br />Can be used Out Of Browser – local cache required for offline<br />
    24. 24. .NET CLR Client Object Model<br />Managed API – references:<br />Microsoft.SharePoint.Client.dll (~280kb)<br />Microsoft.SharePoint.Client.Runtime.dll (~145kb)<br />(Compared with Microsoft.SharePoint.dll > 15MB!)<br />Can be executed remotely e.g. WPF client<br />
    25. 25. SharePoint Native API<br />Executed on a SharePoint Server <br />Similar to WSS3/MOSS 2007<br />No limitations e.g. RunWithElevatedPrivileges<br />Typically combined with a custom (WCF) service<br />
    26. 26. SPMetal.exe<br />SharePoint Foundation+ (no need for Server)<br />Command-line tool to generate entity classes<br />Strongly-typed access to SharePoint data<br />Similar to LINQ to SharePoint<br />Visual Studio Integration (External Tools)<br />
    27. 27. SPMetal Parameters<br />Customise Entity Classes<br />Include/exclude Content Types<br />Include/exclude Columns<br />
    28. 28. SharePoint & Custom WCF<br />Dynamic Endpoints<br />Supports SOAP, REST, and WCF Data Services<br />Service Host Factory implementations<br />No web.config bindings!<br />
    29. 29. CKS:DEV<br />http://cksdev.codeplex.com/<br />WCF service SPI <br />If you are a developer CKS:DEV will make your life easier!<br />Foundation and Server versions<br />
    30. 30. DEMO<br />SPMetal, WCF, LINQ<br />
    31. 31. Silverlight client<br />Consuming SharePoint Data<br />
    32. 32. Silverlight Client – Why?<br />Low impact for IT<br />Access to file system (limited to special folders)<br />Isolated Storage<br />Out Of Browser capabilities<br />Model-View-ViewModel<br />Windows Phone 7<br />
    33. 33. Silverlight 4 OOB<br />Same small runtime (~5MB)<br />Installed Program (desktop/start menu link)<br />WebBrowsercontrol (WebBrowserBrush)<br />File System Access (limited) <br />Increased Isolated Storage (25MB)<br />
    34. 34. Sterling Isolated Storage Database<br />Isolated Storage – 25MB OOB (1MB online)<br />http://sterling.codeplex.com/<br />Compact binary serialization<br />Silverlight 4 & Windows Phone 7<br />LINQ to Object queries<br />Thanks to Jeremy Likness @jeremylikness<br />
    35. 35. MVVM Framework - Caliburn.Micro<br />Lean & Mean MVVM framework<br />Easy to configure, great documentation<br />Elegant & Testable<br />Easy to understand Conventions<br />http://caliburnmicro.codeplex.com<br />Thanks to Rob Eisenberg @EisenbergEffect<br />Honourable mentions:<br />Jounce<br />MVVM Light<br />
    36. 36. CASE STUDY<br />
    37. 37. Heineken UK Sales Tool<br />1,500 On Trade Sales People distributed nationally<br />20+ brands <br />Replaces expensive & out-of-date booklet released quarterly <br />Requirements summary:<br />“Website in a box”<br />Easy to manage data<br />Updates automatically<br />Works offline<br />
    38. 38. DEMO<br />Heineken UK Sales Tool<br />
    39. 39. Lessons learned (some painful!)<br />SPMetal Lookup fields<br />Circular reference risk <br />CrossDomain.xml & ClientAccessPolicy.xml<br />HttpHandler<br />SLLauncher.exe<br />Proxy Authentication (ISA/TMG)<br />Inet / Browser Cache<br />MVVM architecture evaluation<br />Jounce, MVVM Light, Caliburn.Micro<br />Silverlight Async Exception Handling<br />Custom Message Inspectors<br />
    40. 40. Further Info<br />Twitter: @gusfraser<br />Email: aonghus.fraser@unitech.net<br />Occasional Blog: http://techblurt.com<br />
    41. 41. Thank you<br />