sptechcon bos 2013 - create a business solution, step by step, with no managed code

37
Create a Business Solution, Step by Step, with No Managed Code Marc D Anderson

Upload: marc-d-anderson

Post on 03-Dec-2014

343 views

Category:

Technology


1 download

DESCRIPTION

People often ask this instructor how he comes up with the somewhat unorthodox solutions he has built in SharePoint. In this tutorial, you will learn how you can devise powerful solutions from beginning to end without deploying any managed code. First, we’ll take a business problem submitted by one of you, go through a rapid design session, and figure out how we might build it. Next, you’ll be taken through the actual solution the instructor whacked together based on the requirements beforehand, and we’ll compare and contrast. Hopefully, we will hit on most of the same high points that we’ve designed into the solution together, but since we won’t know until we get there, all bets are off! We’ll do the work in SharePoint 2010 so that the solution’s usefulness will be as wide as possible. However, we’ll dip into SharePoint 2013 as well to see how the solution might work there and discuss how we might approach things differently.

TRANSCRIPT

Page 1: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Create a Business Solution, Step by Step, with No Managed CodeMarc D Anderson

Page 2: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Who Is Marc?

• Co-Founder and President of Sympraxis Consulting LLC, located in the Boston suburb of Newton, MA, USA. Sympraxis focuses on enabling collaboration throughout the enterprise using the SharePoint application platform.• More than 30 years of experience in technology professional services and software development. Over a wide-ranging career in consulting as well as line manager positions, Marc has proven himself as a problem solver and leader who can solve difficult technology problems for organizations across a wide variety of industries and organization sizes.

• Three-time awardee of the Microsoft MVP award for SharePoint Server (2011, 2012, 2013).

Page 3: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Tutorial Overview

• People often ask this instructor how he comes up with the somewhat unorthodox solutions he has built in SharePoint. In this tutorial, you will learn how you can devise powerful solutions from beginning to end without deploying any managed code. First, we’ll take a business problem submitted by one of you, go through a rapid design session, and figure out how we might build it. Next, you’ll be taken through the actual solution the instructor whacked together based on the requirements beforehand, and we’ll compare and contrast. Hopefully, we will hit on most of the same high points that we’ve designed into the solution together, but since we won’t know until we get there, all bets are off!

• We’ll do the work in SharePoint 2010 so that the solution’s usefulness will be as wide as possible. However, we’ll dip into SharePoint 2013 as well to see how the solution might work there and discuss how we might approach things differently.

• If you are interested in this tutorial and have a small solution you’d like to see the instructor run through, please send it to him via his blog (sympmarc.com) before July 15. He will post the details of the requirements you’ll use, and then get cracking on his solution. A few constraints just to keep things relatively straightforward:• Single-site collection• Departmental scale solution (we’re not going to rebuild My Sites)• Things that are off the table: User Profiles, External Content Types (BCS), complex workflows, etc.

• In other words, the point is education, not complexity or a production-ready solution. Come prepared to roll up your sleeves and participate. We’ll be making it up as we go, and we’ll all learn together!

Page 4: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Agenda

Create a Business Solution, Step by Step, with No Managed Code 9:00 – 12:15

Welcome 9:00-9:10

Intro to Tools 9:10-9:30

The Challenges 9:30-9:45

Breakout Sessions 9:45-10:15

Break 10:15-10:30

Report Back 10:30-11:15

Marc's Solution 11:15-11:45

What about SharePoint 2013? 11:45-12:10

Wrap Up 12:10-12:15

Page 5: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Why Might You Not Use Managed Code?

• Office365• Locked down security policies• Onerous software development lifecycles• Lack of IT resources or skills mismatch

Create a Business Solution with No Managed Code

Page 6: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

What Are the Available Tools?SharePoint 2010

SharePoint 2013

