Post on 24-Dec-2015
Server Development Server Development OverviewOverview
Paul Appleby & David GristwoodApplication ArchitectsDeveloper & Platform GroupMicrosoft Limited
Session GoalsSession GoalsThis session is all about “what”, not “how”Cover the pieces of Windows SharePoint Services version 3 and Microsoft Office SharePoint Server 2007 fit togetherEnumerate the places within SharePoint Products and Technologies where you can add your own codeGuide you to the right sessions to cover the specific development projects you have in mindProvide a big picture – but a technical big picture
AgendaAgenda
SharePoint architectureDevelopment areas
Microsoft Office SharePoint Service
Shared services model
SharePoint’s Dual NatureSharePoint’s Dual Nature
Two different but valid views of1. A storage application
Lists, Views, Libraries, Versioning, Security, etc
2. A Web application interfacePages, Web Parts, Security, etc
Fundamental Principle #1Fundamental Principle #1
Site definition basic unit of workDefines every single site
…are made up of featuresNew to version 3Are “capabilities” e.g. tracking, basic collaboration, etc
…which reference componentse.g. web parts, event handlers, etc
…that may talk to shared servicese.g. Search
Fundamental Principle #2Fundamental Principle #2
SharePoint sites:Consist of data
And only data, no “code behind”
Unlike ASPX programs in Visual Studio
Can reference code events, Web Parts, pages, workflow assemblies
SharePoint is a runtime engine that brings together all the elements on demand to create a page
Based on who you, what you asked for, etc
Fundamental Principle #3Fundamental Principle #3
Shared Services is the new model for manageable, enterprise scalable sites
Microsoft Office SharePoint Server provide and use theseWindows SharePoint Services doesn’t ship with any shared services OOB
Shared Services must:Expect to be used by multiple Web applications from multiple farms
Make themselves able to be surfaced in and managed via SharePoint Central Administration**
Allow themselves to be managed by delegated administrators
Operating System ServicesOperating System Services
DatabaseDatabase SearchSearch WorkflowWorkflow
ASP.NET (ASP.NET (Web Parts, Personalization, Master Pages, Provider Model for navigation, security, etc. ))
Core Workspace ServicesCore Workspace Services
StorageStorage
RepositoryRepositoryMetadataMetadataVersioningVersioningBackupBackup
SecuritySecurity
Rights/RolesRights/RolesPluggable AuthPluggable AuthPer ItemPer ItemRights TrimmingRights Trimming
ManagementManagement
Admin UXAdmin UXDelegationDelegationProvisioningProvisioningMonitoringMonitoring
TopologyTopology
Config. Mgmt.Config. Mgmt.Farm ServicesFarm ServicesFeature PolicyFeature PolicyExtranetExtranet
Site ModelSite Model
RenderingRenderingTemplatesTemplatesNavigationNavigationVisual BlueprintVisual Blueprint
APIsAPIs
Fields/Forms Fields/Forms OM and SOAPOM and SOAPEventsEventsDeploymentDeployment
CollaborationCollaboration
DiscussionsDiscussionsCalendarsCalendarsE-MailE-MailPresencePresenceProject Mgt.Project Mgt. “Lite” “Lite”OfflineOffline
Enterprise Enterprise Content Mgmt.Content Mgmt.
AuthoringAuthoringApprovalApprovalWeb PublishingWeb PublishingPolicy/AuditingPolicy/AuditingRights MgtRights MgtRetentionRetentionMulti-LingualMulti-LingualStagingStaging
PersonalizationPersonalization
My SitesMy SitesTargetingTargetingPeople People FindingFindingSocial Social NetworkingNetworkingPrivacyPrivacyProfilesProfiles
SearchSearch
IndexingIndexingRelevanceRelevanceMetadataMetadataAlertsAlertsCustomizableCustomizableUser Exper.User Exper.
Business Business Process Process IntegrationIntegration
Rich FormsRich FormsWeb FormsWeb FormsBiz Data Biz Data CatalogCatalogData in ListsData in ListsLOB ActionsLOB ActionsSingle Sign-OnSingle Sign-OnBizTalk Integr.BizTalk Integr.
Business Business IntelligenceIntelligence
Server Calc.Server Calc.Web Web RenderingRenderingKPIsKPIsDashboardsDashboardsReport Ctr.Report Ctr.SQL RS Int.SQL RS Int.SQL AS Int.SQL AS Int.
ProjectProject
TasksTasksSchedulesSchedulesResourcesResourcesBudgetsBudgetsDeliverablesDeliverablesReportsReports
Applications/PortalsApplications/Portals
SharePoint Technology SharePoint Technology StackStack
Development AreasDevelopment Areas
• Main areas you can hook in to:1. Data
2. Metadata
3. Behavior
4. ASP.NET extensions
5. Packaging
1 - Data1 - Data
SP has lots of dataDocumentsCalendars / Contacts / Announcements / Links / Surveys / Discussions …Lists, libraries, views
Programmatic access to data and documents
Update list, change statusAccess via SP object model
2 - Metadata2 - Metadata
Extensive usedField definitions, list definitions, site definitions
New focus on Content TypesReusable definition of a list schema
Specific fields
HierarchicalAssociate Behaviors
Events, Document Templates, Workflows
E.g. different types of business documents
Marketing, reports, expenses, change request
3 – Behavior (Events)3 – Behavior (Events)
Events allow developers to modify the way SharePoint behaves when working with data
call a web service, update a back end system, etc
Events supported on lists and librariesBefore and after events
Pre-synchronous with cancellation and filtering
Enforce business logic
Can register multiple event receiversAttach Events at Web or Item Level
Behavior (Workflow)Behavior (Workflow)
SharePoint hosts Windows Workflow Foundation
Attach workflow to data in SP
Can start manually or automatically
Workflows OOB Workflow
Workflow related activities
Workflow user interactions
ToolsVisual Studio
SharePoint Designer
4 - ASP.NET Extensions4 - ASP.NET Extensions
It’s no longer “should I use ASP.NET or SharePoint sites?”
It’s “should I use ASP.NET to write from scratch or to extend SharePoint sites?”
SharePoint has great strengths around provisioning and re-use
Web Parts
Custom controls
Custom pages
User/role providers
5 - Packaging5 - Packaging
Developers supporting adminsEase deployment and roleout
FeaturesAddress storage and manipulation
Encompasses list / view/Web Part / Event Handler / workflow component / etc.
Part of a Site Definition
Sharable across site definitions
AgendaAgenda
SharePoint architectureDevelopment areas
Microsoft Office SharePoint Service
Shared services model
Microsoft Office SharePoint Server Microsoft Office SharePoint Server
Many major pieces of server functionality in Office 2007 involve adding a feature and a shared services to WSS
Microsoft Office SharePoint Server is the ultimate SharePoint development example
Most of Microsoft Office SharePoint Server 2007 consists of:
Features (with lots of components)
Site DefinitionsBlogs, wikis, meeting workspaces, document workspaces,
Shared Services
e.g., Indexing, Search, Excel, InfoPath Forms
Operating System ServicesOperating System Services
DatabaseDatabase SearchSearch WorkflowWorkflow
ASP.NET (ASP.NET (Web Parts, Personalization, Master Pages, Provider Model for navigation, security, etc. ))
Core Workspace ServicesCore Workspace Services
StorageStorage
RepositoryRepositoryMetadataMetadataVersioningVersioningBackupBackup
SecuritySecurity
Rights/RolesRights/RolesPluggable AuthPluggable AuthPer ItemPer ItemRights TrimmingRights Trimming
ManagementManagement
Admin UXAdmin UXDelegationDelegationProvisioningProvisioningMonitoringMonitoring
TopologyTopology
Config. Mgmt.Config. Mgmt.Farm ServicesFarm ServicesFeature PolicyFeature PolicyExtranetExtranet
Site ModelSite Model
RenderingRenderingTemplatesTemplatesNavigationNavigationVisual BlueprintVisual Blueprint
APIsAPIs
Fields/Forms Fields/Forms OM and SOAPOM and SOAPEventsEventsDeploymentDeployment
CollaborationCollaboration
DiscussionsDiscussionsCalendarsCalendarsE-MailE-MailPresencePresenceProject Mgt.Project Mgt. “Lite” “Lite”OfflineOffline
Enterprise Enterprise Content Mgmt.Content Mgmt.
AuthoringAuthoringApprovalApprovalWeb PublishingWeb PublishingPolicy/AuditingPolicy/AuditingRights MgtRights MgtRetentionRetentionMulti-LingualMulti-LingualStagingStaging
PersonalizationPersonalization
My SitesMy SitesTargetingTargetingPeople People FindingFindingSocial Social NetworkingNetworkingPrivacyPrivacyProfilesProfiles
SearchSearch
IndexingIndexingRelevanceRelevanceMetadataMetadataAlertsAlertsCustomizableCustomizableUser Exper.User Exper.
Business Business Process Process IntegrationIntegration
Rich FormsRich FormsWeb FormsWeb FormsBiz Data Biz Data CatalogCatalogData in ListsData in ListsLOB ActionsLOB ActionsSingle Sign-OnSingle Sign-OnBizTalk Integr.BizTalk Integr.
Business Business IntelligenceIntelligence
Server Calc.Server Calc.Web Web RenderingRenderingKPIsKPIsDashboardsDashboardsReport Ctr.Report Ctr.SQL RS Int.SQL RS Int.SQL AS Int.SQL AS Int.
ProjectProject
TasksTasksSchedulesSchedulesResourcesResourcesBudgetsBudgetsDeliverablesDeliverablesReportsReports
Applications/PortalsApplications/Portals
WSS vs. MOSS DevelopmentWSS vs. MOSS Development
More code-intensive developmentMore component, feature development
More declarative developmentMore solution development, integration workRoom to extend with components, client UI
Excel Services Excel Services ArchitectureArchitectureExcel engine
available on the server
Central storage - “one version of the truth”
Protect business logic
Web Part allows users to view / interact with live workbook using browser
Web Services allows programmatic access
Use as calculation engine
• No VBA or macros supported
Use User-Defined Functions (UDFs)
InfoPath Form ServicesInfoPath Form ServicesWSS Provides back end processing for InfoPath“InfoPath for the web”
Server side generation / handling of formsUsers do not require InfoPath client
Forms developed with InfoPath editorTemplate parts (“formlets”)Visual Studio Tools for Applications (VSTA)
(VSTO is Office specific VSTA)
Forms become content type on publish
Content type is responsible for extra UIEnables re-use
Business Data CatalogBusiness Data CatalogIntegration of back end system data into SharePoint
No custom code needed
Define metadata that describes business entities
Used for Display, indexing, etc
BDC aware Web PartsAdd columns to lists, etc
Custom actions Look up, write-back, etc
Metadata management tools
Business Data List Web Part
Business Data column in a list
Action inside a Business Data List Web Part
SharePoint Collaboration SharePoint Collaboration TechnologyTechnology
Higher-value application level resources
Tracking items, project tasks, issue tracking
e.g. Issue tracking supports sending email when ownership assigned
Wiki, Blog, discussions, etc
Email integrationLists can now receive emailsCan write custom email handlers
Directory services integrationCreate/manage distribution lists
Search ServicesSearch Services
Customize/extend Search CenterSet of Custom Search Web PartsAdd tabs with custom actionsModifying the Search Core Results Web Part XSLTCustomize alerts
Search engine exposed through API
Index custom dataProtocol handlers and IFiltersBusiness Data Catalog
Search ServicesSearch Services
SharePoint search limited to within current site collection
Office Search can search file shares, Exchange, external web sites, etc
Fundamental PrinciplesFundamental Principles
SharePoint site definitions are made up of features which reference components that may talk to shared services
SharePoint sites consist of data described by definitions that can reference code and contain instancing information for components
Shared Services are high-value, resource-intensive processes that can be managed within SharePoint Central Administration by delegated administrators