Skip to content
Browse files

Merge pull request #26 from mloskot/patch-1

Video addition about version forwarding rules in src/dynamic/reference/tech-background.html.md.ejs
  • Loading branch information...
2 parents 8f03cdc + 1075c0c commit 037253bcd7da9e858ee8cc1fad6c784ca5e7e324 @ericschultz ericschultz committed Jul 25, 2012
Showing with 1 addition and 1 deletion.
  1. +1 −1 src/dynamic/reference/tech-background.html.md.ejs
View
2 src/dynamic/reference/tech-background.html.md.ejs
@@ -41,7 +41,7 @@ If you are a developer seeking more information on the topics contained herein,
The greatest single technology that allows us to make these claims of greatness is [Windows Side-by-Side][SxS]. CoApp also makes gratuitous use of symbolic links in the file system to avoid keeping unnecessary copies of files and thus reducing the drivespace footprint of any packages that are installed. In addition to both of these items, there are a number of tools and functions that were purpose-built by the CoApp team to ensure seamless operation.
### Windows Side-by-Side technology
-Windows Side-by-Side (SxS) has been built into Windows since XP with a direct intention to reduce or remove [DLL hell][]. SxS allows multiple versions of an assembly (library, executable, or other versioned files) to be installed and used simultaneously on the same system. SxS also provides controls for declaring version forwarding rules of an assembly, meaning that if version 1.0.0.0 of something is installed but has a bug, installing version 1.0.1.3 (which fixes the bug) can include a rule saying that all versions 1.0.0.0 - 1.0.1.2 may instead use version 1.0.1.3 and be fully compatible. If a piece of software was compiled with and is only aware of version 1.0.0.0 then when it requests this version of the assembly from Windows, it will instead be given version 1.0.1.3 automatically. Thus SxS allows any software to always use the most recent versions available of any libraries or other assemblies that are compatible with the versions the software requires.
+Windows Side-by-Side (SxS) has been built into Windows since XP with a direct intention to reduce or remove [DLL hell][]. SxS allows multiple versions of an assembly (library, executable, or other versioned files) to be installed and used simultaneously on the same system. SxS also provides controls for declaring version forwarding (redirecting) rules of an assembly, meaning that if version 1.0.0.0 of something is installed but has a bug, installing version 1.0.1.3 (which fixes the bug) can include a rule saying that all versions 1.0.0.0 - 1.0.1.2 may instead use version 1.0.1.3 and be fully compatible. For details, check George Mileka's detailed explanation in [Everything you wanted to know about VC++ deployment but were afraid to ask](http://channel9.msdn.com/shows/Going+Deep/Everything-you-wanted-to-know-about-VC-deployment-but-were-afraid-to-ask/) video on Channel 9. If a piece of software was compiled with and is only aware of version 1.0.0.0 then when it requests this version of the assembly from Windows, it will instead be given version 1.0.1.3 automatically. Thus SxS allows any software to always use the most recent versions available of any libraries or other assemblies that are compatible with the versions the software requires.
In addition to this, all assemblies stored in SxS must be digitally signed and can be identified by hash of the public key of the signer (publisher). In this way assembly collisions can be avoided, as a collision would require two assemblies with the same name, version, and public key signature hash. While this is not impossible, it is sufficiently unlikely that we're willing to ignore it until it becomes a problem (our tester assures us that computers will likely be obsolete by then). Not only does this allow multiple versions of an assembly and from different publishers to be installed and used simultaneously, but it also ensures that software which references a specific publisher's assembly can never be poisoned by another publisher's assembly on the same system.

0 comments on commit 037253b

Please sign in to comment.
Something went wrong with that request. Please try again.