HIGH PERFORMANCE PROGRAMMING FOR SHAREPOINT DEVELOPERS. DEV213 Eric Shupps, Microsoft MVP [SharePoint]



Similar documents
SharePoint 2010 Performance and Capacity Planning Best Practices

10 Steps to Optimize SharePoint Performance

Who is SharePoint Joel?

Developing Microsoft SQL Server Databases 20464C; 5 Days

20464C: Developing Microsoft SQL Server Databases

Intelligent Dashboards made Simple! Using Excel Services

Developing Microsoft SQL Server Databases MOC 20464

Developing Microsoft SQL Server Databases

SharePoint MVP Independent Consultant and Owner of Falchion Consulting, LLC.

Developing Microsoft SQL Server Databases (20464) H8N64S

Course 20464: Developing Microsoft SQL Server Databases

MOC 20488B: Developing Microsoft SharePoint Server 2013 Core Solutions

Track and Keynote/Session Title 9:00:00 AM Keynote 11g Database Development Java Track Database Apex Track.Net Track. 09:30:00 AM with Oracle and

SQL Server 2016 BI Any Data, Anytime, Anywhere. Phua Chiu Kiang PCK CONSULTING MVP (Data Platform)

Understanding SQL Server Execution Plans. Klaus Aschenbrenner Independent SQL Server Consultant SQLpassion.at

Scaling out a SharePoint Farm and Configuring Network Load Balancing on the Web Servers. Steve Smith Combined Knowledge MVP SharePoint Server

Course 20464C: Developing Microsoft SQL Server Databases

SharePoint for Digital Asset Management

Reporting Services. White Paper. Published: August 2007 Updated: July 2008

MicroStrategy Course Catalog

SQL Server Integration Services. Design Patterns. Andy Leonard. Matt Masson Tim Mitchell. Jessica M. Moss. Michelle Ufford

Your Data, Any Place, Any Time. Microsoft SQL Server 2008 provides a trusted, productive, and intelligent data platform that enables you to:

SharePoint What's New, What's Not. Colin Phillips :: SharePoint MVP & Consultant :: itgroove

USERS, PROFILES, & MYSITES

Managing the PowerPivot for SharePoint Environment

SHAREPOINT ARCHITECTURE FUNDAMENTALS

SQL Server Integration Services Design Patterns

WHAT'S NEW IN SHAREPOINT 2013 WEB CONTENT MANAGEMENT

Azure Scalability Prescriptive Architecture using the Enzo Multitenant Framework

SQL Server 2012 Performance White Paper

Microsoft SQL Business Intelligence Boot Camp

QlikView 11.2 SR5 DIRECT DISCOVERY

Excel Excel 97 Add-In. Excel 2010 PowerPivot. Excel Add-In Pivot Table Services Office Web Components

MS Designing and Optimizing Database Solutions with Microsoft SQL Server 2008

Implementing and Administering an Enterprise SharePoint Environment

Programming in C# with Microsoft Visual Studio 2010

Saskatoon Business College Corporate Training Centre

SharePoint Server 2010 Capacity Management: Software Boundaries and Limits

SAP Data Services 4.X. An Enterprise Information management Solution

Outline. MCSE: Data Platform. Course Content. Course 10776C: MCSA: Developing Microsoft SQL Server 2012 Databases 5 Days

Perl & NoSQL Focus on MongoDB. Jean-Marie Gouarné jmgdoc@cpan.org

SQL Server 2016 New Features!

João Diogo Almeida Premier Field Engineer Microsoft Corporation

Inmagic Content Server Workgroup Configuration Technical Guidelines

EXAM PRO:Design & Develop Windows Apps Using MS.NET Frmwk 4. Buy Full Product.

SSIS Training: Introduction to SQL Server Integration Services Duration: 3 days

Enterprise Content Management with Microsoft SharePoint

SharePoint 2010/2013 Course

SharePoint for Digital Asset Management

Master Data Services. SQL Server 2012 Books Online

