windows sharepoint services: advancements in document, content, and data storage dustin friesenhahn...
Post on 19-Dec-2015
220 views
TRANSCRIPT
Windows SharePoint Services: Windows SharePoint Services: Advancements In Document, Advancements In Document, Content, And Data StorageContent, And Data Storage
Dustin FriesenhahnDustin FriesenhahnOFF409 OFF409 Program ManagerProgram ManagerMicrosoft CorporationMicrosoft Corporation
2
AgendaAgenda
What’s new in the platform around What’s new in the platform around storagestorage
Key extensibility pointsKey extensibility pointsContent TypesContent Types
EventsEvents
Custom Field TypesCustom Field Types
Not focusing on basic development Not focusing on basic development model for Windows SharePoint model for Windows SharePoint ServicesServices
Basic architecture same as v2Basic architecture same as v2
APIs backwards compatibleAPIs backwards compatible
3
Office “12”: Server Office “12”: Server InvestmentsInvestmentsBetter empowerment, TCO and developer productivityBetter empowerment, TCO and developer productivityNext generation e-Next generation e-
mail, project mail, project management, management,
workflow, blog and workflow, blog and wiki supportwiki support
CollaborationCollaborationBusinessBusiness
IntelligenceIntelligence
PortalPortalEnhanced SharePoint Enhanced SharePoint Portal aggregation and Portal aggregation and personalizationpersonalization
Great relevanceGreat relevancewith rich people andwith rich people and
business data searchbusiness data search
Server-based Server-based forms and forms and
workflow with workflow with smart client and smart client and
browser interfacesbrowser interfaces
Server-based Server-based spreadsheets plus BI spreadsheets plus BI portals built on SQL portals built on SQL Server Analysis Server Analysis ServicesServices
Integrated document, Integrated document, records and Web records and Web content managementcontent management
BusinessBusinessProcesseProcesse
ss
Unified ASP.NET 2.0 Unified ASP.NET 2.0 workspace foundation for workspace foundation for
scalability and extensibilityscalability and extensibility
SearchSearchContentContentManagementManagement
WindowsSharePoint
Services
4
Data Storage ScenariosData Storage Scenarios
Enterprise Document RepositoriesEnterprise Document RepositoriesRecord RepositoriesRecord RepositoriesKnowledge BasesKnowledge BasesWeb ContentWeb ContentLegal FilesLegal FilesSales/Field ContentSales/Field Content
Concepts apply to simple list Concepts apply to simple list based scenariosbased scenariosKey RequirementsKey Requirements
Scalable storageScalable storageMore server side control over contentMore server side control over contentHighly customizable behaviorsHighly customizable behaviors
5
Platform EnhancementsPlatform Enhancements
6
Platform EnhancementsPlatform Enhancements
Recycle BinRecycle BinPer-item permissionsPer-item permissionsFolders in all list typesFolders in all list types
Custom properties on foldersCustom properties on foldersConsume data outside its containerConsume data outside its container
Cross web lookup fieldsCross web lookup fieldsCross web list viewsCross web list views
Announcements list from the root on every Announcements list from the root on every homepage in the sitehomepage in the site
Extensible file-format supportExtensible file-format supportFramework to support properties from Framework to support properties from 3rd party file formats3rd party file formats
7
Platform EnhancementsPlatform EnhancementsVersioningVersioning
Developer ScenarioDeveloper ScenarioContent undergoes both large and small changes during Content undergoes both large and small changes during creationcreationAudience for the content changesAudience for the content changes
Approved version versus next version under developmentApproved version versus next version under developmentNeed a secure “holding pen” for content processingNeed a secure “holding pen” for content processing
Platform supports Major/Minor VersioningPlatform supports Major/Minor VersioningDifferent security for minor versus major versionsDifferent security for minor versus major versionsDifferent content returned based on rightsDifferent content returned based on rights
Checked Out versionChecked Out versionDraft/Minor versionDraft/Minor versionPublished/Major versionPublished/Major version
List item versioningList item versioningVersion history page shows metadata changesVersion history page shows metadata changes
Version limitingVersion limitingLimit the number of versions to retainLimit the number of versions to retain
8
Version History UIVersion History UI
9
ScalabilityScalabilityCustom Column IndexingCustom Column Indexing
Developer ScenarioDeveloper ScenarioCreate a view across all folders in a repositoryCreate a view across all folders in a repositoryPotentially millions of items to queryPotentially millions of items to queryIssues where Priority = HighIssues where Priority = HighDocuments where Due Date = TODAYDocuments where Due Date = TODAY
Custom Column IndexCustom Column IndexUser/developer defined index on any column in a listUser/developer defined index on any column in a listFilters down the large set of data to only the items we need to Filters down the large set of data to only the items we need to queryquery
Developer NotesDeveloper NotesChoice of indexed column is importantChoice of indexed column is important
Must sufficiently filter the initial set of itemsMust sufficiently filter the initial set of itemsIndexed filter must return buckets of ~1000 itemsIndexed filter must return buckets of ~1000 items
Claims additional resources: Storage + update overheadClaims additional resources: Storage + update overheadOnly one indexed column used in any queryOnly one indexed column used in any query
Assigned To = “Dustin” OR Due Date=“Today” won’t workAssigned To = “Dustin” OR Due Date=“Today” won’t work
10
ScalabilityScalabilityCross List QueriesCross List Queries
Developer ScenarioDeveloper ScenarioQuery across a set of lists in a site collectionQuery across a set of lists in a site collection
All items where Expiration > TodayAll items where Expiration > Today
All tasks where Assigned to = MEAll tasks where Assigned to = ME
Cross List QueriesCross List QueriesExtension to query languageExtension to query language
Define list template or specific IDs to query Define list template or specific IDs to query acrossacross
Developer targeted – display results in Developer targeted – display results in custom Webpartscustom Webparts
Works in conjunction with the custom column Works in conjunction with the custom column indexindex
11
Scenario WalkthroughScenario WalkthroughCross List Query ExampleCross List Query Example
Query CodeQuery Code
ExecutionExecutionFirst pass – Filter to relevant listsFirst pass – Filter to relevant lists
Optionally uses a custom index to filter out listsOptionally uses a custom index to filter out listsLess necessary when querying across small number of listsLess necessary when querying across small number of lists
Second pass – Align data in each listSecond pass – Align data in each listOptionally uses custom index to speed up query on each individual listOptionally uses custom index to speed up query on each individual listLess necessary when amount of data in each list is smallLess necessary when amount of data in each list is small
SPSiteDataQuery.Query=SPSiteDataQuery.Query=<Where> <Eq><Where> <Eq> <FieldRef Name=“Author“/><FieldRef Name=“Author“/> <Value Type="String"> "DustinFr“ </Value><Value Type="String"> "DustinFr“ </Value></Eq> </Where></Eq> </Where>SpSiteDataQuery.Lists = <Lists ServerTemplate="101">SpSiteDataQuery.Lists = <Lists ServerTemplate="101">
12
Management FeaturesManagement Features
13
ManagementManagementTypical ProblemsTypical Problems
Many document types identified in Many document types identified in my organization but no way to my organization but no way to enforce standardsenforce standards
Need to store different types of Need to store different types of documents in one locationdocuments in one location
Actions available to users depend on Actions available to users depend on the type of contentthe type of content
14
Content TypesContent TypesOverviewOverview
Reusable definition of an item typeReusable definition of an item typeWhat’s in a content type?What’s in a content type?
Schema Definition (Collection of fields)Schema Definition (Collection of fields)Some fields shared between types, some uniqueSome fields shared between types, some unique
Document templateDocument templateAvailable workflowsAvailable workflowsPolicy settingsPolicy settings3rd party behaviors3rd party behaviors
ExamplesExamplesTrip ReportTrip ReportExpense ReportExpense ReportPDC PresentationPDC Presentation
15
Content TypesContent TypesEnd User ExperienceEnd User Experience
““New button” is now a dropdownNew button” is now a dropdown
Heterogeneous types in a viewHeterogeneous types in a view
Input, display forms, and verbs change per-typeInput, display forms, and verbs change per-type
16
Content TypesContent TypesHierarchyHierarchy
Allows individual customization of an Allows individual customization of an organization's typesorganization's types
““My Company” definition of a type vs. “My Team” My Company” definition of a type vs. “My Team” definitiondefinition
Microsoft Expense Report
Microsoft Expense Report
Microsoft Review Form
Microsoft Review Form
Microsoft Wide PDC
Presentation
Microsoft Wide PDC
Presentation
Base Document
Base Document
Office TeamPDC
Presentation
Office TeamPDC
Presentation
17
Content TypesContent TypesManaging Content TypesManaging Content Types
Types of changes to a Site Content TypeTypes of changes to a Site Content TypeAdd/remove fieldsAdd/remove fieldsUpdate document templateUpdate document templateChange policyChange policy
Push down changesPush down changesChanges are optionally applied to existing lists Changes are optionally applied to existing lists or other types which inherit from itor other types which inherit from itGranular – Individual changes can be pushed Granular – Individual changes can be pushed downdown
Why optionally push down changes?Why optionally push down changes?Allow consumers of the type to make their own Allow consumers of the type to make their own customizationscustomizationsAdmin can “Seal” a content type to prevent Admin can “Seal” a content type to prevent consumers from making changesconsumers from making changes
18
Column TemplatesColumn Templates
Reusable column definitionsReusable column definitionsDefined at the Web levelDefined at the Web levelUse in multiple lists or by multiple Content Use in multiple lists or by multiple Content TypesTypesUpdate in one placeUpdate in one place
19
Content TypesContent Types
Dustin FriesenhahnDustin FriesenhahnProgram ManagerProgram ManagerSharePointSharePoint
20
Content TypesContent TypesExtensible BehaviorsExtensible Behaviors
Package features and behaviors with Package features and behaviors with content types instead of listscontent types instead of listsHow we use itHow we use it
““Web Page” type with scheduling and a Web Page” type with scheduling and a complex approval processcomplex approval process““XML Document” type with ties to rich XML XML Document” type with ties to rich XML data extractiondata extraction““Discussion Thread” with custom forms and Discussion Thread” with custom forms and user experienceuser experience
Type can be used anywhere in the siteType can be used anywhere in the siteNo dedicated place where content must live to No dedicated place where content must live to benefit from a new featurebenefit from a new feature
21
Content TypesContent TypesExtensible BehaviorsExtensible Behaviors
Full OM SupportFull OM SupportDefine in code or in front end XML filesDefine in code or in front end XML filesDeployed with “features” frameworkDeployed with “features” framework
Customizable new/edit/display formsCustomizable new/edit/display formsAuto-generated based on schemaAuto-generated based on schemaDefine a different ASCX form templateDefine a different ASCX form templateDefine completely different ASPX formsDefine completely different ASPX forms
Workflows by typeWorkflows by typeCustom Settings UICustom Settings UIGeneric XML storageGeneric XML storage
Used to store solution dataUsed to store solution dataEvents anchored by typeEvents anchored by type
22
Event FrameworkEvent Framework
Events are key framework to Events are key framework to plugging in new functionalityplugging in new functionality
More complete list of asynchronous More complete list of asynchronous events events
Schema changed, Site deleted, etc.Schema changed, Site deleted, etc.
Supported on regular lists as well as Supported on regular lists as well as document librariesdocument libraries
Multiple handlers on a listMultiple handlers on a list
New synchronous “before” events!New synchronous “before” events!Before update, delete, etc.Before update, delete, etc.
23
Content Types ExtensibilityContent Types Extensibility
Dustin FriesenhahnDustin FriesenhahnProgram ManagerProgram ManagerSharePointSharePoint
24
Custom Field TypesCustom Field Types
Developer ScenarioDeveloper ScenarioCreate a new type with custom input and Create a new type with custom input and renderingrendering
ASP.NET controls for edit, display, new formASP.NET controls for edit, display, new form
Define complex server side data validationDefine complex server side data validation
ExamplesExamplesRatingsRatings
AddressAddress
External data lookupExternal data lookup
25
Parts Of A Custom Field Parts Of A Custom Field TypeType
Base type it is inherited fromBase type it is inherited fromDefines the actual SQL storageDefines the actual SQL storage
Defines defaults (like rendering)Defines defaults (like rendering)
Query/Sort/Filter will be dependant on Query/Sort/Filter will be dependant on the base typethe base type
Field type XML definition Field type XML definition (fldtypes.xml)(fldtypes.xml)
Defines field propertiesDefines field propertiesAuto generates field UI to collect these Auto generates field UI to collect these propertiesproperties
CAML rendering (optional)CAML rendering (optional)Views are still CAML basedViews are still CAML based
26
Field customization UIField customization UI
{Auto-generated field property input form based on field PropertySchema
27
Parts Of A Custom Field Parts Of A Custom Field TypeType
Field type classField type classMain “code” for the field typeMain “code” for the field typeDefines any server side validation for the Defines any server side validation for the fieldfieldPick which controls to use for renderingPick which controls to use for rendering
Field value classField value classEasier OM access to complex data typesEasier OM access to complex data types
URLField.Description, URLField.URLURLField.Description, URLField.URL
Field controlField controlRendering on the pageRendering on the page
Field control templateField control templateField.ascxField.ascx
28
Creating A New Field TypeCreating A New Field Type
Dustin FriesenhahnDustin FriesenhahnProgram ManagerProgram ManagerSharePointSharePoint
29
SummarySummary
Platform provides features to support Platform provides features to support enterprise repositoriesenterprise repositories
Content Types FrameworkContent Types FrameworkDefine reusable chunks of behaviorsDefine reusable chunks of behaviors
Provide a central point of managementProvide a central point of management
Free up content organization barriersFree up content organization barriers
Build highly custom vertical solutions Build highly custom vertical solutions on top of our storage frameworkon top of our storage framework
Events ImprovementsEvents Improvements
Custom Field TypesCustom Field Types
30
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Questions/Comments?Questions/Comments?