190 likes | 354 Views
List Enhancements and Client Object Models in SharePoint 2010. Ronald Tielke ront@microsoft.com Microsoft Services – Southwest. Preview. SharePoint 2010 is now, more than ever, a platform for custom application development
E N D
List Enhancements and Client Object Models in SharePoint 2010 Ronald Tielke ront@microsoft.com Microsoft Services – Southwest
Preview • SharePoint 2010 is now, more than ever, a platform for custom application development • List enhancements in SharePoint 2010 further position SharePoint as a Data Source • A number of options are available for accessing this data; each has its place, as well as specific PROs and CONs • Client Object Models provide consistent APIs for developing custom apps and abstract the specifics of client-server communication.
Agenda • What You Need to Know • List Enhancements • Client Object Models • Scenario • Solution • Review & Questions
List Enhancements • Relational • Lookups • Projections
List Enhancements • Relational • Data integrity between Parent & Child Lists • Restrict or Cascade • Uniqueness Constraints • Creates an Indexed Column • Examines/Validates existing data • Joins • Accessible via programming APIs and SharePoint Designer • SPQuery.Join & SPQuery.ProjectedFields
List Enhancements • List Validation • Item-Level • Field-Level
List Enhancements • Performance • Goal of 50M items in Read scenarios • Self-Managed Indexes • Query Throttling • Admin Control at the Web App level • Self Defense • User Interface Hints • Privileged Query Levels • Dev Overridable if Allowed • Restricted Windows of Execution • Wide List (Join) Throttling
List Enhancements • XSLT-Based Views • Based on the XsltListViewWebPart CAML Query XmlDefinition SPDataSource XML Data XsltListViewWebPart HTML XslCompiledTransform List Schema ListName View Transform XSL
List Enhancements Custom ? • There’s more… • Bulk Operations • Edit in Line
List Enhancements • And last but not least… • InfoPath Form Integration with Custom Lists !!
Client Object Model • Customers wanted access to more WSS services • Provides an API instead of more Web Services • Allows a developer to interact with a familiar set of SharePoint objects • Client objects map to well known Server objects • Covers a major portion of the SharePoint Foundation API • Generally provides a consistent development model across different client platforms • Standard (SQL-ish) Programming Pattern: • Shape one or more requests • Load the request(s) • Execute the request batch
Client Object Model • Supported Platforms • .Net • Silverlight • JavaScript • Additional/Related Technologies • OOB Silverlight Web Part (uses your XAP file) • ADO.NetData Services • LINQ to Objects • LINQ to SharePoint (SPMetal) • Legacy Models • Web Services • WebDAV
Client Object Model JavaScript Controls and Logic Browser Client.svc Server OM JSON Response JavaScript OM XML Request Proxy XML Request Proxy Contentdatabase JSON Response Managed OM Managed Client Managed Controls and Logic SharePoint Server
Scenario • Contoso distributes a number of products. • Contoso Marketing generates product announcements on a monthly basis. • Each announcement is associated with a specific product. • Contoso customers register via the contoso.com web site and select one or more products of interest. • Contoso Marketing wishes to distribute a personalized newsletter to each registered user; the newsletter will contain announcements related to the product of interest.
Solution • Custom Products list • Master product list • Custom Product Announcements list • Lookup to Products list; restrict deletes • Custom Registered Users (Contacts) list • Lookup (multi-select) to Products list; restrict deletes • Custom .NetClient Application • Use Client OM for .Net • Load/Cache all eligible product announcements • Load/Cache all registered users • For each user: • Determine Product Interests • Gather Targeted Announcements • Generate & Send newsletter
Review • SharePoint 2010 is now, more than ever, a platform for custom application development • List enhancements further position SharePoint as a Data Source • A number of options are available for accessing this data; each has its place, as well as specific PROs and CONs • Client Object Models provide consistent APIs for developing custom apps and abstract the specifics of client-server communication.