I thought I´d make a quick recap of the things I have seen regarding what sort of options that we have for working with data in SharePoint 2010.
As you can see from the picture above we have all sorts of new and old (but improved) ways of getting to and manipulating data in SharePoint 2010.
First of all, LINQ support now is a part of the platform (that I knew would be there but still nice to see). We will now have the ability to generate entities with SPMetal or maybe something else (custom written stuff of course) from our content types. We will have a new SPDataContext that works along with LINQ to query SharePoint and manipulate data. Strongly typed data of course which we all like and no more [“Title”] stuff. I have of course been using this for a while with 2007 but it is nice to have it built in too.
We still have the “old” OM model and CAML and sometimes we will still use that I think. Wondering about SPSiteDataQuery and LINQ cause I haven´t seen anything around that.
Lastly, and this seems to be a real killer I think, we now have RESTful APIs from the ADO.NET data services that can give us the ability to work with SharePoint using the REST specification.
I have seen some really nice looking demos using silverlight and REST and it looks and feels like this is the way to go forward, especially useful when working with large sets of data from SharePoint in silverlight we can use the REST services to get only a portion of that data using $skip=30
Lastly some things worth mentioning about the new list capabilities.
The Lookup column now supports cascade delete (treated as a unit if deleted) or restrict delete.
It now uses projection, like BDC, which makes it possible for us to get additional fields (as shown in picture below).
Column uniqueness is supported and constraint against duplicates in lists.
Large list support – users can only retrieve 5000 rows and super users can get 20000. All configurable (lists throttling) and developers can override this and get all the data in code.
Pagination – only bring back the rows that we want and not the whole set of items.
Summary: looks solid