Fabian Williams SharePoint Blog

Solving problems with SharePoint day and night

Error/Resolution: Could not load type ‘System.Data.Services.Providers.IDataServiceUpdateProvider’ from…

Synopsis: 

Cryptic message huh, but basically i got a tweet from @dfollette regarding using the Client Site Object Model (CSOM) in SharePoint to gain access to List Data and other LOB System and he also had a reference in a Web Cast to do the same thing using the REST API.  Even as tired as i was at 1:16 am in the morning it would just eat at me in bed, so i decided to review it before I tuck in.  However, when I tried to review the REST API by using a SharePoint Web Service I got an error…

The tweet was:

image

The Error was:

image

 

Resolution

So after a little research I found this blog entry “REST and SharePoint 2010 Quick Start Guide: Table of Contents” on Scott Currier Blog; and it indicated that you need to install install the ADO.NET Data Services Update for .NET 3.5 SP1 Depending on what flavor OS you are running you may need one over the other, the one i need was here because I am running WIN 2 K8 R2 http://www.microsoft.com/downloads/details.aspx?familyid=79d7f6f8-d6e9-4b8c-8640-17f89452148e&displaylang=en

Once you install it you will be prompted to restart.

image 

 

Trust but Verify

So after my reboot, let us now go to my SharePoint Site Collection and query the REST API again.

What i wanted to test was a little nugget I learned from the web cast…

image

You know come to think of it, I should have done a snapshot before running that update, but oh well, with finger crossed…

image

and it worked, lets drill down now

image

Looking at the XML you see the actual data..

image

Advertisements

July 6, 2010 Posted by | SharePoint 2010, SharePoint 2010 RTM, SharePoint Bug, SharePoint Development, SharePoint Error/Resolution, Strange Stuff | Leave a comment

How To: Create a Farm Based and Sandbox Based Solution Web Part using LINQ to SharePoint via SPMetal Utility

Synopsis

In this Blog and in all the blogs i post, I try to re-use my work/efforts; for one, it ensures that the information is grounded, it certainly gives me practice, and more importantly, it demonstrates how SharePoint is modular, and how each part of the Wheel Compliments each other.  So.. </soapbox> over, lets begin… The idea here is to demonstrate how we can affect changes to SharePoint Lists and Libraries; for instance, we will use LINQ to SharePoint to talk to Lists in a Site, and use Sandbox Solutions to "work in that list in a protected area” based on the Rules of the Sandbox.  Now; the intrusive part is the how we gain access to the SharePoint List, in this example (Part 1) I am still doing a Sandbox Solution which means it is limited to the Site Collection, but I still have code that may be better protected in a “Full Trust Proxy” which will be (Part 2).

Get ready on how you can do:

  1. Create a Sand Box Solution with Visual Studio 2010 Beta 2 on SharePoint 2010 Beta
  2. Use LINQ to SharePoint via the SPMetal Utility to create and add a Class to our Solution to act as the Wrapper to our Content Database
  3. Create a Web Part to display information from SharePoint Lists
  4. Use some Code to do some actions on that List

Recognition of Effort to my friends in the SharePoint Community

So… I want to take time out to recognize some of my buddies in the SharePoint Community that helped with a really weird issue I was having trying to get even a “Hello World” textbox control working in my Sandbox Solution.  As it turned out and I do have the troubleshooting steps outlined below, my issue was related to having SharePoint 2010 on a Domain Controller, and the problem was solved [albeit after 12 hours of work and 4 – 6 hours troubleshooting] via a PowerShell Script found on Jie Li’s and Jeremy Thake’s site.  Using Twitter (yes I know, I tweet too much) I solicited the help of my co-worker Bart Tubalinal @bart_tubalinal and Jeremy Thake @jthake to see if they saw something glaring wrong in my code; they looked, they found nothing… then i hear the words I didn’t want to hear “… have you tried looking in the ULS log…, this may be your environment…” this would have not shocked me as much if I didn’t have to deliver at Virginia Beach SharePoint Saturday this coming Saturday (1/9/2009), and didnt want to risk doing an re-install my OS. In the end Paul Swider @pswider asked if i ran the script found on Jie Li’s site; as soon as i placed it in a file and ran it with PowerShell, BOOM! I was good to go!  Mark Miller @EUSP of End User SharePoint pointed out that he may emphasize the community involvement in a Keynote he is prepared to give, I encourage him to do so.

Let us Begin…

 

Part 1: This is Part 1
Part 2: Doing everything but using a Full-Trust Proxy for the most Intrusive Part of the job!

So the first thing we need to do is crack open our spiffy Visual Studio 2010 and Create a new SharePoint Empty Project

clip_image001

  1. Fire up Visual Studio
  2. Select SharePoint 2010
  3. Select Empty SharePoint Project (as you can see I named mine TouchPeopleinSharePoint)

clip_image002

Next you will be prompted to choose if this is a Sandboxed Solution or a Farm Solution, I selected “the Default” which is SandBoxed Solution… so what is Microsoft trying to tell us here folks?

clip_image003

Once you have done that, click Finish to close out the dialog box.  Next just to be sure, you can never be too careful; since I am building against a x64 bit system, I wanted to make sure that my Project Properties Build Targets were appropriately set.

clip_image004

Once I have completed that process, next I am going to add a new Web Part. NB, you are not permitted to do Visual Web Parts in SandBoxed Solution because that would mean that you would need to deploy it on the WFE; which under SandBoxed Solutions, we don’t want to, so… we wanna select a regular web part.

