I just notice that talking to Office365 Exchange Web Services at https://outlook.office365.com/ews/exchange.asmx I get this in my SOAP response header:
<Envelope>
<Header>
<ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="1049" MinorBuildNumber="23" Version="V2_22"/>
</Header>
This means that the Version 'schema version' property (http://msdn.microsoft.com/en-us/library/exchangewebservices.serverversioninfo.version%28v=exchg.150%29.aspx) now breaks the pattern of versions that we had earlier: Exchange2007, Exchange2007_SP1, Exchange2010, Exchange2010_SP1, Exchange2010_SP2, Exchange2013
In the schema files I found through Google (searching for <xs:simpleType name="ExchangeVersionType">) I could not find anything later than <xs:enumeration value="Exchange2013"/> (e.g. at http://msdn.microsoft.com/en-us/library/ee237685%28v=exchg.80%29.aspx)
If I do a SOAP request with this "V2_22" string, I still get valid answers.
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">
<soapenv:Header>
<typ:RequestServerVersion Version="V2_22"/>
</soapenv:Header>
But it now looks as if the returned Version is no longer a reliable way to determine the Exchange server version. If V2_22 is not documented anywhere, who says it will not suddenly change to V2_23 tomorrow?
Question: Does this mean I will now have to change my version detection code to look at MajorVersion and then maintain a cross reference between MajorVersion and ExchangeVersionType **myself**? That is horrible: another dependency to maintain is another potential code break.
As an aside: Note that the "Exchange Server Updates: build numbers and release dates" at http://technet.microsoft.com/en-us/library/hh135098%28v=exchg.150%29.aspx is no longer up to date, it does not mention the 15.0.1049.23 that my XML just returned
<Envelope>
<Header>
<ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="1049" MinorBuildNumber="23" Version="V2_22"/>
</Header>
This means that the Version 'schema version' property (http://msdn.microsoft.com/en-us/library/exchangewebservices.serverversioninfo.version%28v=exchg.150%29.aspx) now breaks the pattern of versions that we had earlier: Exchange2007, Exchange2007_SP1, Exchange2010, Exchange2010_SP1, Exchange2010_SP2, Exchange2013
In the schema files I found through Google (searching for <xs:simpleType name="ExchangeVersionType">) I could not find anything later than <xs:enumeration value="Exchange2013"/> (e.g. at http://msdn.microsoft.com/en-us/library/ee237685%28v=exchg.80%29.aspx)
If I do a SOAP request with this "V2_22" string, I still get valid answers.
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">
<soapenv:Header>
<typ:RequestServerVersion Version="V2_22"/>
</soapenv:Header>
But it now looks as if the returned Version is no longer a reliable way to determine the Exchange server version. If V2_22 is not documented anywhere, who says it will not suddenly change to V2_23 tomorrow?
Question: Does this mean I will now have to change my version detection code to look at MajorVersion and then maintain a cross reference between MajorVersion and ExchangeVersionType **myself**? That is horrible: another dependency to maintain is another potential code break.
As an aside: Note that the "Exchange Server Updates: build numbers and release dates" at http://technet.microsoft.com/en-us/library/hh135098%28v=exchg.150%29.aspx is no longer up to date, it does not mention the 15.0.1049.23 that my XML just returned