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!

Recording and Enforcing Version Policy

Version checking in the NGWS runtime is done at the assembly level.

As mentioned, a version number is part of each assembly’s identity and each assembly manifest includes information about all dependencies, including version numbers

The dependency information in the manifest records the “known good” configuration. That is, the versions of the assemblies that were built and tested together. By default, this same set of assemblies will run together after they are deployed, subject to QFE policy. However, we provide a set of version policies that can be set to alter which version of an assembly the NGWS runtime will load at Runtime. These version policies are expressed in xml configuration files that are associated either directly with the application, with a particular user, or the machine as a whole. The NGWS runtime uses the version information recorded in the manifest and any policy expressed in the configuration files to determine which version of a dependency to load.

One version policy of particular interest is what we call safe-mode. This policy is used to cause the runtime to bind to the exact versions of its dependencies that are recorded in its manifest (i.e all four parts of the version number is matched exactly). Safe-mode is used to return to the “known good” configuration that was recorded at build time. This can be used to ensure consistency between development and runtime and to revert to a know working state in the event that an update of a shared assemblies inadvertently broke an application.