Refining the Versioning Story.
Wesner Moise reports on a talk that Jeff Richter did on the .NET versioning story in the Longhorn time frame. Some interesting quotes:
- "a library could not easily be updated since the CLR looked for an exact version match. There was a complex way to solve this problem through policy files; however, even engineers at Microsoft found this approach too difficult."
- "Microsoft has a new approach for Longhorn and Orcas (.NET v3.0), which divides assemblies into two categories, Platforms and Libraries."
- "Most assemblies will or should be libraries. Microsoft discourages the use of platform assemblies."
- "There are actually three types of platform assemblies: System-wide, process-wide, and app domain-wide."
- "Longhorn will no longer support multiple CLRs. Every managed application will be forced to use the latest version of the CLR on the system."
- "Whidbey is expected to include an Assembly attribute, AssemblyFlagsAttribute, which allows to developer to specify Library, AppDomainPlatform, ProcessPlatform, SystemPlatform, or Legacy to identify the versioning scheme the CLR uses to load a reference assembly."
I know that the existing versioning story doesn't cut it for a lot of folks. Will this new model solve the problems? Is there a complexity danger?
[via Marquee de Sells: Chris's insight outlet]
This is what really annoys me. .NET is relatively new but was supposed to be the solution to all known problems. In particular, a major point was supposed to be the end of so called dll hell.
Already, we get "oops, that didn't work, even we didn't know how to make it work".
Even more scary, Longhorn will no longer support multiple CLRs. Now as far as I have seen, there have been breaking changes from CLR to CLR version - what the heck does this mean for vendors then? Perhaps (I hope) I am wrong on this point.
I keep thinking I really must abandon what I am doing and embrace .NET, this sort of stuff just keeps holding me back. Perhaps by v4.0 it will be stable and usable; it did take until Windows 3.11 until that was usable.