Catalog Assembly -- Clarification --
I had an attendee send me a question, where he heard me say that you could have the same assembly cataloged twice using 2 different names. And in fact, I have in the demo code an example of an attempt to catalog the same assembly under the name of "MetricConverter" and the name "foo" - The fact is you can not catalog the same assembly twice using 2 different SQL names. You can't register the assembly, copy it and/or rename it and register it under a different name (though I couldn't imagine why anybody would want to do this)
You can register 2 assemblies (that happen to be a version of one another) that have 2 different names as 2 different names in the database. So for example, I took the MetricConverter code, compiled and catgaloged. Then opened the code added another method, changed the assembly name and re-compiled, then went back and cataloged the versioned assembly with a new name. I now had 2 versions of the same assembly with 2 different names.
But this of course, begs the question "why ..."
- I could only imagine the pain and confusion that could be created by cataloging multiple versions of the same assembly.
I tend to think of assemblies as interface contracts, once they are published, they are golden until all dependencies are hunted down and destroyed (or simply modified). If in fact, I want to create a new version of a method, I would create a new signature (thus a new interface contract) and start migrating clients over. Or if I need to fix a bug in a method, then I want to know that all methods are calling the one version of code I have available with the interface contract being used - so when the bug is fixed all versions now are using the new version of code.
Can anybody come up with a good example of a reason to use multiple versions of the same assembly?