SPTechCon SFO 2014 - Create a Business Solution, Step by Step, with No Managed Code

Preview:

DESCRIPTION

No-code solutions were once considered unorthodox, but now are de rigueur. In this tutorial, you will learn how you can devise powerful solutions from beginning to end without deploying any managed code. We’ll take a common business problem, go through rapid design sessions, and figure out how we might build it. Next, we’ll go through an actual solution based on the requirements, 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. Come prepared to roll up your sleeves and participate in this fluid and immersive tutorial!

Citation preview

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

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.• Over 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.

• Awarded Microsoft MVP for SharePoint Server 2011-2014

Tutorial Overview

No-code solutions were once considered unorthodox, but now are de rigueur. In this tutorial, you will learn how you can devise powerful solutions from beginning to end without deploying any managed code. We’ll take a common business problem, go through rapid design sessions, and figure out how we might build it. Next, we’ll go through an actual solution based on the requirements, 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. Come prepared to roll up your sleeves and participate in this fluid and immersive tutorial!

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 Challenge 9:30-9:45

Breakout Groups 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

Why Might You Not Use Managed Code?

Office365 Locked down security policies Onerous software development lifecycles

Lack of IT resources or skills mismatch

Rapid prototypingCreate a Business Solution with No Managed Code

Who Might Choose This Approach? Power Users “Citizen” Developers Departmental Developers Business Analysts “Real” Developers

You?

What Tools Do We Have to Work With?

2007 2010 2013

Cascading Stylesheets (CSS)

Extensible Stylesheet Language (XSL)

JavaScript / jQuery

Data View Web Parts (DVWPs)

Content Query Web Parts (CQWPs)

Workflows (SharePoint Designer)

Development Frameworks

Display Templates

Content Search Web Parts (CQWPs)

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

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, KnockoutJS, many more)

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)

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)

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

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

Development Frameworks

We’re used to thinking of .NET as the development framework for SharePoint

SharePoint is a Web application and Web Development tools abound

The SharePoint world is behind what others have been doing

New JavaScript frameworks can make building applications easier

New learning curves

Display Templates

New in SharePoint 2013 JavaScript and HTML driven Might be the new DVWP? Documentation is not great, but improving

Content Search Web Parts (CSWPs) New in SharePoint 2013 Display Template driven

Depends on indexing schedule

Continuous crawling helps, but not a panacea

Caveats and Common Sense

What Can’t [Shouldn't] You Try to 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, lists, or other objects

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"

Development Must also Follow Good Governance Practices

Coding practices Deployment mechanisms Testing methods Documentation Training Maintenance planning

Questions?

The Challenge

Employee Award Nominations

Submit, store, and report on nominations submitted by users

Limit how many submissions any one user can make

Provide a current count of how many submissions the user has made on the form

Support future nomination periods

Breakout Groups

Breakout Group Goals

Broad brush approaches Don’t try to solve everything Focus on what you might do differently than with other

approaches you have used in the past

Gather questions What can't you figure out? What do you think you can't accomplish and why? What type of skills would be important if you were to build

this?

Secret Sauce Come up with something that will capture your audience

Report back

Report Back

Questions?

Marc's Solution

Secret Sauce Ideas

Display a visual representation of the current nominations

Automatically populate a few fields using user profile services

Disallow self-nomination Alert the person’s manager when they are nominated

Upgrade the Ferrari (color, HP, length of loan) based on the number of votes

What about SharePoint 2013 and/or Office365?

What about SharePoint 2013?

New app model Much more client side focused

Improved REST services SharePoint Designer 2013

BUT: A lot of things work the same!

Demo

Bonus Demo

(If we have time)

Demo Screenshots

Home Page – SharePoint 2010

New Item Page – SharePoint 2010

Home Page – SharePoint 2013

New Item Page – SharePoint 2013