Basic Developer Knowledge That Every SharePoint Admin Must Have
Randy Williams, MVP MOSS
Synergy Corporate Technologies
Session Overview
• SharePoint Technologies• Developing Apps on SharePoint• Deploying Apps on SharePoint• Features• Site Definitions• Code Access Security• Troubleshooting
SharePoint Technologies
.NET 2.0 Framework
ASP.NET ADO.NET Security
.NET 3.0 FrameworkWorkflow
WSS & MOSS UI
Windows APIOS
.NET
SharePointAPI
…
Web Services
SharePointUI
Custom Solutions 3rd Party In house
WSS Object Model
MOSS Object Model
Custom SharePoint Solutions
• Developers build solutions on SharePoint just like Microsoft did
• Multiple ways to build a solution● Use SharePoint UI (webs, lists, libraries)● Office Products
• MS Access, Excel, InfoPath
● SharePoint Designer● Visual Studio
SharePoint Designer
• Best tool for customizing SharePoint● Master/site pages● CSS● Web parts (e.g. DFWP)● Custom Workflow
• Risk exposure is isolated & limited• Typically done directly on production
server
Visual Studio
• Best tool for building applications● Features, site definitions, web parts, custom
field types, complex workflow• Risk exposure is high• Done in a development environment
● Recommend local development• Staged deployment into test and
production environments
How to deploy applications?
• One answer: SharePoint Solutions• Single file (.wsp) that contains all
configuration, files, and code• Solution lifecycle
● Add, Deploy, Retract, Delete• STSADM (all four)• Central Admin (all but add)• Insist the development team build them
Demo – SharePoint Solution
Features
• Snap-in functionality• Dozens are built in to product• Web parts, pages, workflow, menu
commands, list templates, others• Feature scope
● Farm, Web app, Site collection, Web• Feature lifecycle
● Install, Activate, Deactivate, Uninstall
Demo – Feature Lifecycle
Site Definitions
• Blueprint for newly created web sites● Defines navigation, features, master page,
lists• Stored in 12\Template\SiteTemplates• Developers can create custom ones• Fantastic 40• Site definitions vs site templates
Web Parts
• Developed using Visual Studio• Personalization• Where to place assembly?
● Bin folder or Global Assembly Cache• Recommended ways to deploy
● Using a SharePoint Solution● Via a Feature
Custom Field Types
• Supplement to built in types• Developers define
● How to collect information (input)● How information is processed (validation)● How to store in content database● How to display (output)
• Issues to consider
Event Handlers (Receivers)
• Developers can enhance how changes are made
• Before and after events• Events exist for items, lists, webs,
Features, and others• Common item event operations include
● Add, Update, Delete, Check-In/Out
Code Access Security (CAS)
• .NET technology to secure code based on origin
• Based on concept of trust• Bin folder for web application – partially
trusted• Global Assembly Cache – fully trusted• Level defined in web.config
● WSS_minimal, WSS_medium
CAS Guidelines
• Do not deploy assemblies to GAC unless they are genuinely trusted● Custom/3rd party code should be tested
• Be cautious about elevating trust in web.config● Definitely avoid Full trust
• It is difficult, but developers can create custom CAS policies
web.config
• XML file for SharePoint configuration• One per web application• Useful sections to know
● <SafeControls>● <trust>● <customErrors> & <SafeMode CallStack>● <authentication>● <identity>
Demo – web.config Tour
Troubleshooting Tips
• “An unexpected error has occurred”• Event Viewer – Application log• SharePoint logs
● ULS Log viewer• Resetting application pool• Try to reproduce in test environment
Demo – Troubleshooting
Questions?
• My blog● http://sharepointhawaii.com/randywilliams
Top Related