1. What IS SharePoint
Development?
SPTechCon Boston 2012
Mark Rackley
mark.rackley@summit7systems.com
2. About Mark Rackley
• Solutions Architect & Developer at Summit 7 Systems
• 17+ years software architecture and development experience
• Blogger, Writer, Speaker
• mark.rackley@summit7systems.com
• @mrackley
• http://sharepointhillbilly.com
3. Agenda
• What’s the big deal?
• Define “Development”
• Types of SharePoint Development
– What it is
– Benefits
– Disadvantages
– Skills needed
• Demos
4. Can’t we all just get along?
WHAT’S THE BIG
DEAL?
5. What’s The Big Deal?
• You need to know the best tool for a job
– Efficiently design solutions
– Avoid unnecessary work
• Make sure you are hiring the right person for
the job
– Can they do the job?
– Will they cause more problems than they will
solve?
– Know the right questions to ask
8. Define “Development”
develop (dɪˈvɛləp)
— vb
1. to come or bring to a later or more advanced
or expanded stage; grow or cause to grow
gradually
2. to elaborate or work out in detail
3. to come or bring into existence; generate or
be generated
9. Define “Development”
• #1 Mistake SharePoint “developers” make?
– Opening Visual Studio
– Development is not necessarily code
11. So easy, even a manager can do it…
OUT OF THE BOX
(OOB)
12. Out of the Box (OOB)
• Performed in SharePoint.
• No external tools, little or no code
• Create sites, lists, custom views, alerts,
dashboards and simple applications using web
parts and web part connections
13. Out of the Box (OOB)
• Benefits
– No code
– No external tools
– Even your boss could do it
– Fewest upgrade issues
• Disadvantages
– Will rarely be enough
– It’s not idiot proof
– Even your boss can do it
14. Out of the Box (OOB)
• Skills needed
– Understanding of the ins and outs of SharePoint
– Knowledge of the out of the box web parts
• Bottom Line
– Essential to understand for all types of SharePoint
Development
– Most under utilized development approach by
traditional developers
– Always start here first
– Attend some end user sessions
16. SharePoint Designer (SPD)
• Free development tool
• Users SharePoint’s Web Services to
communicate with your site
• Create SharePoint objects, edit forms,
DataViewWebParts, connections to external
lists, essential for developing branding.
17. SharePoint Designer (SPD)
• Benefits
– More options than OOB
– More control over look and feel
– Remote development!
– SPD Workflows
• Disadvantages
– Still has limitations
– Deployment is messy (or develop in production)
– Customizing (unghosting)
18. SharePoint Designer (SPD)
• Skills needed
– OOB Skills
– HTML, CSS, XML, XSL, JavaScript
• Bottom Line
– Don’t hate, much improved from MOSS
– Essential tool for skilled designers, site admins,
and quick tweaks in production.
19. With great power comes great responsibility…
JAVASCRIPT / JQUERY
20. JavaScript / jQuery
• Part of that “Client Side Development”
• Great for complicated business logic in tightly
controlled environments
• Communicate with remote servers using Web
Services
• Scripts can be deployed in a solution or placed
in a Document Library and linked in a Content
Editor Web Part
21. JavaScript / jQuery
• Benefits
– Can replace the need for Visual Studio for certain
functionality
– Does not create “points” like Sandboxed solutions
– Improved user experience
– It’s the future
• Disadvantages
– Can be difficult to maintain and debug
– Anyone can do it
– Can cause performance issues
22. JavaScript / jQuery
• Skills needed
– OOB Skills
– HTML, JavaScript, jQuery, CSS, XML, XSL
– Traditional developer skills
• Bottom Line
– Amazing, essential skill if used correctly
– Becoming more important every day (sometimes
only option in the cloud)
– Use it wisely
24. PowerShell
• Scripting environment, NOT for creating
interactive SharePoint solutions
• Configure farm, Deploy solutions, Create
SharePoint artifacts
• Tools
– PowerShell
– PowerShell ISE
– PowerShell Plus (Idera)
– PowerGUI (Quest)
25. PowerShell
• Benefits
– Essential for deploying solutions and doing admin
work that development sometimes requires
– Perfect for “run once” logic that may not make
sense to deploy as a feature
• Disadvantages
– Not an option in the cloud
– Not a tool for creating “business functionality”
26. PowerShell
• Skills needed
– OOB Skills
– PowerShell syntax
– SharePoint Object Model
• Bottom Line
– Might be able to live without as a developer, but
can save you a lot of time and make you a more
efficient developer
27. When all else fails, use a bigger stick…
VISUAL STUDIO / .NET
28. Visual Studio / .NET
• Create solutions that deploy files to the farm
• Sometimes there is no other option
• It CAN do most of what the other options can
do… but…
– May not be an option in your environment
– May take a lot longer to develop
– Deployment can add headaches
29. Visual Studio / .NET
• Create solutions to deploy files to your farm
so you aren’t manually copying them
• Create virtually any SharePoint object
including content types, site columns, lists,
sites, workflows, web parts, event receivers,
timer jobs, service applications, etc…
• Remote development using Web Services /
Client Object Model
30. Visual Studio / .NET
• Benefits
– Create deployable solutions
– When all else fails it can get the job done
– Best method for working with large amounts of
data
• Disadvantages
– Greater skill required (bigger learning curve)
– Must have access to the server to deploy features
(aside from Sandbox solutions)
– Can be difficult to debug in production
31. Visual Studio / .NET
• Skills needed
– OOB Skills
– C#, .NET, SharePoint Object Model, CAML, LINQ,
XML, HTML
• Bottom Line
– Should not always be first choice in development
– By far the most powerful development option
32. *Development Option Comparison
OOB SPD JavaScript PowerShell Visual Studio
Create SharePoint Objects Yes Yes Yes Yes Yes
Display information to the user
(Dashboards, Reports, Dynamic
information) Yes Yes Yes No Yes
Execute code with elevated privileges No No No Yes Yes
Perform complicated business logic No Limited Yes Yes Yes
Event Receivers, Timer Jobs, Service
Applications, Custom Search No No No No Yes
Create deployable solutions No No No No Yes
Not in
Deploy solutions No No No Yes production
Create List Views Yes Yes Yes Yes Yes
Visual enhancements such as
animations Limited It depends Yes No Yes
*Most of the time
33. Learn more at…
• All
– Blogs, books, conferences
• OOB & SPD
– http://EndUserSharePoint.com
• jQuery & JavaScript
– http://jQuery.com
– The SharePoint & jQuery Guide http://bit.ly/jQueryAndSP
• PowerShell
– Gary Lapointe http://blog.falchionconsulting.com
• .NET
– Critical Path Training - http://www.criticalpathtraining.com
– MindSharp - http://www.mindsharp.com/