sptechcon sfo 2014 - create a business solution, step by step, with no managed code
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!TRANSCRIPT
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)
Contact InformationEmail marc.anderson@sympraxisconsulting.
comTwitter @sympmarc
Blog http://sympmarc.com
SPServices http://spservices.codeplex.com
SPXSLT http://spxslt.codeplex.com
Books http://sympmarc.com/books
The Middle Tier Manifesto
http://bit.ly/middletier
Demo Screenshots
Home Page – SharePoint 2010
New Item Page – SharePoint 2010
Home Page – SharePoint 2013
New Item Page – SharePoint 2013