Cascading Stylesheets (CSS)Extensible Stylesheet Language (XSL)JavaScript / jQueryData View Web Parts (DVWPs)Content Query Web Parts (CQWPs)Workflows (SharePoint Designer)Display TemplatesContent Search Web Parts (CQWPs)

Page 7: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Cascading Stylesheets (CSS)

• Usually not seen as part of the coder's toolset

• Modern Web development relies on a firm understanding of CSS

• Necessary to add animations and useful client side behaviors

• Used in tandem with scripting and DOM manipulation

Page 8: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Extensible Stylesheet Language (XSL)

• Used in Data View Web Parts, Content Query Web Parts• Not most people's

favorite data formatting tool• Might be considered

"legacy"• Moving away from XSL

toward client side rendering (jQuery, Knockout, many more)

Page 9: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

JavaScript / jQuery

• SharePoint has always used JavaScript• jQuery is "supported"• Taken Web development by

storm• Most modern Web sites rely

heavily on scripting• More and more integration

with SharePoint, especially in SharePoint 2013 (more later)

Page 10: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Data View Web Parts (DVWPs)

• Processed on the server• XSL-driven• Can "join" multiple data sources• Useful not only for displaying data, but

also for building forms• Can roll up content across the Site

Collection using DataSourceMode="CrossList"

• Much harder to work with in SharePoint 2013 (SharePoint Designer missing Display View)

Page 11: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Content Query Web Parts (CQWPs)• Processed on the server• XSL-driven• Long-time workhorse of

Web Parts• Enterprise CALs only• Enables rollup of content

across the Site Collection• Predefined formats can be

extended but somewhat cumbersome to do so

Page 12: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Workflows

• Right up front: Not a big fan• Great for frequent, repetitive tasks• Often used to get around things that

are seen as SharePoint limitations• Sometimes can use script to

accomplish similar things• Can be unreliable• Information work tends to be highly

exception-driven

Page 13: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Display Templates

• New in SharePoint 2013• JavaScript-driven• Might be the new DVWP?• Documentation is not great

Page 14: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Content Search Web Parts (CSWPs)• New in SharePoint 2013• Not yet available on

Office365• Display Template driven• Depends on indexing

schedule• Continuous crawling

helps, but not a panacea

Page 15: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Caveats and Common Sense

Page 16: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