How to Scale out SharePoint Server 2007 from a single server farm to a 3 server farm with Microsoft Network Load Balancing on the Web servers.

Category: Business Process and Integration Solution for Small Business and the Enterprise

OTM Performance OTM Users Conference Jim Mooney Vice President, Product Development August 11, 2015

SharePoint 2013 Best Practices

SharePoint 2010 Interview Questions-Architect

Developing Microsoft SharePoint Server 2013 Advanced Solutions MOC 20489

Grupo Lanka s Pivotal Development tools are integrated by the follow individual products:

How to move a SharePoint Server bit environment to a 64-bit environment on Windows Server 2008.

EMC Documentum Repository Services for Microsoft SharePoint

New Features in Oracle Application Express 4.1. Oracle Application Express Websheets. Oracle Database Cloud Service

Installation & User Guide

End the Microsoft Access Chaos - Your simplified path to Oracle Application Express

Microsoft SharePoint Server 2010

SSRS Reporting Using Report Builder 3.0. By Laura Rogers Senior SharePoint Consultant Rackspace Hosting

Working with Structured Data in Microsoft Office SharePoint Server 2007 (Part1): Configuring Single Sign On Service and Database

Microsoft Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

70-487: Developing Windows Azure and Web Services

Big Data Scenario mit Power BI vs. SAP HANA Gerhard Brückl

Your Data, Any Place, Any Time.

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

1703 Discovering SharePoint 2007 for Developers

Task Factory Product Overview

Inmagic Content Server v9 Standard Configuration Technical Guidelines

MOC 20461C: Querying Microsoft SQL Server. Course Overview

UNLOCKING XBRL CONTENT

Estimate Performance and Capacity Requirements for Workflow in SharePoint Server 2010

Querying Microsoft SQL Server

EFFECTIVE STORAGE OF XBRL DOCUMENTS

> Define the different phases of K2 development, including: understand, model, build, maintain and extend

LearnFromGuru Polish your knowledge

This module explains fundamental aspects of Microsoft Dynamics NAV Development Environment.

SQL Server Administrator Introduction - 3 Days Objectives

Building Scalable Applications Using Microsoft Technologies

Capacity Planning for Microsoft SharePoint Technologies

SQL SERVER BUSINESS INTELLIGENCE (BI) - INTRODUCTION

TIBCO Spotfire Metrics Modeler User s Guide. Software Release 6.0 November 2013

Course 10232: Designing and Developing Microsoft SharePoint Server 2010 Applications

SQL Server Integration Services Using Visual Studio 2005

Beginning C# 5.0. Databases. Vidya Vrat Agarwal. Second Edition

Inmagic Content Server Standard and Enterprise Configurations Technical Guidelines

Microsoft.Realtests v by.ERICA.50q

Course ID#: W 35 Hrs. Course Content

Transcription:

HIGH PERFORMANCE PROGRAMMING FOR SHAREPOINT DEVELOPERS DEV213 Eric Shupps, Microsoft MVP [SharePoint]

Ask The Experts Panel Text numbers 1. IT PRO 07891 100640 2. DEV 07790 108093 3. IW 07790 132855 4. BA 07989 359425

Who Am I? Founder and President, BinaryWave Microsoft MVP (Windows SharePoint Services) ISPA Regional Evangelist (South Central US) SharePoint Development Patterns & Practices Advisory Board Member Blog: www.sharepointcowboy.com

Topics Data Access Site Objects Cross-Site Objects External Objects Data Aggregation

Data Access Site Objects

SharePoint Lists List data is stored in single UserInfo table for each content database List constructs are virtualized and nonrelational (but you can create relationships programmatically) Lists are optimized for UI not for transactional data access Limited data types and data type instances

Data Retrieval Use an indexer to return a single list item from the collection

Data Retrieval Use an indexer to return a single list item from the collection

Data Retrieval Looping operations in the object model are very resource intensive

Data Retrieval Use CAML queries for targeted item selection Maintain SQL indexes for optimal query execution Manipulate item data using in-memory objects (SPListItemCollection, DataTable, <List>, XML)

