Connecting to FIM

Mar 22, 2011 at 8:16 AM

There are options to consider when connecting to FIM.

For the initial code I went with the CodePlex client because it gave me the most bang for my buck but there are pros/cons for each option that deserve mention.

Option A - Use the FIM client on CodePlex

PRO: There are a lot of people using this client already, so we get some benefit from people identifying and fixing bugs in that code

PRO: The queries are limited only by the FIM web service

CON: There is a lot of code in there, and troubleshooting it isn't for the faint of heart or average IT pro

Option B - Use the FIM PowerShell Cmdlet

PRO: Totally supported by Microsoft, makes use of their internal FIM client but exposed via the cmdlet.

PRO: Repro of any problem is as simple as running the query in a PowerShell window

PRO: Reference chasing is free

CON: The Export-FIMConfig cmdlet does not support pipelining today, so the query does not return any results to the caller until all results are returned.  This breaks paging through reports, and makes the UI appear hung.

CON: No ability to optimize queries by doing things like reducing the attributes returned

Option C - Create a new FIM client using the generated WCF proxy

PRO: less code than the existing client because we can limit functionality to paged reads and schema discovery

CON: the code is not written

CON: there are a lot less eyes on a new FIM client

PRO: the new code could be placed in the same assembly as the DPE, making deployment a little easier

PRO: I might learn a thing or two along the way


Win or lose this will be sorted out in a about a month, in time for a demo at TEC in Vegas!  Please feel free to weigh in.