Using a Separate Application Domain to Test for Implemented Interfaces

Sometimes you need to load an assembly for use or inspection.  The problem is that loading an assembly is permanent for the lifetime of an application domain.  Sometimes this is acceptable and sometimes it is not.   Mike Shughrue and I are working on something were it is definitely not preferable.  I have a folder full…


It’s the Little Things Part 1

As I get further and further into the Project Server Interface (PSI), I run up against gaps in my knowledge and some times the community’s knowledge, as it exists in searchable form online.  This little "gotcha’s" can sometimes mean hours of research and experimentation.  I thought I would start a new series entitled "It’s the…


Interface Type Param Arrays to Operate on Many Objects

Here is an example: 1: private void Dispose(params IDisposable[] disposableObjects) 2: { 3: foreach (IDisposable disposableObject in disposableObjects) 4: { 5: if (disposableObject != null) 6: { 7: disposableObject.Dispose(); 8: } 9: } 10: } I have a bunch of disposable objects that need to be cleaned up on finally.   In most cases I employ…


"Friends Don’t Let Friends Delete Their Cache or Cancel Queue Jobs"

I thought I would repost something Brian Smith wrote.  Believe you me when I say follow his advice:


Assert.IsTrue(ThrowsException(() => object.Method()));

While reading this post, I came across an interesting line of code: 1: Assert.IsTrue(ThrowsException<UpdateException>(() => rb.Update(b2))); 2:  3: ThrowsException<E> is: 4:  5: private static bool ThrowsException<E>(Action f) where E : Exception 6: { 7: try 8: { 9: f(); 10: } 11: catch (E) 12: { 13: return true; 14: } 15: catch 16: {…


Microsoft SQL Server Data Services (SSDS): First Contact

I have been reading about cloud computing quite a bit.  I found that Microsoft is doing something really interesting under the code name "Sitka" (there is now a public beta, so the code word is no longer internal). Sitka, or SSDS, is cloud entity storage that offers SLA features to include massive scale, availability, performance,…


PSI Calls Result in 401.2 2148074254 Entries in IIS Log

I implemented an integration service using the PSI for lifting data from a customer’s system into Project Server.  The service ran like a champ in my development environment but upon deploying it at the customer site, I was flummoxed for a while by 401 Unauthorized errors when attempting to make PSI calls. I checked IE…



I am a developer working in Microsoft Consulting Services’ Enteprise Project Management Global Practice. I have been working in the project management field since 1995, first as a developer followed by stints as a development manager, product manager, software architect, CIO, CTO, and president of a small company. Now I am back doing what I…