Assembly version checking without strong name

  • Thread starter Thread starter JDI
  • Start date Start date
J

JDI

Here is the scenario:
We need to be able to do side by side execution of asseblies but do not
want to go into strong naming of them (who want's to have more admin
work? I guess, most people don't). 'Officially', it's not allowed. But
has anybody come up with any solution to this issue.
Thanks,
-jdi
 
If you have some differentations between assemblies such as versions or
different types available, you may do it by using Reflection...but this may
cause some perfomance problems. Reflection is used to dynamiccaly load
assemblies, types and do "work" on or with them

Check it out on msdn, "System.Reflection" namespace
 
Just out of curiousity...I don't understand your statement about
additional overhead to manage the strong naming. I've found the strong
name stuff very easy to deal with.

Can you explain a little more?

--steve
 
Thanks Murat. Reflection is one way to go. One issue with this approach
i found is that if you want your application start using a newer
version of the assembly you have to update the actual code and
recompile. You don't want to do this on the production. I thought that
one way would be to read the assembly full name from the database and
have the db updated through the admin section of you application. It
could be even that our application uses one version of an assembly for
one group of users and another version for another group so there will
be some switching between the assemblies. How this would affect the
performance i don't know yet and will have to test it (if somebody
already tested this please share your opinion).

Steve,
First of all, this is the first .net project that i am going to do with
versioning, so my practical knowledge about the subject is limited, at
this stage i just contemplate the things that i would have to do when
dealing with signed assemblies, and most of all the need to recompile
client assemblies if the version of your assembly has changed (and we
do want to have different versions for every build) and from what i
read i would have to do this even if the revision number is changed
(people say they recompile all their production assemblies when one of
the assemblies they depend on has its version number changed. Is it
true or they do something wrong?).
Are there any other things you have to do when start dealing with the
strong name (the actual signing procedure is easy and i don't see it as
an issue)

....one more question how would you make application load one version or
another depending on some runtime conditions that could change
depending on a user logged
in? I don't see using config files of any help as they don't provide
for any conditional logic, is this right?

thx everybody for your comments.
-jdi
 
JDI said:
Here is the scenario:
We need to be able to do side by side execution of asseblies but do
not want to go into strong naming of them (who want's to have more
admin work? I guess, most people don't). 'Officially', it's not
allowed. But has anybody come up with any solution to this issue.
Thanks,

Seriously, reconsider.

There is very little admin involved with adding a strong name and the
benefits are great. If you roll your own version of 'side by side' you
run the risk of introducing a .NET version of DLL Hell.

Richard
 
Back
Top