What Can’t [Shouldn't] You Do Without Managed Code?• Deploy files to the server’s file system• Event Receivers• Timer Jobs• Elevate Permissions• Deployment of a large number of sites or other objects

Page 17: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Client Side vs. Server Side

• Contrary to some reports, client side development is not always a good thing• Be careful when you

have large data volume, mathematical processing, etc.• You must know the

"Lowest Common Denominator"

Page 18: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Development Must also Follow Good Governance Practices• Coding practices• Deployment mechanisms• Testing methods• Documentation• Training• Maintenance planning

Page 19: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Questions?

Page 20: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

The Challenges

Page 21: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

The Challenges

1. Employee Award Nominations2. Content "Clip" Management3. Customize a Site for Use in a

Support Organization (Trouble Tickets)

4. Create a List/Calendar for Laptop/Aircard Checkouts

5. Project Dashboard6. External Links Management

Page 22: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

1. Employee Award Nominations• Somewhat recently I was asked to create a way to store,

submit and report on nominations submitted by various users.

• I decided to use a SharePoint list and create a submission form using InfoPath. Exporting the list to Excel would allow the admins the necessary level of reporting they were looking for.

• The team’s requirements were fairly basic. Automatically populating a few fields using user profile services was necessary but didn’t cause me any problems. There was one requirement that held me up. They wanted to limit how many submissions any one user could make AND provide a current count of how many submissions that user had made on the form.

• I ended up using another list with users and a count of their nominations combined with a workflow to either add a new user to the list or add 1 to the current count for an existing user on the list. The form would reference this secondary list to provide the count display on the form.

• The whole time all I could think was, “there has got to be an easier way.”

Page 23: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

2. Content "Clip" Management

• We have a need for our researchers (and even for us IT folks) to dynamically create Clips or portions of a SharePoint document, email-enabled list, or web page, tag them with categories of interest, and save just the highlighted portion we care about to a “Clips” library/ list so we can later pull together relevant clips for whatever research we are focused on at the time.

• It has a broad application – imagine anyone researching a subject either on their Intranet or on the Internet, quickly browsing several documents, blogs, presentations, etc. Each time we find something of interest, we highlight the text and graphics of interest, tag/categorize and save the highlights in a SharePoint list/library with references back to the original documents/blogs/pages/presentations.

Page 24: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

3. Customize a Site for Use in a Support Organization (Trouble Tickets)Think of an internal software support organization… • Customer facing pages:• Ability to open support tickets• Ability to look at product/service stats and as well as personal

pages (what tickets did I open/have open/closed)• Ability to generate notifications when updates happen on the

tickets or they change status• Ability to submit feedback/ratting when tickets close (service

quality, etc.)

• Support staff facing pages:• My work pages – tickets assigned to me – sorted perhaps on

severity, SLA?• Ability to re-assign tickets• Alerts on tickets that have been opened too long• Metrics on individual performance• Configurable – list of supported products, list of services, assignees,

severity, SLA’s• Ability to auto-route item to individuals based on “rules” (ex. if

prod=a, and SLA=Gold ==> assign to Senior Support person)

Page 25: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

4. Create a List/Calendar for Laptop/Aircard Checkouts• Need to Have:• Calendar for employee to reserve laptops/Aircards, only

the available inventory should be listed• Notification system-Reminders for them to check

out/return inventory, confirmation emails if request has been approved

• Generate ticket to our help desk system when reservation is submitted

• Currently, we have been using Outlook to accomplish this by listing the laptops/Aircards as meetings so they are able to schedule. The problem is when people travel for over a week; Outlook won’t allow a meeting for a week so they are automatically denied the request. Also, Outlook does not provide the notifications we would like.

• Between InfoPath and SharePoint Designer Workflows, I have a basic process down. It’s just the availability of resources that I’m having a hard time figuring out.

Page 26: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

5. Project Dashboard

• A very simple project dashboard that contains a list of approved projects for organization, with a color coded status field (Green, Yellow, Red)

• Each project entry links to a project page where there are more detailed milestones that also have color indicators for Status.

• Either based on the colors in the status fields for the project or a static way for PM to set the overall project status and have this who up on the project site as well as on the dashboard.

Page 27: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

6. External Links Management

• We want to build a list where people can submit links, stories, pictures, etc. and then tag them for publication. By that I mean:• We think this should go on our website• We think our company should Tweet about this• We think this should go on our company Facebook

page• Depending on the desired destination(s)

different people would be alerted. The people who receive the alerts could “veto” the publication, but after a certain period of time (varies by destination) the post could proceed.

Page 28: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Breakout Groups

Page 29: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Goals

• Come up with broad brush approaches• Don’t try to solve everything• Focus on what you might do differently than with other approaches you have used

• Gather questions• What can't you figure out?• What can't you accomplish and why?• What type of skills would be important?

• Report back

Page 30: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Report Back

Page 31: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

The Challenges

1. Employee Award Nominations2. Content "Clip" Management3. Customize a Site for Use in a

Support Organization (Trouble Tickets)

4. Create a List/Calendar for Laptop/Aircard Checkouts

5. Project Dashboard6. External Links Management

Page 32: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Questions?

Page 33: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Marc's Solution

Page 34: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

What about SharePoint 2013?

Page 35: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

What about SharePoint 2013?

• New app model•Much more client side focused• Improved REST services• SharePoint Designer 2013

Everything works the same!

Page 36: SPTechCon BOS 2013 - Create a Business Solution, Step by Step, with No Managed Code

Demo