Assembly/component mixups become much less
frequent, even if file names are identical
Side-by-side upgrading becomes possible
Applications not liking the newer
upgrades can continue to use the older version
Applications that rely on bugs
that are fixed by assemblies can also keep
running without being affected
Side-by-side self-repair also is possible
If a shared assembly upgrade does
break an application, .NET can fetch a compatible
version on its behalf ("last known good")
Significanly simplifies installation
process
Zero-impact installation is now
possible, and widespread deployment via simple
file copy also possible
For more complex installations,
alternative install practices, like using
compressed CAB files or a more complex install
program like Microsoft Installer may be used
Distribution is also simplified
Again, there is zero-impact since
no centralized system registry is required
Incremental updating of an
application becomes possible; assembly components
not available may be installed or downloaded on
demand
Newly installed or downloaded code
can't affect other applications
No user intervention for "authentication"
of downloaded code is required since .NET permits
it to run at a "partial" trust level