Empowering business users with hybrid solutions


Published on

Empowering business users with hybrid solutions - Presented by Bob German 6 March 2013 at SPTechCon San Francisco

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

Empowering business users with hybrid solutions

  1. 1. Empowering BusinesswithHybrid Code/No-CodeSolutionsBob GermanSharePoint Practice DirectorBlueMetal Architects @Bob1German
  2. 2. BlueMetal Architects  We are experts at building solutions that exactly meet the needs of our customers by apply the right people, processes and platforms.  Our focus is on modernizing applications through expertise in Creative, Social, Development and Data.  We have offices in Boston, New York, and Chicago.Bob GermanSharePoint Practice Director and Principal Architectat BlueMetal ArchitectsDeveloper and architect on the SharePoint platformsince it was called “Site Server 3.0”Co-author of SharePoint 2010 Development withSilverlight for Addison-Wesleyhttp://blogs.msdn.com/BobGermanAbout the Speaker @Bob1German
  3. 3. Business Users Power Users / Analysts Developers Business Technical Business Technical Business TechnicalSharePoint People @Bob1German
  4. 4. How can we develop SharePoint solutions whichDesign for Empowerment empower business users to: Maintain and update the solution Change the solution to accommodate new business needs Innovate Empowering the Power Users @Bob1German
  5. 5. Robots Past and Present Degrees of Freedom @Bob1German
  6. 6. How can we add degrees of freedom to these solutions?Agenda @Bob1German
  7. 7.  Business Agility  Business processes  Products and services  Scale  Markets Organizational Agility  Can other orgs use something similar?  How would a reorg affect the solution? Technical Agility  How will this work in the next version of SharePoint?  How will this work in the next generation of client technology? Low-hanging Fruit  Sometimes it’s just as easy to build something flexible…A Question of Agility @Bob1German
  8. 8.  Web Parts empower business users to build their own pages and mash-ups but… Sometimes there isn’t a web part to do something For more degrees of freedom: Find ways to make the web part general  Allow for flexible editing  Build a connectable web part that can be configured in a flexible way Approach 2007 2010 2013 Beyond Configurable Yes Yes Yes Almost Web Part Certainly Connected Web Yes Yes Yes Probably PartWeb Parts @Bob1German
  9. 9. Client wanted a web part that shows users the weatherforecast for their location based on user profileClient liked Accuweather widget but it isn’t integratedwith SharePointWanted the user’s zip code to drive the displayScenario 1 – Weather Web @Bob1German
  10. 10. Client wanted a user directory web part to put on adepartmental web pageScenario 2 – @Bob1GermanDirectory User
  11. 11. Client wanted a collaborative “dashboard” showingall aspects of a property undermanagementScenario 3 – CollaborativeDashboard @Bob1German
  12. 12. 1. Allow editing of HTML and other visual settings 2. Think of similar / related use cases 3. For complex configurations, consider using the web part itself as an editing surface 4. Consider breaking up special-purpose web parts into connected general-purpose web partsWeb Parts 5. Consider developing on the client side! It’s the wave of the future – one of the primary methods for building SharePoint 2013 apps It can lead to very responsive user experiences Best Practices @Bob1German
  13. 13.  InfoPath forms empower business users to create and manage the forms but… Sometimes you hit a brick wall when InfoPath can’t do something For more degrees of freedom:  Create a sandboxed InfoPath solution – users can still edit and update the form  Create a web service that InfoPath can call Approach 2007 2010 2013 Beyond Sandboxed No Yes Yes Maybe InfoPath Solution Admin Approved Yes Yes Yes Maybe InfoPath Solution Custom Web Yes Yes Yes Probably ServiceInfoPath Form @Bob1German
  14. 14.  Complex approval process Approvers are selected from Active Directory groups in the form InfoPath does not have a way to enumerate an AD group SOLUTION: Custom Web Service  Set up as a secondary data source in InfoPath  Configure using InfoPath Rules  Form can still be edited by power users; web service is reusable in other formsScenario 1 – Look up Group Members @Bob1German
  15. 15.  Repeating field in InfoPath – need to use it in a workflow OOB options are – first, last, comma-separated We needed maximum function SOLUTION: Sandboxed Form Code  Could have used a custom workflow action to extract, but wanted to adapt the form as well  Users can still edit other form detail; no need for admin to install in Central AdminScenario 2 – Repeating Field @Bob1German
  16. 16.  Form for use in a marketing request Needed to allow users to select documents based on a wildcard, such as M*.pptx No support from IT – deploying a web service not possible SOLUTION: Sandboxed Form Code  Uses SharePoint object model to query the document library  Business users can edit and install the solutionScenario 3 – Wildcard Lookup @Bob1German
  17. 17. FormsSandboxed InfoPath Form @Bob1German
  18. 18. Sandboxed Web Desired Characteristic Farm Code Code Service Business User Installable  Business Users can Edit the Form  Extending InfoPath Reusable in multiple forms  Can access data beyond site collection   Most likely to be reusable beyond SharePoint 2013  Decision Matrix @Bob1German
  19. 19.  Business users can edit workflows as needs change over time, but… Sometimes you hit a brick wall when the built-in or SharePoint Designer workflows don’t do something For more degrees of freedom:  Create a custom action for SharePoint Designer  Create an event receiver that acts on an “Approval” Approach 2007 2010 2013 Beyond Custom Workflow No Yes Yes Maybe Action (Sandboxed) Custom Workflow Yes Yes Yes Maybe Action (Farm) Approval Event Yes Yes Yes Probably HandlerWorkflows @Bob1German
  20. 20.  Workflow needs to strip attachments out of a form SOLUTION: Custom Workflow Action – Sandboxed Solution Reusable anywhere All other logic can be handled in SharePoint DesignerScenario 1 – Custom Form Processing @Bob1German
  21. 21.  Workflow needs to update a line of business system following an approval Authorized users should be able to reconfigure the approval process Unauthorized users should not be able to bypass the approval SOLUTION: Event Handler as a Farm Solution  Use OOB Approval form – site collection admins can reconfigure easily  Event handler checks to ensure it’s running on the correct form and libraryScenario 2 – Update LOB System @Bob1German
  22. 22.  Users fill in a form and to get a SharePoint site Uses specific site templates based on user input Custom approval logic for deciding if the site should be created SOLUTION: Custom Workflow Action – Sandboxed Solution  Whole workflow, approval, template selection set up in SharePoint Designer  Flexible action creates the siteScenario 3 – Site Provisioning @Bob1German
  23. 23. WorkflowsSandboxed Workflow Steps @Bob1German
  24. 24. 1. In general, custom actions for SharePoint Designer (or a 3rd party workflow) is most flexible 2. To allow use of OOB Approval workflow without SharePoint Designer, add an event handler that checks for item approvedExtending Workflows 3. For farm-level solutions, deploy to the bin in selected web apps (to avoid use elsewhere on the farm) 4. Build business rule checks into sensitive workflow actions 5. Return error flag and message to allow the workflow to handle exceptions Best Practices @Bob1German
  25. 25.  Always consider degrees of freedom before starting a development project - What parts of the business process are likely to change? - What skills to users have? - What permissions do users have? Choose your technologies wisely - To future-proof your solution, pretend you’re running in Office 365 - Sandboxed solutions will probably go away - Farm solutions might or might not be restricted in the future Business Power Users are the SharePoint Heroes!Summary @Bob1German
  26. 26. Remember – bit.ly links are case sensitive!Connecting Web Parts (end user) http://bit.ly/SPT-ConnectWP-UserConnectable Web Parts (developer) http://bit.ly/SPT-ConnectWP-DevClient Side Connection Sample http://bit.ly/SPT-Book (Chapter 7)Sample InfoPath Solutions with http://bit.ly/SPT-InfoPathSamplesSandboxed CodeDebug InfoPath Forms with Sandboxed http://bit.ly/SPT-InfoPathDebugCodeCreate custom workflow actions http://bit.ly/SPT-WorkflowSandboxed(sandboxed)Create custom workflow actions http://bit.ly/SPT-WorkflowFarm(farm)Resources @Bob1German
  27. 27. Thank You! @Bob1German