SharePoint Dragons

Nikander & Margriet on SharePoint

Tag Archives: wiki

Best practices regarding row limits in external lists

When working with external lists, a functionality of Business Connectivity Services (BCS), you’ve got to keep an eye on row limits.

Keep in mind two important limits:

  1. The default Max is 2,000 items
  2. The absolute Max is 25,000 items

Please see this link for more information: http://msdn.microsoft.com/en-us/library/hh144965.aspx

You should always define filters (it can be limit/comparison/wildcard filter) so that you can narrow your search and overcome others restrictions regarding a count of rows in the database. Especially when working with high volume of items, there might be cases in which you may have millions of items to pick, the bcs picker will show up to 200 items (this is a SharePoint restriction).

Please take a look at these articles about filter creation:

Also you may implement paging. Please take a look at these articles:

This info was taken from forum discussion: http://social.technet.microsoft.com/Forums/en-US/sharepoint2010general/thread/9dba356c-65f3-49be-a452-6934baee7216

For ongoing work on this topic, check out the latest version of Wiki page http://social.technet.microsoft.com/wiki/contents/articles/9628.sharepoint-2010-best-practice-row-limits-in-external-lists.aspx

List throttling settings

Why is it that hordes of SharePoint 2010 developers try to lift the list throttling settings or think that it’s a magical button that allows you to optimize the SharePoint farm for whatever amounts you may need (e.g. I want to retrieve 100.000 items, luckily, if I raise the list throttling settings to 100.000 it won’t affect server performance at all!). There’s gotta be some best practices regarding this area, no? We propose the following Wiki page as the starting point: http://social.technet.microsoft.com/wiki/contents/articles/8723.sharepoint-2010-best-practices-list-throttling.aspx

SharePoint 2010 Best Practices: Folders not necessarily considered evil

SharePoint 2010: WCF best practice

If you’re creating a WCF service you basically have two options:
– Create a WCF service in a SharePoint context.
– Create a separate WCF service.

So, when it comes to choosing one of the two scenarios, which one is best practice, and why? Check out our Wiki page at http://social.technet.microsoft.com/wiki/contents/articles/8665.sharepoint-2010-best-practices-where-to-publish-a-wcf-service.aspx

SharePoint 2010 crawl database best practice

Just created a Wiki page containing best practices regarding the size of the SharePoint crawl database: http://social.technet.microsoft.com/wiki/contents/articles/8217.sharepoint-2010-crawl-database-is-too-large.aspx

Which SharePoint API to use?

We’d love to hear your thoughts on which SharePoint API you should use and when: http://social.technet.microsoft.com/wiki/contents/articles/8181.sharepoint-2010-best-practice-which-api-to-use.aspx

Best practice regarding copying of permissions of SharePoint site collections

What is the SharePoint 2010 best practice: Asset or a Picture library

If you (or your customers) were wondering whether you should use an asset or a picture library, check out our Wiki page at:

http://social.technet.microsoft.com/wiki/contents/articles/8110.sharepoint-2010-best-practices-asset-vs-picture-library.aspx

Determine the current user in a SPS 2010 workflow

What to do when you want to determine the current user in a workflow? It’s possible that the workflow runs inside the w3wp.exe worker process, in which case the current user makes sense. But it’s also possible that a workflow runs inside the owstimer.exe process, at a later time. In these cases, the current user doesn’t make sense. Instead, use the workflow originator or initiator.

To get the e-mail adress of the originator user:

workflowProperties.OriginatorUser.Email

Or

workflowProperties.OriginatorEmail

To get the display name of the originator user:

workflowProperties.Originator

Or

workflowProperties.OriginatorUser.Name

To get the login name (format [domain name]\[user name]:

workflowProperties.OriginatorUser.LoginName

These techniques can be used in workflows that are created programmatically. In a SPD (no-code) workflow, you can also retrieve the workflow initiator’s e-mail address: use the User Profile web service as a data form web part in the .aspx page of the workflow to get the e-mail address whenever the initiator started the workflow.

For ongoing work regarding workflow current user retrieval best practices, see: http://social.technet.microsoft.com/wiki/contents/articles/8044.sps-2010-best-practices-retrieving-the-current-user-in-a-workflow.aspx Thanks to http://social.msdn.microsoft.com/Forums/en-US/sharepointworkflow/thread/a5c5094c-5578-4e3c-83f2-62308f9f946f/ for the info.

What to do with historical data in custom lists?

  • If the historical data doesn’t take up much space, leave it in the original list.
  • Turn on versioning if you want to track the history of individual list items.
  • If the history involves different records, leave them in the list and sort the view on the date of the history with the most recent at the top.

Finally, the most common option: eventually archive the items to a different site collection in a different content database.

Follow the ongoing Wiki effort to discuss the best practices regarding this topic at: http://social.technet.microsoft.com/wiki/contents/articles/7999.sharepoint-2010-strategies-for-handling-historical-data-in-custom-lists.aspx