2. Business Users Power Users / Analysts Developers
Business Technical Business Technical Business Technical
SharePoint People
3. How can we develop SharePoint solutions which
Design for Empowerment
empower business users to:
Maintain and update the solution
Change the solution to accommodate new business needs
Innovate
Empowering the Power Users
5. How can we add degrees of freedom
to these solutions?
Agenda
6. 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
Part
Web Part
7. Client wanted a web part that shows users the weather
forecast for their location based on user profile
Client liked Accuweather widget but it isn’t integrated
with SharePoint
SOLUTION: Content Editor with Profile Web Part
Rather than a weather-specific web part – injects user profile fields into any HTML
Download the Accuweather widget and inject the user’s zip code into it
Reusable for any scenario involving HTML and user profile fields
Scenario 1 – Weather Web Part
8. Client wanted a user directory web part to put on a
departmental web page
SOLUTION: Search View Web Part
Rather than a user directory web part, build a general purpose search viewer web part
Can be configurable for many uses including cross-site document views, interactive
searching,
or person directories
Scenario 2 – User Directory Web Part
9. Client wanted a collaborative “dashboard” showing
all aspects of a property under
management
SOLUTION: Connectable Web Parts
Rather than a custom page, built a suite of connectable web parts
Business users can reconfigure, rearrange, and reuse them for other situations
Scenario 3 – Mash-up
11. 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
Service
InfoPath Form
12. 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 forms
Scenario 1 – Look up Group Members
13. 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 Admin
Scenario 2 – Repeating Field
14. 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 solution
Scenario 3 – Wildcard Lookup
16. 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
Handler
Workflows
17. 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 Designer
Scenario 1 – Custom Form Processing
18. 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 library
Scenario 2 – Update LOB System
19. 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 site
Scenario 3 – Site Provisioning
21. 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