The Exchange 2010 SP2 Web Services SDK was released in October but Exchange 2010 SP2 was only recently made available for download earlier this month. With the update to the SDK, there's the common section detailing What's New in the SDK. While this information is very helpful, I felt the need to aggregate and summarize what's there so that I could get a better understanding of the changes.
For the benefit of the rest of the world, I've shared my notes below...
New Exchange2010_SP2 RequestServerVersion value. Obviously, there's a new schema version value which must be requested to take advantage of the changes outlined below.
ConvertId, GetUserOofSettings, SetUserOofSettings, and GetUserAvailability now support impersonation. GetUserOofSettings and SetUserOofSettings support for impersonation might have been added in a previous rollup update to Exchange 2010 SP1 but ConvertId and GetUserAvailability support for impersonation is new to SP2.
GetPasswordExpirationDate operation added. Pass an email address and get back a date indicating when the user's current password will expire.
FindItem and GetItem get a new SOAP header, DateTimePrecision. This allows you to request that you would like the millisecond values returned in DateTime property values. By default, EWS does not return milliseconds with DateTime values - it always returns zeroed out milliseconds. Unless you really need millisecond precision in some use case, I wouldn't recommend using this level of precision.
StoreEntryId element added to Item schema. This new schema property maps to PidTagStoreEntryId and could be used for interoperability with MAPI code. It could also be used to determine which items came from the same mailbox.
New elements added to the contacts schema:
IsArchive added to AlternateIdType. Enables support for ConvertId with archive mailboxes.
NoForward added to DeliverMeetingRequestsType. This means that meeting items will NOT be forwarded to the delegate.
ErrorAttachmentNestLevelLimitExceeded error code added. Error thrown if an item has attachments nested one past the allowed max for EWS (currently this limit is 10).
ContactDataShape added to ResolveNames. Same type as the shapes used in FindItem, GetItem, etc. - AllProperties, Default, IdOnly. Only affects the ContactData returned so if ReturnFullContactData is set to false then this element does nothing. IdOnly returns only the mailbox data and DirectoryId.
IsAssociated added to the UploadItemType. Enables uploading streams to the associated contents of a folder.
I recently found a bug in the December 2011 Release of EWSEditor and just checked in and released an updated build to EWSEditor to fix it. Here are my bug notes from the check in:
“…Bug in ValidationCallbackHelper.CertificateValidationCallBack caused certificate validation to fail always - unless the override validation setting was turned on. Instead, ValidationCallbackHelper.CertificateValidationCallBack now looks for SSL policy errors and returns true if there are none. If there are errors and override is not set then it will return false and output the error code in the debug log…”
You’ll notice that the build’s revision number is actually lower than the previous December 2011 release – please ignore that, 1.7.1.20840 is the latest release. This should be fixed going forward, sorry for the confusion.
Download the December 2011 Update of EWSEditor HERE.
Over a year has gone by since a public update to EWSEditor on the MSDN Code Gallery but it’s not been forgotten! The availability and popularity of Office 365 and Exchange Online make Exchange Web Services (and thus EWSEditor) even more relevant today as EWS becomes the primary mailbox access API for Exchange. Many of the folks I talk to these days are in the middle of redesigning their products to use EWS instead of MAPI.
When I first created EWSEditor, I was working on the support side of the business and thus my goal was to create a tool to help debug Exchange or fix client code. Now that I work on the consulting side of the business and talk more about best practices and architecture, I’m feeling the need to rework a lot of this code to “practice what I preach”. While this release doesn’t contain a huge amount of best practices refactoring, I plan to address this in the near future with additional updates to EWSEditor. This release is about getting the codebase healthier and to put some things in place to make it easier to add features in the future.
The biggest change of course is that EWSEditor has moved to CodePlex. Here is a summary of the other major changes and new features in the December 2011 update to EWSEditor….