Office 365 SharePoint – Higher level observations

Previously I’ve discussed some of the technical observations I made while working with Office 365. I’ve also noticed some ‘higher-level’ features of the project, and some discussions we’ve had about other opportunities. Here are some the the things that might well need addressed… Continue reading “Office 365 SharePoint – Higher level observations”

Office 365 SharePoint – Higher level observations

Office 365 – Technical observations from a first project

Recently I’ve been working on an Office 365 based SharePoint solution. It’s a system to allow a company to create sites to collaborate with their customers, and I learnt some interesting things on the way. In part 1 I’ll deal with the technical side of things, and in part 2 I’ll look at more ‘project’ level observations. Continue reading “Office 365 – Technical observations from a first project”

Office 365 – Technical observations from a first project

Dealing with Large Lists Part 3 – The ContentIterator

In Part 1 we looked at the problem of the query throttle in SharePoint 2010, and in Part 2 we looked at some of the ways of getting around that. In this part, though, we’ll look at what I think is the best way – the ContentIterator control. Continue reading “Dealing with Large Lists Part 3 – The ContentIterator”

Dealing with Large Lists Part 3 – The ContentIterator

Dealing with Large Lists Part 2 – Coping with large queries

In Part 1 we looked at what throttling was, why queries could be throttled, the settings that control throttling, and some of the references to other useful information. In this post we’ll look at ways of trying to get your query to run anyway, depsite the throttle. “Writing Efficient Code In SharePoint Server” is a good introduction to the general principles. Continue reading “Dealing with Large Lists Part 2 – Coping with large queries”

Dealing with Large Lists Part 2 – Coping with large queries

Dealing with Large Lists Part 1 – What is throttling and how it causes difficulty

‘Large’ lists – lists with over a few thousand items – can cause problems when you’re developing for SharePoint, and the whole topic is kind of complicated. So what’s the problem?

Well, fundamentally the issue is inefficient queries being run against SharePoint lists. An inefficient query against a list with a small number of items isn’t a big deal, but with larger lists (over 5000 items) SQL server has to escalate from a row-level lock to a table-level lock. This can hold up other users while the table is locked.

So, what are the limits, what options are there with throttling, and what strategies are there for mitigating the effects of query throttling? Continue reading “Dealing with Large Lists Part 1 – What is throttling and how it causes difficulty”

Dealing with Large Lists Part 1 – What is throttling and how it causes difficulty

Working with the TaxonomyClientService: Part 4 – Populating Values with the Lists web service

So far I’ve discussed how to get information about getting the types of taxonomy field, working with those fields, and how to get term sets. What about setting values on list items?

It isn’t immediately obvious how to do that. For a start, we wouldn’t actually be using the TaxonomyClientService. To set values on items, you use the Lists web service, using the UpdateListItems() method. This accepts XML describing the field and values.

But what fields do we submit, and what values? After all, as mentioned in part 1, there are two fields – one for the displayed value, and a hidden ‘notes’ field that contains the actual data!

There was no documentation about how to set these values, and limited and contradictory information in blog posts, so I investigated…

Continue reading “Working with the TaxonomyClientService: Part 4 – Populating Values with the Lists web service”

Working with the TaxonomyClientService: Part 4 – Populating Values with the Lists web service

Working with the TaxonomyClientService: Part 3 – Caching

In Part 2 of this series I described how to retrieve a TermSet, and interpret the results. I suggested using code:

string clientTimestamps = string.Format("<timeStamp>{0}</timeStamp>", lastClientCacheTime );
string clientVersion = "<version>1</version>";
string termStoreIds = string.Format("<termStoreId>{0}</termStoreId>", termStoreId.ToString("D"));
string termSetIds = string.Format("<termSetId>{0}</termSetId>", termSetId.ToString("D"));
string serverTermSetTimestampXml;
string result = _wssTax.GetTermSets(termStoreIds, termSetIds, 1033, clientTimestamps, clientVersion, out serverTermSetTimestampXml);

Fine, but what are these properties we’re passing into GetTermSets()? Continue reading “Working with the TaxonomyClientService: Part 3 – Caching”

Working with the TaxonomyClientService: Part 3 – Caching

Reminders on customising the RichTextField control in Publishing

Right, so, again I’m looking at the problem of consistent formatting of client authored text in SharePoint. (Incredibly, it’s 4 years since I first looked at this).

Anyway, as a note to myself… Continue reading “Reminders on customising the RichTextField control in Publishing”

Reminders on customising the RichTextField control in Publishing