NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

Compatibility Version

Each assembly has a specific compatibility version number as part of its identity. As such, two assemblies that differ by compatibility version are completely different assemblies as far as the NGWS runtime class loader is concerned.

This compatibility version number is physically represented as a four part number with the following format:

<major version>.<minor version>.<build number>.<revision>

Each portion of this number has a specific meaning to the Assembly Resolver and the class loader as they decide which version of an assembly to load. Logically, the compatibility version number has three parts, with the following meanings:

incompatible: A change has been made to the assembly that is known to be incompatible with previous versions. Example: Major new release of the product.

maybe compatible: A change has been made to the assembly that is thought to be compatible and carries less risk than an incompatible change. However, backwards compatibility is not guaranteed. Example is a Service Pack or the release of a new daily build.

QFE: An emergency fix that customers must upgrade to. Example: emergency security fix.

These three logical parts map to the physical 4-part version number as follows:

For example, an assembly with compatibility version number 5.4.0.0 is considered incompatibly with an assembly whose compatibility number is 4.1.11.00. Also, compatibility number 5.4.0.23 is considered a QFE to compatibility number 5.4.0.0.