SharePoint 2010 CAML List Joins

SharePoint 2010, you can finally do List Joins in CAML.  This would be a great boon to the type of views that you can create in SharePoint and in code.

http://msdn.microsoft.com/en-us/library/ee539975(office.14).aspx

There is a catch – it looks like the field that you can use for joins must be a Lookup type field to the foreign list.

Join type can be LEFT or INNER.

Given that LINQ to SharePoint sits on top of CAML – all the LINQ join statements will translate properly as well.

 

 

When I first started developing with SharePoint, I really hated CAML. 

In time, I’ve learnt to live with CAML, the lack of good tools drives me crazy.  But it is a necessary evil when you work in SharePoint.

SharePoint 2010 beta TaxonomyPicker in EventLog

Load control template file /_controltemplates/TaxonomyPicker.ascx failed: Could not load type 'Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker' from assembly 'Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'.

 

The TaxonomyPicker user control shipped in the beta version of SharePoint 2010 is invalid.  Open it up and change fix the Type,Assembly reference to a comma. 
(Note) You’ll need administrator rights to save to this folder.

 

<%@ Control className="TaxonomyPickerControl" Language="C#" Inherits="Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker&#44;Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

Change the '&#44;' to comma (,)

SharePoint: referencing SCRIPT done right

Our scenario is pretty simple – we have a package that includes some JavaScript files.  We had them deployed to /Style Library/ similar to our CSS resources.

We then refer to them in our page layouts and master page via

<script src=”/Style Library/project/myscript.js” />

It works fine on dev.

Problems!

This makes no assumption about the web application or site collections of the destination server.  When the site was exported and imported into various different site collection configurations, things start to go silly with 404 script file not found.

Site collection: http://mysharepoint.com/sites/mysite/
The JavaScript then is at: http://mysharepoint.com/sites/mysite/Style Library/project/myscript.js
But the reference is still looking for http://mysharepoint.com/Style Library/project/myscript.js
Oops – 404 error.

Fix!

The solution comes in a two steps:

  1. Deploy to _layouts/ instead, so the script resource is at
    http://mysharepoint.com/sites/mysite/_layouts/project/myscript.js
  2. Use the SharePoint control ScriptLink
    <SharePointWebControls:ScriptLink Name=”/project/myscript.js” Localizable=”false” runat=”Server” />
  3. The localizable = false is important – otherwise SharePoint will look for
    http://mysharepoint.com/sites/mysite/_layouts/~language/project/myscript.js

SharePoint 2010 vs. 2007 comparison chart (ongoing effort)

 

This would be an on-going effort as I gather more details.  But at the moment I’m publishing what I have.

Different capabilities

 

2007
WSS3

2007
MOSS

2010
SP Foundation

2010
SP Standard

2010
SP Enterprise

Sites

         

Office Web Apps

     

X

X

User Experience

...

...

X
(ribbon)

X

X

Line of Business

 

X
(read-only)

X

X

X

Mobile Connectivity

...

...

X

(mobile dev enhancement)

X

X

Enterprise Management

...

...

(some reports)

X

(dev dashboards, monitors and self-checks)

X

(web analytics)

X

Tagging

   

X

X

X

Audience Targetting

 

...

X

X

X

           

Communities

         

Enterprise Social Network

 

...

 

X

X

Find People

 

...

...

X

X

My Site

 

...

 

X

X

Presence

 

X

...

X

X

Ask me...

     

X

X

Note board, recent activity

     

X

X

Enterprise Taxonomy

     

X

X

Community of interest / Tag Profile

     

X

X

Participation and Social feedback

     

X

X

Tag / Tag Cloud

     

X

X

Ratings

     

X

X

Navigation

     

X

X

Social Bookmarks

...
(add favourite)

...

...

X

X

           

Content

         

Compliance

     

X

X

Flexible Records Management

     

X

X

Shared Content Types

     

X

(enterprise content types)

X

Managed Metadata service

     

X

(indexed filtering)

X

Rich Media Content

     

X

X

Document Sets

     

X

X

Word Automation Service

     

X

X

Support for Accessibility Standards

     

X

X

Improved Alerts

 

...

X

X

X

Content Organizer

     

X

X

Document ID Service

     

X

X

Web Content improvements

   

X

X

X

           

Search

         

People Search

 

X

...

X

X

Windows Federated Search

   

X

X

X

Refinement

  (3rd party faceted-search)

X

X

X

Social behaviour improves relevance

     

X

X

Thumbnails, previews, and view in browser

     

X

X

Advanced content processing with strong linguistics

     

X

X

           

Insights

         

Business Connectivity Services

   

X

X

PerformancePoint Services

  X  

X

X

Excel Services

  X  

X

X

           
           
           
           

Composites

         

Client Object Model

   

X

X

X

List Improvements

   

X

X

X

Query Enhancements

   

X

X

X

Sandboxed Solutions

   

X

X

X

Silverlight Integration

   

X

X

X

Windows PowerShell

   

X

X

X

Workflow Improvements

...

...

X

X

X

InfoPath Form Services

  X  

X

X

Access Services

     

X

X

Site Templates

...

...

X

X

X

Synch Framework

   

X

X

X

 

Still to do:

1. add legend
2. add references / sources
3. link to specific details for some points
Let me know what you guys think:

WindowsCE – deploying to the device

A very quick blog on some pointers when deploying your .NET Compact Framework application to a device.

Assuming that you’ve got your windows mobile application built.  And it runs in the virtual emulator shipped with VS.NET.  What’s next?

  1. Connect your device (PDA, hand-held, smart phone…)
  2. If you can not connect, you will need either Active Sync, or Windows Mobile Device center
    Grab it here: http://www.microsoft.com/downloads/details.aspx?FamilyId=4F68EB56-7825-43B2-AC89-2030ED98ED95&displaylang=en
  3. Once you can connect – check in VS.NET to see that VS.NET can connect to the device.  You may be prompted on the device about several installation and whether to trust a few files.
  4. Verify and accept them.  Then you should be able to deploy and debug the application on your WindowsCE

 

Next step – how do I add a short cut link to my application?

VS.NET will typically deploy the application to \Program Files\<Project Name>\<Assembly Executable Name>

You can change these settings in the application project properties.

To add a shortcut:

  1. You can’t create short cut within Windows CE. 
  2. Create a plain text file called <My App>.lnk
  3. Open the text file with notepad
  4. the format is <length>#<path to exe as well as arguments>
    e.g.
    28#”\Program Files\App\App.exe”
  5. 35#”\Program Files\App\App.exe” “mydb”
  6. save the text file to \Windows\Startup\Programs