300 likes | 391 Views
Windows SharePoint Services: Advancements In Document, Content, And Data Storage. Dustin Friesenhahn OFF409 Program Manager Microsoft Corporation. Agenda. What’s new in the platform around storage Key extensibility points Content Types Events Custom Field Types
E N D
Windows SharePoint Services: Advancements In Document, Content, And Data Storage Dustin Friesenhahn OFF409 Program Manager Microsoft Corporation
Agenda • What’s new in the platform around storage • Key extensibility points • Content Types • Events • Custom Field Types • Not focusing on basic development model for Windows SharePoint Services • Basic architecture same as v2 • APIs backwards compatible
Business Intelligence Collaboration BusinessProcesses Portal Content Management Search Office “12”: Server InvestmentsBetter empowerment, TCO and developer productivity Server-based spreadsheets plus BI portals built on SQL Server Analysis Services Next generation e-mail, project management, workflow, blog and wiki support Windows SharePoint Services Server-based forms and workflow with smart client and browser interfaces Enhanced SharePoint Portal aggregation and personalization Integrated document, records and Web content management Great relevance with rich people and business data search Unified ASP.NET 2.0 workspace foundation for scalability and extensibility
Data Storage Scenarios • Enterprise Document Repositories • Record Repositories • Knowledge Bases • Web Content • Legal Files • Sales/Field Content • Concepts apply to simple list based scenarios • Key Requirements • Scalable storage • More server side control over content • Highly customizable behaviors
Platform Enhancements • Recycle Bin • Per-item permissions • Folders in all list types • Custom properties on folders • Consume data outside its container • Cross web lookup fields • Cross web list views • Announcements list from the root on every homepage in the site • Extensible file-format support • Framework to support properties from 3rd party file formats
Platform EnhancementsVersioning • Developer Scenario • Content undergoes both large and small changes during creation • Audience for the content changes • Approved version versus next version under development • Need a secure “holding pen” for content processing • Platform supports Major/Minor Versioning • Different security for minor versus major versions • Different content returned based on rights • Checked Out version • Draft/Minor version • Published/Major version • List item versioning • Version history page shows metadata changes • Version limiting • Limit the number of versions to retain
ScalabilityCustom Column Indexing • Developer Scenario • Create a view across all folders in a repository • Potentially millions of items to query • Issues where Priority = High • Documents where Due Date = TODAY • Custom Column Index • User/developer defined index on any column in a list • Filters down the large set of data to only the items we need to query • Developer Notes • Choice of indexed column is important • Must sufficiently filter the initial set of items • Indexed filter must return buckets of ~1000 items • Claims additional resources: Storage + update overhead • Only one indexed column used in any query • Assigned To = “Dustin” OR Due Date=“Today” won’t work
ScalabilityCross List Queries • Developer Scenario • Query across a set of lists in a site collection • All items where Expiration > Today • All tasks where Assigned to = ME • Cross List Queries • Extension to query language • Define list template or specific IDs to query across • Developer targeted – display results in custom Webparts • Works in conjunction with the custom column index
Scenario WalkthroughCross List Query Example • Query Code • Execution • First pass – Filter to relevant lists • Optionally uses a custom index to filter out lists • Less necessary when querying across small number of lists • Second pass – Align data in each list • Optionally uses custom index to speed up query on each individual list • Less necessary when amount of data in each list is small SPSiteDataQuery.Query= <Where> <Eq> <FieldRef Name=“Author“/> <Value Type="String"> "DustinFr“ </Value> </Eq> </Where> SpSiteDataQuery.Lists = <Lists ServerTemplate="101">
ManagementTypical Problems • Many document types identified in my organization but no way to enforce standards • Need to store different types of documents in one location • Actions available to users depend on the type of content
Content TypesOverview • Reusable definition of an item type • What’s in a content type? • Schema Definition (Collection of fields) • Some fields shared between types, some unique • Document template • Available workflows • Policy settings • 3rd party behaviors • Examples • Trip Report • Expense Report • PDC Presentation
Content TypesEnd User Experience • “New button” is now a dropdown • Heterogeneous types in a view • Input, display forms, and verbs change per-type
Content TypesHierarchy • Allows individual customization of an organization's types • “My Company” definition of a type vs. “My Team” definition Base Document Microsoft Wide PDC Presentation Microsoft Review Form Microsoft Expense Report Office Team PDC Presentation
Content TypesManaging Content Types • Types of changes to a Site Content Type • Add/remove fields • Update document template • Change policy • Push down changes • Changes are optionally applied to existing lists or other types which inherit from it • Granular – Individual changes can be pushed down • Why optionally push down changes? • Allow consumers of the type to make their own customizations • Admin can “Seal” a content type to prevent consumers from making changes
Column Templates • Reusable column definitions • Defined at the Web level • Use in multiple lists or by multiple Content Types • Update in one place
Content Types Dustin Friesenhahn Program Manager SharePoint
Content TypesExtensible Behaviors • Package features and behaviors with content types instead of lists • How we use it • “Web Page” type with scheduling and a complex approval process • “XML Document” type with ties to rich XML data extraction • “Discussion Thread” with custom forms and user experience • Type can be used anywhere in the site • No dedicated place where content must live to benefit from a new feature
Content TypesExtensible Behaviors • Full OM Support • Define in code or in front end XML files • Deployed with “features” framework • Customizable new/edit/display forms • Auto-generated based on schema • Define a different ASCX form template • Define completely different ASPX forms • Workflows by type • Custom Settings UI • Generic XML storage • Used to store solution data • Events anchored by type
Event Framework • Events are key framework to plugging in new functionality • More complete list of asynchronous events • Schema changed, Site deleted, etc. • Supported on regular lists as well as document libraries • Multiple handlers on a list • New synchronous “before” events! • Before update, delete, etc.
Content Types Extensibility Dustin Friesenhahn Program Manager SharePoint
Custom Field Types • Developer Scenario • Create a new type with custom input and rendering • ASP.NET controls for edit, display, new form • Define complex server side data validation • Examples • Ratings • Address • External data lookup
Parts Of A Custom Field Type • Base type it is inherited from • Defines the actual SQL storage • Defines defaults (like rendering) • Query/Sort/Filter will be dependant on the base type • Field type XML definition (fldtypes.xml) • Defines field properties • Auto generates field UI to collect these properties • CAML rendering (optional) • Views are still CAML based
Field customization UI { Auto-generated field property input form based on field PropertySchema
Parts Of A Custom Field Type • Field type class • Main “code” for the field type • Defines any server side validation for the field • Pick which controls to use for rendering • Field value class • Easier OM access to complex data types • URLField.Description, URLField.URL • Field control • Rendering on the page • Field control template • Field.ascx
Creating A New Field Type Dustin Friesenhahn Program Manager SharePoint
Summary • Platform provides features to support enterprise repositories • Content Types Framework • Define reusable chunks of behaviors • Provide a central point of management • Free up content organization barriers • Build highly custom vertical solutions on top of our storage framework • Events Improvements • Custom Field Types
Questions/Comments? © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.