Powershell is great for system admins wanting to automate things, but personally I think it absolutely sucks for .NET developers when Powershell is apparently the only "API" available for programming against a particular system. For a long time I've wanted to create some Exchange related utilities - server reporting tools, monitoring tools, etc, but it seems that for us .NET developers this is not possible without shelling out to Powershell cmdlets. This baffles me as the Powershell cmdlets are using Exchange .NET classes internally so why on earth can't we just use those same Exchange .NET classes? I know technically we can add a reference to them, but we're not allowed to redistribute them and there's no documentation on how to use them.
With Exchange 2013 things looked a little more promising as the classes and namespaces are at least documented here: http://msdn.microsoft.com/en-us/library/exchange/dn186243(v=exchg.150).aspx but there's no examples of how to actually use them or any indication of where to start.
So am I just missing something or is there still no way for a .NET developer to program against Exchange server (and I do mean the server side, I'm not interested in sending emails or adding calendar appointments etc which is what the EWS .NET Managed API seems to be aimed at) without using Powershell cmdlets?
My website (free apps I've written for IT Pro's) : www.cjwdev.co.uk My blog: cjwdev.wordpress.com