sharepoint developer education day palo alto
DESCRIPTION
This is the deck from my day-long presentation to some NorCal .NET developer UGsTRANSCRIPT
SharePoint for DevelopersSharePoint for Developers
Lynn LangitLynn LangitDeveloper EvangelistDeveloper EvangelistMicrosoftMicrosofthttp://blogs.msdn.com/SoCalDevGal
About meAbout me
Foundations of SQL Server 2005 Foundations of SQL Server 2005 Business Intelligence (APress)Business Intelligence (APress)
SharePoint ArchitectSharePoint Architect
SharePoint InstructorSharePoint Instructor
MSDN Developer EvangelistMSDN Developer Evangelist
What Will We Cover?What Will We Cover?
SharePoint Developer PlatformSharePoint Developer PlatformDev setup, tools, templatesDev setup, tools, templates
Container Objects & MetadataContainer Objects & MetadataTemplates, sites, collections, pages, content typesTemplates, sites, collections, pages, content types
User ObjectsUser ObjectsWeb parts, Lists, Libraries, Workflows, InfoPathWeb parts, Lists, Libraries, Workflows, InfoPath
Data & SecurityData & SecuritySSP, BDC, Excel ServicesSSP, BDC, Excel Services
ScheduleSchedule
Session 1- 9 am to 10 amSession 1- 9 am to 10 am
Session 2 – 10:15 to 12 Session 2 – 10:15 to 12
Lunch – 12 to 1pm Lunch – 12 to 1pm
Session 3 – 1 pm to 2:15 pm Session 3 – 1 pm to 2:15 pm
Session 4 – 2:30 to 4:00 pmSession 4 – 2:30 to 4:00 pm
Giveaways & Wrap Up Giveaways & Wrap Up
ConvergenceConvergence
SharePoint Portal Server 2001SharePoint Portal Server 2001SharePoint Team Services “v1”SharePoint Team Services “v1”
Content Management Content Management Server 2002Server 2002
SharePoint Portal Server 2003SharePoint Portal Server 2003
Windows SharePoint Services “v2”Windows SharePoint Services “v2”
Windows SharePoint Services v3Windows SharePoint Services v3
Office SharePoint Server 2007Office SharePoint Server 2007
Portals for everyonePortals for everyone
2007 Office System Capabilities2007 Office System Capabilities
FundamentalsFundamentals
Enterprise Content ManagementEnterprise Content Management
Business Business IntelligenceIntelligence
Communication Communication and and
CollaborationCollaboration Individual ImpactIndividual Impact
OperatingOperating SystemSystem ServicesServices
PlatformPlatform ServicesServices
Applications and Applications and ServicesServices
SharePoint Functional SharePoint Functional ArchitectureArchitecture
CollaboratioCollaborationn
PortalPortal SearchSearchContent Content
ManagemeManagementnt
BusinessBusiness ProcessesProcesses
BusinessBusiness IntelligenceIntelligence
SharedShared ServicesServices
SecuritySecurity Site Site ModelModel
ExtensibilitExtensibilityy
DeploymeDeploymentnt
ManagemManagementent
StorageStorage
ASP ASP ..NETNETDatabase ServicesDatabase Services Search ServicesSearch Services Workflow ServicesWorkflow Services
ECM in SharePoint Server 2007ECM in SharePoint Server 2007
ECMECM ComponentsComponentsRecords Records
ManagementManagementWeb Content Web Content ManagementManagement
Forms Forms ManagementManagement
Document Document ManagementManagement
UserUser InterfaceInterfaceMicrosoft OfficeMicrosoft Office Web Web
browsersbrowsers33rdrd-party -party
appsapps
UnifiedUnified StoraStoragege
ArchitectureArchitecture
UnifiedUnified ServicesServicesWorkfloWorkfloww
MetadatMetadataa
PoliciesPolicies
SearchSearch SecuritySecurity IRMIRM CollabCollab
Library SvcsLibrary Svcs..
Portal Development AreasPortal Development Areas
Portal SitesPortal Sites
People and Expertise SearchPeople and Expertise Search
My SiteMy Site
Targeting and Targeting and PersonalizationPersonalization
Profile Store ImprovementsProfile Store Improvements
Enterprise searchEnterprise search
Search CustomizationSearch Customization
Top results on first Top results on first pagepage
Revamped ranking Revamped ranking engineengine
What is SharePoint?What is SharePoint?
SharePoint SharePoint Developer EnvironmentDeveloper Environment
Within SharePointWithin SharePointRe-use existing itemsRe-use existing items
Change default itemsChange default items
Extend default itemsExtend default items
Re-use customized itemsRe-use customized items
Wire-ups – data, forms, workflows, moreWire-ups – data, forms, workflows, more
SharePoint as a developer platformSharePoint as a developer platform
Windows Server 2003 or 2008Windows Server 2003 or 2008IIS 6.0 or 7.0IIS 6.0 or 7.0
WSS 3.0WSS 3.0
DatabaseDatabaseSQL WMSDE or SQL ServerSQL WMSDE or SQL Server
SharePoint ServerSharePoint Server
(Usually) Virtual Server or PC(Usually) Virtual Server or PC
(Usually) Office Professional 2007(Usually) Office Professional 2007
(Usually) Visual Studio 2005 or 2008(Usually) Visual Studio 2005 or 2008
SPS SPS Developer EnvironmentDeveloper Environment
Part of the Office SuitePart of the Office Suite
ASP.NET 2.0 supportASP.NET 2.0 supportTool for Web designers for ASP.NET 2.0Tool for Web designers for ASP.NET 2.0
Great design and development experience with Great design and development experience with Expression Web and Visual Studio 2005Expression Web and Visual Studio 2005
Deep support for popular data technologies, such Deep support for popular data technologies, such as XML, XSLT and RSSas XML, XSLT and RSS
Built-in ASP.NET development serverBuilt-in ASP.NET development server
SPS DesignerSPS DesignerDeveloper EnvironmentDeveloper Environment
SharePoint DesignerSharePoint DesignerHTML ControlsHTML Controls
standard HTML standard HTML controlscontrols
Form ControlsForm Controls
SharePoint DesignerSharePoint DesignerASP.NET 2.0 ControlsASP.NET 2.0 Controls
StandardStandard
DataData
ValidationValidation
NavigationNavigation
LoginLogin
Web PartsWeb Parts
SharePoint DesignerSharePoint DesignerSharePoint ControlsSharePoint Controls
Data View ControlsData View Controls
Server ControlsServer Controlsbased on current sitebased on current site
Page Fields (publishing)Page Fields (publishing)
Content Fields (publishing)Content Fields (publishing)
SharePoint DesignerSharePoint DesignerEditing a SharePoint siteEditing a SharePoint site
Open siteOpen site
Enter credentialsEnter credentials
Work with pages & content!Work with pages & content!
Working with SharePoint DesignerWorking with SharePoint Designer
VS and SPS VS and SPS DownloadsDownloads
.NET framework 3.0.NET framework 3.0
VSTO (version 2)VSTO (version 2)
Visual Studio 2005/8 Designer for Windows Visual Studio 2005/8 Designer for Windows Workflow FoundationWorkflow Foundation
Windows SharePoint Services 3.0 Tools: Visual Windows SharePoint Services 3.0 Tools: Visual Studio 2005/8 ExtensionsStudio 2005/8 Extensions
WSS SDKWSS SDK
Enterprise Content Management (ECM) Starter Enterprise Content Management (ECM) Starter Kit (template for SharePoint workflows)Kit (template for SharePoint workflows)
Included in SharePoint SDKIncluded in SharePoint SDK
VS and SPS – other resourcesVS and SPS – other resourcesDownloadsDownloads
CodePlexCodePlexCommunity KitCommunity Kit
Forms-authentication toolkitForms-authentication toolkit
LINQ to CAMLLINQ to CAML
MSDN MSDN Web Service documentationWeb Service documentation
Fantastic 40, more…Fantastic 40, more…
BlogsBlogsSharePoint Team BlogSharePoint Team Blog
Lynn’s blogLynn’s blog
Working inside Visual Studio Working inside Visual Studio
15 minute break15 minute break
What Will We Cover?What Will We Cover?
What are the fantastic 40?What are the fantastic 40?
SPS Sites & Templates are…SPS Sites & Templates are…
Containers for UI (web pages which contain Containers for UI (web pages which contain web parts)web parts)
Containers for business logic (workflows)Containers for business logic (workflows)
Containers for data display (internal and Containers for data display (internal and external)external)
Containers for groups of sites (collections)Containers for groups of sites (collections)
Automatically added to navigationAutomatically added to navigation
Automatically security trimmedAutomatically security trimmed
SPS Pages are…SPS Pages are…
Containers for UI (web pages which contain Containers for UI (web pages which contain web parts)web parts)
Containers for business logic (workflows)Containers for business logic (workflows)
Containers for data display (internal and Containers for data display (internal and external)external)
ASP.NET 2.0 compatibleASP.NET 2.0 compatible
Automatically added to navigationAutomatically added to navigation
Sites, Site Collections, TemplatesSites, Site Collections, Templates
What is a Content Type?What is a Content Type?
Information about contentInformation about content
Metadata (columns) Metadata (columns)
Strongly typedStrongly typedinheritableinheritable
Defined using XMLDefined using XMLSite admin tools or programmaticallySite admin tools or programmatically
Available globallyAvailable globally
Why use Content Types?Why use Content Types?
Reusable – multiple librariesReusable – multiple libraries
Inheritable – from base typesInheritable – from base types
Strongly typedStrongly typed
SecurableSecurable
Scoped to the siteScoped to the site
Can be based on internal or external dataCan be based on internal or external data
Supports standard taxonomy implementationSupports standard taxonomy implementation
Profile PropertiesProfile Properties
A special kind of content typeA special kind of content type
ExtendableExtendable
Mapped to Active Directory (LDAP) – default Mapped to Active Directory (LDAP) – default providerprovider
Working with Content TypesWorking with Content Types
1-hr lunch break1-hr lunch break
What Will We Cover?What Will We Cover?
What is a Web Part?What is a Web Part?
UI for SharePoint or ASP.NET 2.0 pageUI for SharePoint or ASP.NET 2.0 page
Reusable ‘chunk’ of contentReusable ‘chunk’ of contentLike a ‘smart ‘.ascx’ file Like a ‘smart ‘.ascx’ file
Displays XML, formats via XSLTDisplays XML, formats via XSLT
Lists – the core web part typeLists – the core web part type
Rows and Columns of strongly typed dataRows and Columns of strongly typed data
Most basic web partMost basic web part
Can create, customize, extend, create from Can create, customize, extend, create from ExcelExcel
Views not Folders – expose Metadata Views not Folders – expose Metadata intelligentlyintelligently
Libraries – specialty web partsLibraries – specialty web parts
Libraries vs. ListsLibraries vs. Lists
Library characteristicsLibrary characteristicsMetadataMetadata
ViewsViews
DocumentsDocuments
PicturesPictures
FormsForms
3 types of libraries in SharePoint3 types of libraries in SharePoint
Libraries - advancedLibraries - advanced
Base document type(s)Base document type(s)
Custom metadataCustom metadataContent TypesContent Types
Re-package library as content type (feature)Re-package library as content type (feature)
PermissionsPermissionsMenu optionsMenu options
WorkflowWorkflow
Customizing libraries inside of Customizing libraries inside of SharePointSharePoint
Why use Web Parts?Why use Web Parts?
Reusable – multiple sites, pages, librariesReusable – multiple sites, pages, libraries
Inheritable – from base typesInheritable – from base types
Strongly typedStrongly typed
SecurableSecurableSecurity-trimmed by defaultSecurity-trimmed by default
Customizable by authorized usersCustomizable by authorized usersPublic propertiesPublic properties
Connectable (can pass data for filtering)Connectable (can pass data for filtering)
How end users use Web Parts?How end users use Web Parts?
Customize on pageCustomize on pageSimple or Advanced propertiesSimple or Advanced properties
Add to page from galleryAdd to page from gallerySimple or Advanced viewSimple or Advanced view
Create pages or sites from templatesCreate pages or sites from templatesTemplates can include web partsTemplates can include web parts
Web Parts in actionWeb Parts in action
How to get Web Parts?How to get Web Parts?
Download – free or purchaseDownload – free or purchase
Customize existing from within SharePointCustomize existing from within SharePoint
Create from with SharePointCreate from with SharePoint
Create using SharePoint DesignerCreate using SharePoint Designer
Create using Visual StudioCreate using Visual Studio
Using Visual Studio for Web Using Visual Studio for Web Part DevelopmentPart Development
Use ASP.NET templateUse ASP.NET template
Use Toolbox section for Web PartsUse Toolbox section for Web PartsWebPartManager or SharePointWebPartManagerWebPartManager or SharePointWebPartManager
WebPartZoneWebPartZone
MoreMore
How to create Web Parts in Visual How to create Web Parts in Visual StudioStudio
Typical Deployment stepsTypical Deployment steps
Create web partCreate web part
Copy to \bin or GACCopy to \bin or GAC
Set Web.config trust levelSet Web.config trust level
Add Web.config entry for SafeControlsAdd Web.config entry for SafeControls
Add .webpart file (gallery browsing)Add .webpart file (gallery browsing)
Test webpart on a pageTest webpart on a page
What’s a Feature?What’s a Feature?
Reusable chunk of content for SharePointReusable chunk of content for SharePoint
Can be scoped to site or subset of siteCan be scoped to site or subset of site
ExamplesExamplesContent TypeContent Type
ListList
WorkflowWorkflow
Web partWeb part
How to implement featuresHow to implement features
add subfolder with a Feature definition within add subfolder with a Feature definition within Features setup directoryFeatures setup directory
includes Feature.xml includes Feature.xml defines the base properties of the Feature & lists defines the base properties of the Feature & lists elements bound to itelements bound to it
Work with features Work with features Via SharePoint UIVia SharePoint UI
Using Stsadm.exeUsing Stsadm.exe
Using the SharePoint object modelUsing the SharePoint object model
Deploying Web Parts as FeaturesDeploying Web Parts as Features
What is InfoPath?What is InfoPath?
RAD form-design applicationRAD form-design applicationData binding optionsData binding options
Included controlsIncluded controls
Sophisticated securitySophisticated securityIntegration w/ Active Directory and moreIntegration w/ Active Directory and more
Included with Office xxx versionIncluded with Office xxx version
Based on XML – embeddable in ASP.NETBased on XML – embeddable in ASP.NET
Many deployment optionsMany deployment options
Using & Customize InfoPath formsUsing & Customize InfoPath forms
How do I create a Form?How do I create a Form?
Customize a sampleCustomize a sample
Based on a XSD schemaBased on a XSD schema
Based on a relational data sourceBased on a relational data source
Based on a web serviceBased on a web service
Using Visual StudioUsing Visual Studio
Create a Form – using various Create a Form – using various methodsmethods
Form deploymentForm deployment
File (shared folder)File (shared folder)
Web siteWeb site
SharePoint librarySharePoint library
OtherOther
Form deploymentForm deployment
Forms Services in SharePointForms Services in SharePoint
Configuring the SSPConfiguring the SSPShared Services ProviderShared Services Provider
Security considerationsSecurity considerations
Deploying the formDeploying the form
Using the form via SharePoint librariesUsing the form via SharePoint libraries
Deploying to forms servicesDeploying to forms services
Advanced capabilitiesAdvanced capabilities
Tablet (ink) supportTablet (ink) support
Digital signaturesDigital signatures
AttachmentsAttachments
SharePoint workflowsSharePoint workflows
What is a Workflow?What is a Workflow?
Unit of Business LogicUnit of Business LogicContains ActivitiesContains Activities
Contains cancel & fault handlers Contains cancel & fault handlers
Based on Windows Workflow in .NET 3.0Based on Windows Workflow in .NET 3.0
Visually DesignedVisually DesignedXOML – uncompiled –OR--XOML – uncompiled –OR--
.NET language - compiled.NET language - compiled
Why use Workflows?Why use Workflows?
Reusable – multiple sites, pages, librariesReusable – multiple sites, pages, libraries
Inheritable – from base workflowsInheritable – from base workflows
Visually documentedVisually documented
Capture business logicCapture business logic
Customizable by authorized usersCustomizable by authorized usersPublic propertiesPublic properties
How end users use Workflows?How end users use Workflows?
Automatic invocation –OR-Automatic invocation –OR-Office, i.e. Word, etc…Office, i.e. Word, etc…
SharePoint document librarySharePoint document library
Manual invocationManual invocation
Can associate multiple workflows with single Can associate multiple workflows with single document or librarydocument or library
Workflows in actionWorkflows in action
How to get Workflows?How to get Workflows?
Download – free or purchaseDownload – free or purchase
Customize existing from within SharePointCustomize existing from within SharePoint
Create from with SharePointCreate from with SharePoint
Create using SharePoint DesignerCreate using SharePoint Designer
Create using Visual StudioCreate using Visual Studio
Limits of SharePoint Designer Limits of SharePoint Designer for Workflow Development Ifor Workflow Development I
Workflow is associated to one list or library Workflow is associated to one list or library onlyonly
Can NOT package as a featureCan NOT package as a feature
Sequential Workflows onlySequential Workflows onlyDesigning State Machine Workflows not Designing State Machine Workflows not supportedsupported
Limits of SharePoint Designer Limits of SharePoint Designer for Workflow Development IIfor Workflow Development II
Designing custom Activities not supportedDesigning custom Activities not supportedDebugging not supportedDebugging not supported
Does not support all form types, i.e. InfoPath, Does not support all form types, i.e. InfoPath, etc…etc…
Uses XOML – no code behind (beside)Uses XOML – no code behind (beside)
Using SharePoint Designer for Using SharePoint Designer for Workflow DevelopmentWorkflow Development
Customize existing SharePoint workflowsCustomize existing SharePoint workflows
Create new workflowsCreate new workflowsUse Workflow Designer WizardUse Workflow Designer Wizard
Creates XOML fileCreates XOML file
Creating Workflows in SharePoint Creating Workflows in SharePoint DesignerDesigner
Using Visual Studio for Using Visual Studio for Workflow DevelopmentWorkflow Development
Workflow templatesWorkflow templates
Visual Studio templatesVisual Studio templatesSequence or State Machine (Library or Console Sequence or State Machine (Library or Console application) application)
SharePoint Sequence or State Machine LibrarySharePoint Sequence or State Machine Library
Activity LibraryActivity Library
State Machine vs. Sequential?State Machine vs. Sequential?
Sequential == known, one-way flow, i.e. A, Sequential == known, one-way flow, i.e. A, then B, then C, etc…then B, then C, etc…
Machine processesMachine processes
State == states, looping possible, i.e. meal is State == states, looping possible, i.e. meal is ordered, meal is cooked, meal is sent back, ordered, meal is cooked, meal is sent back, meal is updatedmeal is updated
Human processesHuman processes
Workflows in Visual Studio IWorkflows in Visual Studio ICode-behind workflows in C# or VB.NETCode-behind workflows in C# or VB.NET
Both sequential or state workflowsBoth sequential or state workflows
Can include workflow modificationsCan include workflow modifications
Can use custom activitiesCan use custom activities
Debugging availableDebugging available
Workflows in Visual Studio IIWorkflows in Visual Studio IIWorkflows as templates Workflows as templates
Can be bound to multiple locationsCan be bound to multiple locations
Can use any form type Can use any form type ASP forms, InfoPath, etc…ASP forms, InfoPath, etc…
Packaged as a featurePackaged as a feature
How to create Workflows in Visual How to create Workflows in Visual StudioStudio
15 minute break15 minute break
What Will We Cover?What Will We Cover?
What is the BDC?What is the BDC?
Shared Service for MOSS allowing back-end Shared Service for MOSS allowing back-end data to be used in MOSS sitesdata to be used in MOSS sites
No code integration No code integration
XML metadata file XML metadata file
Application Definition File (ADF)Application Definition File (ADF)
MOSS designed to integrateMOSS designed to integrateWeb parts, lists, search and moreWeb parts, lists, search and more
Why use the BDC?Why use the BDC?
RAD – no code connections to data sourcesRAD – no code connections to data sources
Back-end data can be integrated into MOSS Back-end data can be integrated into MOSS sitessites
Strongly typedStrongly typed
SecurableSecurable
Scoped to the siteScoped to the site
What does it look like?What does it look like?
Using BDC content from Using BDC content from AdventureWorks 2000AdventureWorks 2000
What is an ADF?What is an ADF?
Metadata about data sourceMetadata about data source
Similar to, but not the same as, an XSD Similar to, but not the same as, an XSD schemaschema
Required, formal structureRequired, formal structureIncludes sophisticated security model (for Includes sophisticated security model (for example 5 methods of authentication supported example 5 methods of authentication supported and checkAccess() for security trimming)and checkAccess() for security trimming)
Samples on MSDNSamples on MSDN
Create the ADF – hard wayCreate the ADF – hard way
Manual XMLManual XMLcopy BdcMetadata.XSD from <copy BdcMetadata.XSD from <RootRoot>\Program >\Program Files\Microsoft Office Servers\12.0\Bin to your Files\Microsoft Office Servers\12.0\Bin to your working folderworking folder
Then point the Then point the SchemaLocationSchemaLocation attribute in the attribute in the XML file to the schema locationXML file to the schema location
The use VS IntellisenseThe use VS Intellisense
Create the ADF – easy wayCreate the ADF – easy way
Download a free ADF generator tool, such as Download a free ADF generator tool, such as Todd Baginski’s tool at Todd Baginski’s tool at http://www.sharepointblogs.com/tbaginski/archttp://www.sharepointblogs.com/tbaginski/archive/2006/07/16/9259.aspxhive/2006/07/16/9259.aspx
Connect to your data sourceConnect to your data source
Generate the ADFGenerate the ADF
Review the ADF for correctnessReview the ADF for correctness
Create an ADF for the BDCCreate an ADF for the BDC
Configure the BDCConfigure the BDC
Configure the SSP for the siteConfigure the SSP for the site
Use the ADF file to set up the BDC Use the ADF file to set up the BDC connectionconnection
Use a web part to testUse a web part to test
Configure the ADF for the BDCConfigure the ADF for the BDC
BDC in MOSSBDC in MOSS
Works with web partsWorks with web parts
Works with lists & user profiles(i.e. add Works with lists & user profiles(i.e. add meta data)meta data)
Works with custom search (i.e. search for Works with custom search (i.e. search for meta data)meta data)
Works with actions (i.e. update source Works with actions (i.e. update source data, etc…)data, etc…)
Working with BDC data in MOSSWorking with BDC data in MOSS
Session SummarySession Summary
Understand the new paradigmUnderstand the new paradigm
Use libraries not foldersUse libraries not foldersTaxonomies / metadata is keyTaxonomies / metadata is key
Exploit viewsExploit views
Educate end usersEducate end users
Explore SharePoint itself first, then SPD, then Explore SharePoint itself first, then SPD, then VSVS
Lynn LangitLynn LangitDeveloper EvangelistDeveloper EvangelistMicrosoft CorporationMicrosoft Corporationhttp://blogs.msdn.com/SoCalDevGalhttp://blogs.msdn.com/SoCalDevGal