Friday, June 29, 2007 6:48 PM bart

LINQ to SharePoint alpha v0.2 available

image Two months after the appearance of the 0.1.2 alpha release of LINQ to SharePoint, I'm proud to announce the availability of the 0.2 alpha release. If you can't wait any longer, here's the direct link to the release page.

Q: So, what's new in this release?
A: A bunch!

No seriously, v0.2 is a major milestone on behalf of the query parser. Although the to-do list is growing day after day and the spec is being extended accordinly, 0.2 provides a pretty complete querying experience with support for lots of query constructs, getting near to the (albeit limited) expressiveness of CAML.

As an example, the CamlMethods class was introduced to host the DateRangesOverlap function that couldn't be represented in regular C# 3.0-ish or VB 9.0-ish expressions.

For what the field types are concerned, lots of work has gone in the design and implementation of Lookup(Multi) field support, which is kind of a masked and burried PK-FK relationship. Although we're not anywhere near to full join capability, one can traverse a Lookup field link, even in the query:

var src = new SharePointDataSource<Customers>(uri);
var res = from c in customers where c.Profile.Age >= 24 select c;

If you know a bit of CAML it might be a good idea to do a little brainstorming on how such a nested query could be realised. There's quite some magic in it to make it work. If you think you know the answer, turn on the logging support on SharePointDataSource and you'll see the CAML query popping up:

var src = new SharePointDataSource<Customers>(uri);
src.Log = Console.Out;
var res = from c in customers where c.Profile.Age >= 24 select c;

But what about debug-time inspection of queries? As a last-minute addition (with lots of work left to be done in a broader set of IDE supporting development cycles) a debugger visualizer was added:


Pretty cool to my humble opinion :-). I have to disappoint you a bit since the Execute button isn't functional yet, but this is where we're going...

I'm a little lazy tonight, so for even more 0.2 features take a look at my previous blog post on the topic. Notice there are a few known issues (a complete list will appear in the work item list for the 0.2 release over the next couple of days) that have to do with some restrictions in CAML, e.g. when working with DateTime fields in query predicates. Don't worry however: CAML experts are investigating these in the meantime and hopefully fixes will become available in the 0.3 timeframe.

As we're finalizing the planning for 0.3, all feedback is still welcome. A few highlights for 0.3 include:

  • First pieces of entity update support;
  • Additional field types support and richer entity model;
  • Better IDE support for various tasks;
  • More test coverage and bug fixes;
  • Refactoring and code maintenance;
  • ...

The goal is to release 0.3 in August as a stepping stone to get in a beta phase this fall. Depending on the VS 2008 'Orcas' release schedule, adjustments to the schedule might occur to have a better technology alignment.

Stay tuned for more news; I intend to create a few How-To videos the next couple of weeks, covering various topics, usage scenarios and bit of "insights and internals". Furthermore, an update to the query parser and infrastructure spec will be uploaded to Source Control too.

Have fun! | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks

Filed under: ,


# Two important LINQ implementations: LINQ to XSD and LINQ to SharePoint

Friday, July 13, 2007 6:50 AM by Ken Brubaker

There are two very important LINQ implementations to keep your eye on as we near the release of Visual...