1. SharePoint Design and
Development Considerations
Jonathan Schultz – Enterprise Portals Consultant
Mark Lezotte – Director, Online Marketing Services
Skyline Technologies, Inc.
10-13-2011
2. Today’s Agenda
• Team Structure
• Designing Sites for SharePoint
• UI Development in SharePoint
• SharePoint Developer Skills
• Development Environment
• SharePoint Development
• Execution Models
• Logging and Tracing
• Deployment
• Resources
3. Experience with SharePoint
• Experience with 2003 and Content Management
Server
• Enterprise Portals Practice - 2006
• Online Marketing Practice - 2006
• Public sites on 2007 and 2010 platforms
• Portals on 2003, 2007, 2010 platforms
• 100’s of intranet projects
4. Team Structure - Then
• Project Manager / SharePoint Analyst
– Project Manager / Business Analyst
– SharePoint Configuration / Training
• SharePoint Systems Engineer / SharePoint
Analyst
– Install SharePoint
– SharePoint Configuration / Training
– Site skinning
• Software Engineer
– Web part development
5. Team Structure - Now
• Project Manager
• Creative Designer
• SharePoint Systems Engineer
• SharePoint Software Engineer
• SharePoint Business Analyst
• SharePoint UI Developer
• http://www.skylinetechnologies.com/blog/pages/Staffing_Your_SharePoint_Team.aspx
7. Matrixed Organization - Core Team
• Project Manager
• SharePoint Systems Engineer
• SharePoint Software Engineer
• SharePoint Business Analyst
• SharePoint UI Developer
8. Matrixed Organization - SharePoint Software
Engineer Skill Set
• ASP.NET
• CSS/HTML
• Database Design
• Web Services
• Overall Experience
– Pair Junior Staff with Senior Staff
9. Matrixed Organization – Non-core Team
• Creative / Graphic / Web Designer
– Needs to understand designing for a CMS
• UI Development
– Know and love working with HTML/CSS/jQuery
– Understand and embrace cross-browser testing
• Software Engineers
– They can write the core business logic
– SharePoint Software Engineers complete the
plumbing
• Project Managers
10. Intranet Project Team
• Project Manager
• SharePoint Analyst
• Creative Designer
• SharePoint Systems Engineer
13. Role Development – Object Oriented Approach
• Project Manager
– Inherit base class of Project Manager
– Inherit base class of Web Project Analyst
– Inherit base class of SharePoint Analyst
• SharePoint Software Engineer
– Inherit base class of Software Engineer
– Additional skills: SharePoint Software Engineer
• SharePoint UI Developer
– Inherit base class of web designer
– Additional skills: SharePoint data structures
14.
15. “Purple Squirrels”
• People with knowledge across many of the roles
• Systems Engineer with Analyst skills
• Analyst with UI skills
• Project Manager with development skills
• These folks are hard to find
27. SharePoint is a CMS
• Sites don’t have to be “SharePointy”
• Concepts flow from other CMS platforms
– DNN
– Sitefinity
– Etc.
• Menu expansion
• Flexible/liquid layouts
28. UI Development – Major Consideration
• Content Management
– End users want full control
– End users want a polished product
– End users are usually not web designers
– Rich-text-edits are not MS Word
• Hybrid Approach
– Format as much as you can prior to starting
29. Master Page
Page Layout
Web Part Web Part Zone Content Area
Web Part
Can be set up to be Used to add one to
editable or not- many web parts
editable by user Reusable Content
Content
Content Editor Webpart
– Other pages, jQuery
30. Hybrid Approach
• Place web parts in the page layout to prevent
removal
• Reusable Content
– Ripple effect
– No Update
• Leverage lists & content query webparts
31.
32.
33.
34. jQuery and SPServices
• jQuery Plug-in that allows you to makes calls the
SharePoint web services and “talk” to SharePoint
lists
• http://spservices.codeplex.com
• Javascript is stored in the Style library
45. Codeless Forms in SharePoint
• http://sharepointformwebpart.com/
• Create list
– Respects required fields
– Add required fields automatically
– You can select other fields to add at will
– Hide fields for managing the list internal
• Allow anonymous access to add to the list
48. SharePoint Development Environment
• Physical or Virtual Considerations
– Hardware
– Remote Access
– Local Administration
• Backup Strategy
– Database Backups
– Snapshots
• Source Control
• Challenges
– Farms vs. Single Servers
– User Profile Service & Active Directory
52. SharePoint Development Environment
WSS 3.0 / MOSS 2007 MSF 2010 / MSS 2010
Base System • Windows Server 2003 • Windows Server 2008 R2
• SharePoint or Windows 7/Vista
• Visual Studio 2005/2008 • SharePoint
• SQL Server • Visual Studio 2010
• SQL Server
Developer Tools • Visual Studio Extensions • Visual Studio 2010
for WSS (VSE WSS) SharePoint Developer Tools
• SharePoint Designer 2007 • SharePoint Designer 2010
• WSPBuilder • Community Kit for
SharePoint: Developer
Tools (CKSDev)
• Visual Studio 2010
SharePoint Power Tools
Other Products • Microsoft Office • Microsoft Office
• Fiddler • Fiddler
• IE Developer Toolbar • IE Developer Toolbar
53. Web Part Design
• Reuse, reuse, reuse…
• Web Part Connections
• Unit Testing
– Service Locator Pattern
– Model-View-Presenter (MVP) Pattern
– Repository Pattern
54. Web Parts vs. User Controls
User Control Visual Web Part Web Part
Minimized learning curve for ASP.NET developers X
Lightweight footprint for better performance X
Design surface for rapid development X X
Automatic packaging using features & solutions X X X
Connectable to other web parts (Web Part X X
Connections)
Ability to add to web part pages via web UI X X
Supports end user configuration & personalization X X
Allows deployment to the GAC (Needs VS 2010 X
SharePoint Power Tools)
Available for sandboxed solutions (Needs VS 2010 X
SharePoint Power Tools)
56. Farm Solutions
• Full Trust
– Deployed to GAC
– Shared across Web Applications
– Full Featured
– Access to External Resources
– Use Code Reviews to Reduce Risks
• Bin/Code Access Security (CAS)
– Unique to single Web Application
– Limited Features & Access (based on CAS policies)
– Complicated to Create
57. Sandboxed Solutions
• New in 2010
• Easier Deployment
• Solution Monitoring
– Resource Points
• Load Balanced
58. Troubleshooting
• Logging
– Mainly for Administrators
– SharePoint ULS logs or Event Viewer
– Severity
– SharePoint Logger (SharePoint Guidance)
• Tracing
– Mainly for Developers
– SharePoint ULS Logs
– Write Information Before Key Logic
– Controlled in Central Admin
62. Deployment
Artifact Development
Authoring Production
Environment Environment
Solution
Deployment
Assembly Development
Integration
Environment
Solution
Deployment
Development
Environment
63. SharePoint Development Resources
• SharePoint Guidance
• Team-Based Development in SharePoint 2010
• SharePoint Unit Testing with Pex and Moles
• Using Event and Trace Logs in SharePoint
• Application Lifecycle Management in SharePoint
2010
• SharePoint Development Team Blog
• Skyline Technologies Enterprise Portals Blog
• Andrew Connell Blog