Data Presentation 2000 item limit guideline applies only to built-in list views NOT to list contents Extremely large list structures (10,000+ items) require custom web parts to display content Data-bound objects provide best performance XML + XSLT outperforms list view objects Page results to reduce rendering times Beware caching of large data sets in ViewState

Web Services Provide front-end for OM code Return list objects as XML Manipulating XML in memory is more efficient than repeated calls OM Require extensive text manipulation Beware column name differences and content formatting

Web Services SharePoint Emoticons 0;# SP sticking it s tongue out (:-P) x0020 The_x0020_ Final_x0020_Frontier ows_ All Your Fields Are Belong to OWS -1001 Look! Booleans can be anything!

DEMO Using SharePoint Lists as Data Source

Data Access Cross-Site Objects

CAML No native cross-site functionality Combine with recursive methods to create consolidated dataset Recurse list of site and list objects (XML, Delimited, GetSubwebsForCurrentUser, etc.) Store list items in ADO.NET object (DataTable, DataSet, etc.)

PortalSiteMapProvider MOSS only Optimized for repeated calls to same set of objects Use the GetCachedListItemsByQuery() method for cacheable items that do not change often Executes CAML Query without having to walk the collection of SPWeb objects List items must still be iterated using inmemory methods

Search Provides non-contextual item data within defined scope(s) Requires parsing potentially large number of results (XML or ResultTable) Scopes and queries must be managed to return desired results no guarantee that default results will include the desired item(s) Access to contextual item data requires recursive object methods

Web Services Some methods provide multiple object support (Lists, Webs, etc.) Results are non-contextual; however, most metadata is available in native methods Resultant XML must be parsed and manipulated XML may be consolidated and XPATH used in place of recursion Extensive/repetitive calls increase overhead on WFE s

DEMO Retrieving SharePoint List Items from Multiple Site Collections using MOSS Search

Data Aggregation

Relational Data SharePoint lists are inherently nonrelational Structure in Lists table Data in UserInfo table Fixed number of field elements Relationships must be created programmatically using combination of list definitions and ADO.NET, LINQ, etc.

ADO.NET Define list structures and primary/foreign keys Remember data type limitations Retrieve list objects via OM or Web Services Create relational DataSet objects, merge into single DataTable Use stand-beside DB for caching and native SQL queries

LINQ Simplifies programming Allows for normalized query language similar to T-SQL Performance impact is dictated by type of operation Lists expose XML which can be directly queried

Recursive Site Queries Avoid direct database queries Create Timer Job or Windows Service to execute recursion code Schedule for off-peak hours Store results in separate database Query against custom DB Batch bulk update tasks using web services

DEMO Programming Relational List Objects

Best Practices Site Objects Use CAML to retrieve list objects Create custom web parts to display large datasets Cross-Site Objects PortalSiteMapProvider and Search provide optimal performance External Objects SP to SP Use web services Other Employ least overhead-intensive method Data Aggregation Relational list methods should be reserved for smaller datasets

SharePoint Trivia

Round 1:

Round 1: The recommended limit is 5 million items in a single list!

Round 2:

Round 2: The ows_ prefix is only required for direct XML methods!

Round 3:

Round 3: LINQ statements must be converted to Object Model method!

Round 4:

Round 4: The query returns a ResultTableCollection with 4 ResultTable objects!

Round 5:

Round 5: Field names and values must be parsed to modify formatting!

Resources Slides and sample code: www.sharepointcowboy.com, Presentations link Andrew Connell s Building High Performance MOSS Solutions http://www.andrewconnell.com/blog/articles/speaking.aspx#20080602a SharePoint 2007 Performance and Scalability White Paper http://blogs.msdn.com/sharepoint/archive/2008/06/17/belatedannouncement-sharepoint-server-2007-scalability-and-performancewhitepaper-now-available.aspx TechNet IIS Performance Tuning http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ Library/IIS/502ef631-3695-4616-b268-cbe7cf1351ce.mspx?mfr=true

Thank you for attending! Please be sure to fill out your session evaluation!