Quantcast
Channel: Second Life of a Hungarian SharePoint Geek
Viewing all articles
Browse latest Browse all 206

First steps with the Project 2013 SDK and using the new CSOM of Project Server 2013

$
0
0

As you probably know, client-side object model (CSOM) is a new feature of Project Server 2013 for developers. It is just like the Managed Client OM (while JSOM is equivalent to ECMAScript / JavaScript OM) for SharePoint.

Since I currently have some developer tasks related to PS and heard a lot about this new API, I decided to try it out. The very first step was to create a trial subscription of Project Pro for Office 365. Next, I attempted to download the Project 2013 SDK, but clicking the Continue button (after signing in) caused a 404 – Page not found error. Jim Corbin from Microsoft helped me with a direct link to download the file.

Starting the installer on my Windows 8 developer VM, it first downloaded the Document Explorer as a pre-requisite, and as a pre-requisite of the pre-requisite the ‘.NET Framework 3.5 (includes .NET 2.0 and 3.0)’ Windows feature was activated. There are some tricks around installing the SDK on W8 as well.

To get the sample solutions, you have to start Samples.exe from the C:\Program Files (x86)\Microsoft SDKs\Project 2013\Samples folder, and extract the files to a location like C:\projects\PS2013Samples. Extracting the files to the same Samples folder might not be a good idea, as the extractor has issues due to the protection of the Program Files directory, and Visual Studio does not like opening solutions from the Program Files folder either.

So far, so good. Let’s see finally some action with code!

I opened one of the sample solutions (ReadProjectList) and fixed the broken assembly reference to Microsoft.ProjectServer.Client by copying the corresponding dll from the REDIST folder of the SDK to a Library folder in my projects folder and updating the reference in the project. The project build succeeded, however, I received the following error when starting the application:

FileLoadException
Could not load file or assembly ‘Microsoft.ProjectServer.Client, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c’ or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A)
   

I tried to analyze the reasons using the Fusion log, but what I found there did not helped me to solve the issue, so I simply skip this part now.

My next try was to install Microsoft.ProjectServer.Client to the Global Assembly Cache, but it failed with the following error message:

Failure adding assembly to the cache: Strong name signature could not be verified.  Was the assembly built delay-signed?

I’ve checked the digital signature of the assembly and found this information there:

image

The certificate was displayed like this (note the Valid to date 1/4/2014 as well!):

image

I found the names Microsoft Testing Root Certificate Authority 2010 and MSIT Test CodeSign CA 3 a bit strange for a library aimed to be used in production.

image

I’ve installed the certificate in the Trusted Root Certification Authority of both the Current User and Local Computer on my VM, that solved the issue of the digital signature of the assembly:

image

However, I still was not able to install the assembly to the GAC, and the issue running the application was not solved.

I had to register the Microsoft.ProjectServer.Client assembly for verification skipping (seems to be the key step in problem resolution):

sn -Vr Microsoft.ProjectServer.Client.dll

then I was able to add the assembly into the GAC (probably optional step):

gacutil -if Microsoft.ProjectServer.Client.dll

It solved the issue of starting the application in Visual Studio. Although this workaround helped me to concentrate my efforts to my original goal (playing with CSOM of PS 2013), I really would not like to apply the same fix in a production environment.



Viewing all articles
Browse latest Browse all 206

Trending Articles