clip_image005

See below…

clip_image006

So once the Web Part is added, we have the following cs file created, clearly you can see we have methods that are over-ridden which we will employ in our solution.

clip_image007

Before we get there however, I need to do some prep work..

  • I need to Add my SPMetal Class
  • I need to make a reference to Microsoft.SharePoint.Linq

This Class that I am adding is created by SPMetal Utility and it basically provides me Entity Classes and a Context Object to manipulate SharePoint Lists via LINQ to SharePoint. I use this because all that plumbing is already done for me and hey, work smarter not harder…

clip_image008

clip_image009

clip_image010

NB. The Red squigglies are there in this CharlieSiteLists.cs file because I dont at this time have a Reference Set for Microsoft.SharePoint.Linq which i will do below…

clip_image011

So now for the real work… finally!

  1. So first I create a List Box object, I will add my result set to that collection (line 16)
  2. I make a reference to the CharlieSiteList.cs (SPMetal Utility Created File) Data Context Object so I can use it as a Wrapper to the Content Database (line 25)
  3. I iterate though a list and return the First Name and Last Name via the Add Method of the ListBox Object (line 26 – 33)

clip_image012

That is it! Easy huh… now we just Deploy our Solution…

clip_image013

Next I go to my site under “Site Pages” and create a Web Part Page…but before I do that, lets just make sure that our Sandboxed Solution is there in the Gallery. We find this by clicking on Site Settings and under Galleries, you will see “Solution”.. go ahead and click that bad bwoy..

clip_image014

All being well you should see your solution as I see mine…

clip_image015

Now, we edit that page we would have created to hold our Web Part or you can just put it in a page of your choosing. 

clip_image016

So, here is where the SharePoint community came alive for me last night.. and although SharePoint threw no Error in the Event Viewer, nor did the Actions yielded any “gotchas” that I did anything wrong, when I added the Web Part to a zone..

When I add the TouchPeopleNOLookupList Web Part to the Left Column Zone as indicated below it goes though the motion but ADDs Nothing but in the ShowMyProfile Web Part it works… that web part is a Farm Level Solution though… same code.. 

clip_image017

Below Same Code… in the Create ChildControls in a NON SandBoxed Solution

clip_image018

U can see in the Properties Window that this one is same code but not SandBox Solution… and it yields results as above…

clip_image019

So as part of my debugging I downloaded this ULS viewer from CodePlex at http://ulsviewer.codeplex.com/ and I saw that, Indeed, I have a few errors going..

image

Paul Swider pointed me to Jie Li’s site where i saw below,

image

I placed that script in a file and ran it with PowerShell and I got my Web Part to work as indicated below. 

image

We are in business folks…

image

Stay tuned for Part 2 where I will do this all with a Full Trust Proxy i.e. move the intrusive Class that actually touches the Content Database to the GAC and use a Proxy to call it.

 

Have fun! 

January 4, 2010 Posted by | SharePoint Administration, SharePoint Bug, SharePoint Development, SharePoint Error/Resolution, SharePoint How-To, Strange Stuff, Visual Studio 2010 | , , , | 3 Comments

Fix: Service Pack 2 expiration date issue available for download

Service Pack 2 Update.

The public update for the Service Pack 2 expiration date issue is now available for download. 

The update can be applied before or after Service Pack 2 installation.  If the update is applied prior to installing Service Pack 2 it will prevent the expiration date from being improperly activated during installation of Service Pack 2, if it is applied after Service Pack 2 it will remove the expiration date incorrectly set during installation of Service Pack 2.

The update is applicable to all of the products that this issue affected (see the list in the KB linked below).

Installation instructions and download links for x86 and x64 are available in this KB: http://support.microsoft.com/kb/971620

The direct download link for x86 is: http://download.microsoft.com/download/2/F/5/2F51AB71-1325-49D2-9CB9-18DEC4780E99/office2007-kb971620-fullfile-x86-glb.exe

And for x64: http://download.microsoft.com/download/5/B/B/5BBD34A9-C528-42B0-8A5F-9A8997B25C32/office2007-kb971620-fullfile-x64-glb.exe

 

FAQ

Q: How can I tell if the update has worked?
A: The License Type text on the Convert License Type page in Central Administration no longer contains the word “trial”.

Q: I applied the update and now I can’t enter anything in the Convert License Type page in Central Administration, is this right?
A: This is expected behavior if your license type is “Office SharePoint Server with Enterprise Client Access License”. 

Original Source:  http://blogs.msdn.com/sharepoint/archive/2009/06/25/service-pack-2-update.aspx

August 15, 2009 Posted by | SharePoint Bug, SharePoint Error/Resolution, SharePoint How-To | Leave a comment

How To: Work around for opening Documents from MOSS 2007 Libraries in Office 2010

You may experience issues opening documents direclty from libraries using Office 2010, here is a work around to the error below:

OpeningDocDirectlyFromLibErrorOffice2010

Solution: 

set up a fake proxy (127.0.0.1) in Internet Explorer with an exception for *.*.  Still don’t know why this works, but it has allowed me to actually check out, edit, and upload/check-in documents from our libraries.

Credit:

http://social.technet.microsoft.com/Forums/en-US/office2010general/thread/700bdff2-229e-4e90-8aae-d0c90c54a3d1

August 12, 2009 Posted by | SharePoint Bug, SharePoint How-To | | Leave a comment